(57)【特許請求の範囲】
【請求項１】
コンピュータ・システム内でプロセッサからアクセスされる第２レベル・キャッシュ・メモリ中のデータをＴＡＧリフレッシュ・コントローラがリフレッシュする方法であって、
（ａ）ＴＡＧコンパレータにより前記プロセッサから出された要求アドレスを、前記キャッシュ・メモリに記憶されているＴＡＧアドレスと比較するステップと、
（ｂ）ステップ（ａ）で前記要求アドレスの比較により前記要求アドレスと前記ＴＡＧアドレスとが一致することが検証されたときに、リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュする第１のリフレッシュ動作を停止させ、前記キャッシュ・メモリの複数のサブ配列のうちの１つにある、前記要求アドレスに対応するワード線にアクセスするステップと、
（ｃ）リフレッシュ・アドレス・ジェネレータがリフレッシュ・カウンタを使用して生成したリフレッシュ・アドレスにより、前記キャッシュ・メモリ中の前記１つのサブ配列以外の前記複数のサブ配列中のデータをリフレッシュする第２のリフレッシュするステップであって、各リフレッシュ・アドレスが、前記１つのサブ配列以外の前記複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップとを含み、
（ｄ）前記ＴＡＧリフレッシュ・コントローラにより、前記第２のリフレッシュするステップが、前記１つのサブ配列以外の前記複数のサブ配列中のデータがリフレッシュされる間に、前記１つのサブ配列中の、前記要求アドレスによってアクセスされる前記ワード線に対して読取り／書込み動作を行うステップとを含む方法。
【請求項２】
前記１つのサブ配列に対する読取り／書込み動作と、前記１つのサブ配列以外の前記複数のサブ配列中のデータのリフレッシュが同時に行われる、請求項１に記載の方法。
【請求項３】
ステップ（ａ）が、
ＴＡＧメモリに、前記キャッシュ・メモリに記憶された対応するワード線データを指定する各ＴＡＧアドレスを記憶するステップと、
前記要求アドレスを前記ＴＡＧアドレスと比較するステップと、
前記要求アドレスと同一のＴＡＧアドレスを選択するステップとを含む、請求項１に記載の方法。
【請求項４】
前記要求アドレスが前記ＴＡＧメモリ中の前記ＴＡＧアドレスと異なるとき、前記キャッシュ・メモリ中のデータに対して前記リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュするリフレッシュ動作を行うステップをさらに含む、請求項３に記載の方法。
【請求項５】
ステップ（ｃ）が、前記リフレッシュ・アドレスにより、前記１つのサブ配列以外の前記複数のサブ配列中のワード線に同時にアクセスするステップを含み、各リフレッシュ・アドレスが、前記１つのサブ配列以外の前記複数のサブ配列のうちの対応する１つに対応する、請求項１に記載の方法。
【請求項６】
ステップ（ｃ）が、前記１つのサブ配列以外の前記複数のサブ配列それぞれのワード線の状態を把握することにより、前記それぞれのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップを含む、請求項１に記載の方法。
【請求項７】
前記１つのサブ配列以外の前記複数のサブ配列それぞれの中のデータがリフレッシュされたときに、前記それぞれのサブ配列に対する前記データ・リフレッシュ・カウンタをリセットするステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記リフレッシュ・アドレス・ジェネレータは、前記リフレッシュ・アドレスに対応して格納されるデータは、対応するリフレッシュ・アドレス中のデータの置換の優先順位を表す優先順位インデックスと、前記キャッシュ・メモリの対応するサブ配列中のワード線のアドレスを指定するためのワード線アドレスとを含む、請求項１に記載の方法。
【請求項９】
前記リフレッシュ・アドレスに対応して格納されるデータが、それぞれ対応するワード線アドレス中のデータの信頼性を示すフレッシュ・インデックスを含む、請求項８に記載の方法。
【請求項１０】
コンピュータ・システム内でプロセッサからアクセスされる第２レベル・キャッシュ・メモリ中のデータをＴＡＧリフレッシュ・コントローラによりリフレッシュする方法であって、
（ｅ）前記ＴＡＧリフレッシュ・コントローラが前記プロセッサから出された要求アドレスを検出するステップと、
（ｆ）前記要求アドレスが検出されたときに、前記ＴＡＧリフレッシュ・コントローラが前記キャッシュ・メモリの複数のサブ配列に記憶されたデータを連続してリフレッシュする第１のリフレッシュ動作を停止するステップと、
（ｇ）ＴＡＧコンパレータが前記要求アドレスを、メモリにあらかじめ記憶されているＴＡＧアドレスと比較するステップであって、前記メモリ中の前記ＴＡＧアドレスが、前記プロセッサによって選択される確率のより高い前記キャッシュ・メモリ中のデータを指定するステップと、
（ｈ）ＴＡＧリフレッシュ・アドレス・ジェネレータが前記キャッシュ・メモリに記憶されたデータをリフレッシュするためのリフレッシュ・アドレスを生成するステップであって、各リフレッシュ・アドレスが、前記リフレッシュ・アドレスに対応するデータの古さに基づいて生成されるステップと、
（ｉ）前記ＴＡＧリフレッシュ・コントローラが前記要求アドレスによってアクセスされるワード線に対して読取り／書込み動作を行い、前記リフレッシュ・アドレスによってアクセスされるワード線上のデータをリフレッシュするステップであって、前記要求アドレスへの前記読取り／書込み動作を行う間に前記データのリフレッシュを行なうステップとを含む方法。
【請求項１１】
ステップ（ｉ）が、
前記読取り／書込み動作が行われるワード線にアクセスするために、前記キャッシュ・メモリのサブ配列に前記要求アドレスを提供するステップと、
前記要求アドレスが提供される前記サブ配列以外の複数のサブ配列にリフレッシュ・アドレスを提供するステップとを含み、前記リフレッシュ・アドレスがそれぞれ、前記サブ配列以外の前記複数のサブ配列それぞれの中の対応するワード線にアクセスする、請求項１０に記載の方法。
【請求項１２】
コンピュータ・システム内でプロセッサからアクセス可能な第２レベル・キャッシュ・メモリ中のデータをリフレッシュするための装置であって、
前記プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、
前記メモリ・コントローラによって検出された前記要求アドレスを受け取って、前記キャッシュ・メモリに記憶されているデータに関連するＴＡＧアドレスと比較するためのＴＡＧコンパレータと、
前記ＴＡＧコンパレータが前記要求アドレスと同一の前記ＴＡＧアドレスを見つけたときに、リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュする第１のリフレッシュ動作を停止させ、リフレッシュ・アドレスを生成して、前記キャッシュ・メモリに記憶されているデータをリフレッシュするための第２のリフレッシュ動作を実行させるための前記リフレッシュ・アドレスを生成するための複数のリフレッシュ・アドレス・ジェネレータおよびリフレッシュ・カウンタとを備える、ＴＡＧリフレッシュ・コントローラとを含み、前記第２のリフレッシュ動作が、前記要求アドレスを含む前記キャッシュ・メモリの第１サブ配列にあるワード線にアクセスする間に、リフレッシュ・アドレスが前記第１サブ配列以外のサブ配列のそれぞれに割り当てられた対応するワード線に対してアクセスする装置。
【請求項１３】
前記コンパレータが、前記キャッシュ・メモリ中の前記ＴＡＧメモリから前記ＴＡＧアドレスを受け取り、前記ＴＡＧアドレスがそれぞれ、前記キャッシュ・メモリのデータ・メモリに記憶されているデータの一部を指定する、請求項１２に記載の装置。
【請求項１４】
前記キャッシュ・メモリの前記データ・メモリが、前記プロセッサによって選択される確率のより高いデータを記憶する、請求項１３に記載の装置。
【請求項１５】
前記ＴＡＧリフレッシュ・コントローラの前記リフレッシュ・アドレス・ジェネレータがそれぞれ、第１のサブ配列以外の各サブ配列と関連し、前記第１のサブ配列以外の前記サブ配列のうちの対応する１つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成する、請求項１２に記載の装置。
【請求項１６】
前記複数のリフレッシュ・アドレス・ジェネレータがそれぞれ、前記第１のサブ配列以外の前記サブ配列のうち対応する１つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含む、請求項１５に記載の装置。
【請求項１７】
前記リフレッシュ・カウンタが、前記リフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたときに前記リフレッシュ・カウンタを初期値にリセットする、請求項１６に記載の装置。
【請求項１８】
前記要求アドレスが前記第１のサブ配列に提供されるのと同時に、前記リフレッシュ・コントローラが、前記第１のサブ配列以外の前記サブ配列にリフレッシュ・アドレスを提供する、請求項１２に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システム内のキャッシュ・メモリに関し、より詳細には、リフレッシュの不利益なしにダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）キャッシュ・メモリをリフレッシュする方法および装置に関する。
【０００２】
【従来の技術】
一般的なコンピュータ・システムでは、データ記憶機能によって中央演算処理装置（ＣＰＵ）をサポートするためのメモリ階層が存在する。コンピュータ内のメイン・メモリとして最も頻繁に使用されるメモリ・デバイスのタイプの１つは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）である。これは、ＤＲＡＭが比較的低コストかつ高密度であり、コンピュータ・システムの小さなエリアに大量のデータを記憶することが容易だからである。しかし、ＤＲＡＭに記憶したデータは定期的にリフレッシュしなければならず、さもなければ、ＤＲＡＭセルから電荷が漏れるせいでデータは失われることになる。トレード・オフとなるのは、ＤＲＡＭ中のデータをリフレッシュするのに必要なシステム・オーバーヘッドにおけるコストがより高くなり、それにより速度上の不利益が生じることである。速いプロセッサをより遅いメモリとインタフェースする必要があるとき、プロセッサ・サイクル・タイムがメモリのデータ・アドレス・アクセス時間よりも速いので、全体的なシステム速度は遅くなる。このような状況への対処法の１つは、より高速の組込みキャッシュ・メモリを使用して、より遅いメモリ（すなわちコンピュータ・システムのメイン・メモリ）にアクセスする実効時間を短縮するものである。
【０００３】
キャッシュ・メモリは、より大きく通常はより遅いメイン・メモリから選択されたデータを保持し、それによりプロセッサが選択データから必要なデータをより迅速にフェッチできるようにするバッファである。キャッシュ・メモリは、所与の時間に、あるデータが次にプロセッサによって選択される確率が他のデータよりも高いという原理に基づく。プロセッサによって使用される確率のより高いデータがキャッシュ・メモリに記憶されて、アクセス時間がより速くなった場合、そのデータにアクセスする平均速度は上昇する。したがって、メイン・メモリよりも通常小さく速いキャッシュ・メモリを使用して、メイン・メモリの最も頻繁にアクセスされるデータを記憶する。
【０００４】
現代のコンピュータ処理システムのメモリ階層では、キャッシュ・メモリは通常、最上位レベルのプロセッサ、すなわち中央演算処理装置（ＣＰＵ）のすぐ下に位置する。通常、キャッシュ・メモリは複数のレベルに分割される。例えば、レベル１キャッシュ（Ｌ１）とレベル２キャッシュ（Ｌ２）である。いくつかのレベル（例えばレベル１キャッシュＬ１）は、ＣＰＵと同じチップ上にある場合があり、したがって、「オンチップ」と呼ばれる。このようなオンチップ・キャッシュ・メモリは、通常、より低密度だがより高速であるスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）で構成される。キャッシュ・メモリの他のレベル（例えばレベル２キャッシュＬ２）は、ＣＰＵとは別に位置する場合があり、より高密度だがより低速であるＤＲＡＭで構成される。高密度ＤＲＡＭをコンピュータ・システム内のプロセッサのキャッシュ・メモリとして使用することにより、より大きなサイズのキャッシュ・メモリを提供することができ、したがって、「キャッシュ・ミス・レート」（後で詳細に説明する）を減少させることができる。
【０００５】
ＤＲＡＭに記憶されたデータは、ある時間にわたってアイドルであった後は破壊されるので、ＤＲＡＭは、ＤＲＡＭ中のデータをリストアするためのリフレッシュ・サイクルを必要とする。ＤＲＡＭ中のメモリ・セルは、ある時間内に定期的にリフレッシュしなければならない。この時間を「保持時間」と呼ぶ。技術およびチップ温度に応じて、保持時間は、ほんの数ミリ秒から数百ミリ秒までの範囲で変動する場合がある。データ・リフレッシュは、メモリ配列中の各行に一度に一行ずつアクセスすることによって達成される。メモリ配列がアクセスを受けてリフレッシュされるとき、配列のメモリ・セルに記憶されているデータがセンス増幅器に読み出され、すぐにメモリ・セルにライトバックされる。したがって、各メモリ・セルに対応するコンデンサが、その初期値まで再充電される。ＤＲＡＭにおけるこうした必要なリフレッシュ・サイクルでは、メモリ配列の各行がリフレッシュ・サイクルの最中にある間はＤＲＡＭ中のデータにアクセスできないため、大幅な遅延が生じる。言い換えれば、ＤＲＡＭキャッシュ・メモリのメモリ・セルがリフレッシュされている間は、そのメモリ・エリアで他の動作を行うことができない。この「デッド・タイム」により、コンピュータ・システム内のメモリ中のデータにアクセスする実効速度が遅くなる。より質の高いコンデンサをキャッシュ・メモリ中のメモリ・セルに使用することによってリフレッシュ時間を短縮することはできるものの、データ・リフレッシュの要件は、依然としてコンピュータ・システムのタイミングにおける遅延を引き起こす重要な要因である。
【０００６】
Ｌｅｕｎｇに譲渡された米国特許第６０２８８０４号は、上記の問題の解決法を提案している。Ｌｅｕｎｇは、ＤＲＡＭキャッシュ・メモリのピーク周波数をＣＰＵのピーク外部アクセス周波数よりも高く動作させる方法を述べている。ＤＲＡＭリフレッシュ動作のためのリフレッシュ・サイクルは隠すことができ、したがってメモリ・システムは、外部世界にはＳＲＡＭのようにみえる。しかし、このような従来システムにおける欠点は、このような従来型のコンピュータ・システム内に採用したＤＲＡＭキャッシュ・メモリがＣＰＵよりも速く動作できなければならないことであり、これは実際には非常に難しく、実際的であったとしても高いコストを必要とする。
【０００７】
したがって、余分な遅延をなくすために、ＤＲＡＭキャッシュ・メモリに記憶されたデータをリフレッシュする改良型の方法が必要とされている。
【０００８】
【発明が解決しようとする課題】
本発明の目的は、リフレッシュの不利益なしにコンピュータ・システム内のキャッシュ・メモリ中のデータをリフレッシュする方法および装置を提供することである。
【０００９】
【課題を解決するための手段】
上記および他の目的を達成するために、本発明は、コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法を提供する。この方法は、（ａ）プロセッサから出された要求アドレスをキャッシュ・メモリに記憶されているＴＡＧアドレスによって検証するステップと、（ｂ）ステップ（ａ）で要求アドレスが検証されたときに、キャッシュ・メモリの複数のサブ配列のうちの１つにある、要求アドレスに対応するワード線にアクセスするステップと、（ｃ）リフレッシュ・アドレスを生成して、キャッシュ・メモリ中の該１つのサブ配列以外の複数のサブ配列中のデータをリフレッシュするステップであって、各リフレッシュ・アドレスが、該１つのサブ配列以外の複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップと、（ｄ）該１つのサブ配列以外の複数のサブ配列中のデータがリフレッシュされる間に、１つのサブ配列中の、要求アドレスによってアクセスされるワード線に対して読取り／書込み動作を行うステップとを含む。該１つのサブ配列に対する読取り／書込み動作と、該１つのサブ配列以外の複数のサブ配列中のデータのリフレッシュは、同時に行うことが好ましい。前述の方法のステップ（ａ）は、ＴＡＧメモリにＴＡＧアドレスを記憶するステップであって、各ＴＡＧアドレスが、キャッシュ・メモリに記憶された対応するワード線データに関連するステップと、要求アドレスをＴＡＧアドレスと比較するステップと、要求アドレスと同一のＴＡＧアドレスを選択するステップを含むことができる。前述の方法のステップ（ｃ）は、１つのサブ配列以外の複数のサブ配列それぞれのワード線の状態を把握することにより、そのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップと、該１つのサブ配列以外の複数のサブ配列それぞれの中のデータがリフレッシュされたときに、そのサブ配列に対するデータ・リフレッシュ・タイミングをリセットするステップとを含むことができる。
【００１０】
本発明はまた、コンピュータ・システム内でプロセッサからアクセス可能なキャッシュ・メモリ中のデータをリフレッシュするための装置も提供する。この装置は、プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、メモリ・コントローラによって検出された要求アドレスを、キャッシュ・メモリに記憶されているデータに関連するアドレスと比較するためのコンパレータと、コンパレータが要求アドレスと同一のアドレスを見つけたときにリフレッシュ・アドレスを生成して、キャッシュ・メモリに記憶されているデータをリフレッシュするためのリフレッシュ・コントローラとを備え、要求アドレスは、キャッシュ・メモリの第１のサブ配列中のワード線にアクセスし、各リフレッシュ・アドレスは、第１のサブ配列以外の各サブ配列中の、対応するワード線にアクセスする。コンパレータは、キャッシュ・メモリ中のＴＡＧメモリからＴＡＧアドレスを受け取ることが好ましく、各ＴＡＧアドレスは、キャッシュ・メモリのデータ・メモリに記憶されているデータの一部に関連する。本発明のリフレッシュ・コントローラは、リフレッシュ・アドレスを生成するためのリフレッシュ・アドレス・ジェネレータを含むことが好ましい。各リフレッシュ・アドレス・ジェネレータを第１のサブ配列以外の各サブ配列と関連付けて、第１のサブ配列以外のサブ配列のうちの対応する１つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成することができ、また、各リフレッシュ・アドレス・ジェネレータは、第１のサブ配列以外のサブ配列のうち対応する１つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含むこともできる。リフレッシュ・カウンタは、そのリフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたとき、リフレッシュ・タイミングを初期値にリセットすることができる。
【００１１】
【発明の実施の形態】
本明細書では、本発明の詳細な例示的実施形態を開示する。しかし、本明細書に開示する具体的な構造上および機能上の詳細は、本発明の好ましい実施形態を述べるための典型にすぎない。どんなキャッシュ・レベルに対するどんなダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）にも、同じリフレッシュの概念を適用することができる。
【００１２】
サイズの大きいメイン・メモリを備えるコンピュータ・システムに有用なキャッシュ・メモリのタイプの１つは、「連想キャッシュ・メモリ」である。連想キャッシュ・メモリは、２つのタイプのメモリ、すなわちデータ・メモリおよびＴＡＧメモリを含む。データ・メモリは、メイン・メモリの固定サイズの領域（例えばワード線）であるキャッシュ・ラインを記憶し、ＴＡＧメモリ（またはディレクトリ・メモリ）は、データ・メモリに記憶されている各キャッシュ・ラインのアドレスを記憶する。
【００１３】
図１を参照すると、本発明によるコンピュータ・システムのメモリ構成を示すブロック図が提供されている。このコンピュータ・システムは、「オンチップ」キャッシュ・メモリ（Ｌ１キャッシュ）１３を有する中央演算処理装置（ＣＰＵ）１１、メイン・メモリ１５、ＣＰＵバス１７、ＣＰＵバス１７上のデータ・トラフィックを制御するためのメモリ・コントローラ１８、および第２レベル・キャッシュ・メモリ（Ｌ２キャッシュ）１９を備える。
【００１４】
第１レベル・キャッシュ・メモリ１３は、ＣＰＵ１１と同じチップ上に統合されている。第１レベル・キャッシュ・メモリ１３は、より広い帯域幅およびより短いワイヤ幅でＣＰＵ１１と統合されており、したがって外部チップとの間の信号の送信または受信あるいはその両方に関連するどんな遅延も回避するので、より高速である。第２レベル・キャッシュ・メモリ１９は、ＣＰＵとは異なるチップ上に位置し、第１レベル・キャッシュ・メモリ１３よりも容量が大きいが、メイン・メモリ１５よりは小さい。
【００１５】
キャッシュ・メモリ１３、１９は、ＣＰＵ１１とメイン・メモリ１５との間のバッファとして働く。キャッシュ・メモリ１３、１９のそれぞれでは、データ・ワードがキャッシュ・メモリに記憶され、「キャッシュ・ブロック」または「キャッシュ・ライン」と呼ばれる小さなページに分類される。キャッシュ・メモリの内容は、メイン・メモリ・ブロックのセットのコピーである。各キャッシュ・ラインは、「ＴＡＧアドレス」でマークされる。したがって、各キャッシュ・ラインは、メイン・メモリのどの部分にそのキャッシュ・ラインが属するかを知っている。対応するキャッシュ・ラインに割り当てられたＴＡＧアドレス（非連続的な場合もある）は、「ＴＡＧメモリまたはディレクトリ」と呼ばれる特別なメモリに記憶される。
【００１６】
第１レベル・キャッシュ・メモリ１３では、あるデータにアクセスするためにアドレスがＣＰＵ１１から要求されたとき、その要求アドレスが、第１レベル・キャッシュ・メモリ１３のＴＡＧメモリ（図２参照）に記憶されているＴＡＧアドレスと比較される。要求アドレスがＴＡＧメモリ中のＴＡＧアドレスの中に見つかった場合は、要求アドレスに対応するデータがキャッシュ・メモリ１３中に存在すると判定され、このことは「ヒット」と呼ばれる。キャッシュ・メモリ１３中に要求アドレスのデータが見つかると、そのデータはＣＰＵ１１に転送される。ＴＡＧメモリはまた、キャッシュ・メモリ１３中のデータを突き止めるためのオフセット・アドレスも含む。キャッシュ・メモリ中のデータを突き止めることは当技術分野で周知であり、したがって、その詳細な記述は本明細書では省略する。
【００１７】
一方、要求アドレスがキャッシュ・メモリ１３のＴＡＧメモリ中に見つからない場合は、要求アドレスに対応するデータがキャッシュ・メモリ１３中に存在しないと判定され、このことは「ミス」と呼ばれる。第１レベル・キャッシュ・メモリ１３中で「ミス」が生じると、要求アドレスは、より低いレベルのメモリ、例えば第２レベル・キャッシュ・メモリ１９に送られる。以下に、第２レベル・キャッシュ・メモリにおけるデータ・アクセス・プロセスについて詳細に述べる。第２レベル・キャッシュ・メモリ１９中で「ミス」が生じた場合（すなわち第２レベル・キャッシュ・メモリ中にデータが存在しない場合）、要求アドレスは、第３レベル・キャッシュ・メモリ（利用可能ならば）、またはメイン・メモリに送られる。
【００１８】
図１において、このコンピュータ・システムは、第１レベル・キャッシュ・メモリ１３にＳＲＡＭを採用し、第２レベル・キャッシュ・メモリ１９にＤＲＡＭを採用するのが好ましいため、第１レベル・キャッシュ・メモリ１３にはデータ・リフレッシュ・プロセスは必要ない。したがって、本発明によるデータのリフレッシュ方法を第２レベル・キャッシュ・メモリ１９に関して述べる。ただし本発明は、メイン・メモリをサポートするための階層メモリ・システムで使用されるどんなＤＲＡＭキャッシュ・メモリにも適用されることに留意されたい。
【００１９】
図２を参照すると、第２レベル・キャッシュ・メモリ１９は、データ・メモリ１９１およびＴＡＧメモリ１９２を含む。データ・メモリ１９１は、ＣＰＵ（１１、図１参照）によって選択される確率がより高いデータを記憶し、ＴＡＧメモリ１９２は、データ・メモリ１９１に記憶されたデータの対応するキャッシュ・ラインのアドレスをそれぞれ指定するＴＡＧアドレスを記憶する。
【００２０】
前述のように、第１レベル・キャッシュ・メモリ（１３、図１参照）中で「ミス」が生じたとき、ＣＰＵから出された要求アドレスがＣＰＵバス（１７、図１参照）上にロードされて、第２キャッシュ・メモリ１９に転送される。メモリ・コントローラ（１８、図１参照）は、ＣＰＵバスから要求アドレスを受け取り、それをＴＡＧリフレッシュ・コントローラ１９４に含まれるＴＡＧコンパレータ１９３に送る。ＴＡＧコンパレータ１９３は、要求アドレスを、キャッシュ・メモリ１９のＴＡＧメモリ１９２から提供されるＴＡＧアドレスと比較する。ＴＡＧメモリ中のＴＡＧアドレスの中に要求アドレスが見つかった（すなわち「ヒット」が生じた）場合は、データ・メモリ１９１中で、要求アドレス（または選択されたＴＡＧアドレス）に対応するキャッシュ・ラインがＣＰＵからアクセスを受ける。ＴＡＧメモリ中のＴＡＧアドレスの中に要求アドレスが見つからない（すなわち「ミス」が生じた）場合は、要求アドレスに対応するワード線をメイン・メモリ中で見つけるために、要求アドレスがメイン・メモリ（１５、図１参照）に送られる。
【００２１】
ＴＡＧリフレッシュ・コントローラ１９４は、ＤＲＡＭキャッシュ・メモリ１９のデータ・メモリ１９１に記憶されているデータをリフレッシュするために備わっている。ＴＡＧリフレッシュ・コントローラ１９４を使用して、データ・リフレッシュ・プロセスをそれぞれが必要とするメモリ・アドレスをトレースするための履歴テーブルがマッピングされる。ＴＡＧリフレッシュ・コントローラ１９４を使用することにより、データ・リフレッシュ・プロセスによる遅延を生じずに済む。ＴＡＧリフレッシュ・コントローラ１９４はまた、データ・リフレッシュ・プロセスを行うために、リフレッシュ・アドレス・ジェネレータ３２０およびリフレッシュ・カウンタ３２２も備える。次に、データ・リフレッシュ・プロセスについてより詳細に述べる。
【００２２】
図３を参照すると、本発明によりＤＲＡＭキャッシュ・メモリ（例えば図１の第２レベル・キャッシュ・メモリ１９）中のデータをリフレッシュする方法を記述するフロー・チャートが提供されている。まず、キャッシュ・メモリ中の要求アドレスに対応するワード線に対して読取り／書込み動作を行うようにＣＰＵから外的に要求されたアドレスがあるかどうかが判定される（ステップ３０２）。言い換えれば、ＣＰＵがキャッシュ・メモリ中のワード線に対するデータの読取りまたは書込みを要求しており、したがってそのワード線を表すアドレスがＣＰＵバス上にロードされるかどうかが判定される。ＣＰＵからの要求アドレスがない場合は、通常のデータ・リフレッシュ動作が行われる（ステップ３０４）。通常のリフレッシュ動作では、キャッシュ・メモリのメモリ配列が連続してリフレッシュされる形で、キャッシュ・メモリに記憶されているデータがリフレッシュされる。ＴＡＧリフレッシュ・コントローラ（１９４、図２参照）に含まれるリフレッシュ・アドレス・ジェネレータ３２０が、リフレッシュ・アドレスを少なくとも１つ生成して、リフレッシュ・カウンタ（３２２、図２参照）から提供されるリフレッシュ・クロックに基づいてキャッシュ・メモリのサブ配列中にある対応するワード線中のデータをリフレッシュする。例えば、ある時間にわたり、キャッシュ・メモリ中の各サブ配列につき１本のワード線を同時にリフレッシュすることができる。したがってこの場合、サブ配列ごとに１つのリフレッシュ・アドレス・ジェネレータが必要となる。キャッシュ・メモリ中のサブ配列へのリフレッシュ・アドレスの生成については、図４を参照しながら後で詳細に述べる。
【００２３】
ＣＰＵから出された要求アドレスがある場合は、通常のリフレッシュ動作のためのリフレッシュ・サイクルが停止される（ステップ３０６）。キャッシュ・メモリに対する通常のリフレッシュ動作が停止されると、要求リフレッシュ・アドレスがＴＡＧリフレッシュ・コントローラに送られる。ＴＡＧリフレッシュ・コントローラは、ＴＡＧコンパレータ（１９３、図２参照）およびＴＡＧメモリ（１９２、図２参照）を使用して行われる「ヒット／ミス比較」を制御する（ステップ３０７）。ヒット／ミス比較において、「ヒット」は、ＣＰＵから要求されたデータがキャッシュ・メモリ中に見つかる場合であり、「ミス」は、要求データがキャッシュ・メモリ中に見つからず、したがってメイン・メモリに行ってそのデータにアクセスする場合である。「ヒット」か「ミス」かを判定するために、ＴＡＧコンパレータは、要求アドレスをＴＡＧメモリ中に記憶されているＴＡＧアドレスと比較し、要求アドレスがＴＡＧアドレスの中に見つかるかどうかを判定する。
【００２４】
「ヒット／ミス比較」を行って、要求アドレスがＴＡＧメモリ中のＴＡＧアドレスの中に見つからない（すなわちステップ３０８で「ヒット」がない）場合は、要求アドレスはメイン・メモリに送られる。メモリ・コントローラ（１８、図１参照）が、メイン・メモリ中のワード線を表す要求アドレスを用いてそのワード線にアクセスして、ＣＰＵから要求された読取り／書込み動作をメイン・メモリ中のそのワード線に対して行う（ステップ３１０）。読取り／書込み動作を行うと、メモリ・コントローラは、キャッシュ・メモリに対する通常のリフレッシュ動作の実施を制御する（ステップ３０４）。メモリ・コントローラはまた、読取り／書込み動作を行う場所のアドレスをリフレッシュ・アドレス・ジェネレータ３２０にも送るが、これにより、これらのアドレスに記憶されているデータを再びリフレッシュする必要がなくなる。
【００２５】
「ヒット／ミス比較」を行って、要求アドレスがＴＡＧメモリ中のＴＡＧアドレスの中に見つかった（すなわちステップ３０８で「ヒット」があった）場合は、リフレッシュ・アドレス・ジェネレータ３２０は、キャッシュ・メモリ中の、要求アドレスを有するサブ配列以外のサブ配列のリフレッシュ・アドレスを生成する（ステップ３１２）。キャッシュ・メモリは複数のサブ配列を有し、各サブ配列中のデータは、異なるワード線アドレスによってアドレス指定することができる。「ヒット」があったときは、要求アドレス（または選択されたＴＡＧアドレス）によってキャッシュ・メモリのサブ配列中のワード線にアクセスすることができる。この場合、要求アドレスは、サブ配列中の対応するワード線にアクセスするためのアクセス・アドレスになる。また、「ヒット」があったときは、リフレッシュ・アドレス・ジェネレータ３２０は、キャッシュ・メモリの、ＣＰＵによる読取り／書込み動作に対するワード線を有するサブ配列以外のサブ配列中のデータをリフレッシュするためのリフレッシュ・アドレスを生成する。各リフレッシュ・アドレスは、リフレッシュすべき各サブ配列中のワード線のアドレスを指定する（これについては図４を参照しながら詳細に述べる）。
【００２６】
リフレッシュ・アドレス・ジェネレータ３２０は、例えば、対応する優先順位インデックスおよびフレッシュ・インデックスを各ワード線アドレスが有するように、優先順位インデックス、フレッシュ・インデックス、およびワード線アドレスを記憶する。優先順位インデックスは、リフレッシュ・アドレス・ジェネレータ３２０中の対応するワード線アドレスの置換の優先順位を示す。フレッシュ・インデックスは、データ信頼性の標識（すなわち「ダーティ」ビットまたは無効ビット）である。ワード線アドレスは、キャッシュ・メモリ中の、ＣＰＵから要求された読取り／書込み動作がメモリ・コントローラの制御下で行われる場所のワード線アドレスと同じアドレスである。
【００２７】
リフレッシュ・アドレス・ジェネレータ３２０からリフレッシュ・アドレスが得られると、ＣＰＵから要求された読取り／書込み動作およびデータ・リフレッシュ動作が、ＣＰＵからの要求アドレス（すなわちアクセス・アドレス）および内部生成されたリフレッシュ・アドレスをそれぞれ用いてキャッシュ・メモリ中で同時に行われる（ステップ３１４）。データ・リフレッシュ動作は、キャッシュ・メモリ中の、アクセス・アドレスに対応するデータが記憶されているサブ配列以外のサブ配列に対して行われる。読取り／書込み動作およびデータ・リフレッシュ動作をキャッシュ・メモリ中で行う際、サブ配列中にあるアクセス・アドレス中のデータにアクセスするプロセスは、アクセス・アドレスが提供されたサブ配列以外のサブ配列にそれぞれ提供された各リフレッシュ・アドレス中のデータをリフレッシュするプロセスと同時に行われる。この結果、従来技術においてデータ・リフレッシュ要件によって生じる遅延は、大幅に削減されるか完全になくすことができる。
【００２８】
図４を参照すると、キャッシュ・メモリ、およびキャッシュ・メモリに適用されるワード線アドレスの構成を示すブロック図が提供されている。ＤＲＡＭキャッシュ・メモリは、それぞれがセンス増幅器を有する複数のサブ配列を有することができる。各サブ配列に記憶されたデータには、対応するワード線アドレスによってアクセスすることができる。例えば、図４のキャッシュ・メモリは４つのサブ配列４１〜４４を有し、それぞれがセンス増幅器バンク４０１〜４０４を有する。ＣＰＵから要求された読取り／書込み動作が行われるワード線が第１のサブ配列４１中に位置すると仮定した場合、このワード線に対応するアクセス・アドレスが、第１のサブ配列４１に提供される。同時に、リフレッシュ・アドレス・ジェネレータ３２０Ａ〜３２０Ｃが、第２〜第４のサブ配列４２〜４４への第１〜第３のリフレッシュ・アドレスをそれぞれ生成する。ＣＰＵから要求された読取り／書込み動作を行うために、第１のサブ配列４１中で対応するワード線がアクセス・アドレスによってアクセスを受ける一方で、第２〜第４のサブ配列４２〜４４中の対応するワード線のデータをリフレッシュするために、対応するワード線が第１〜第３のリフレッシュ・アドレスによってそれぞれアクセスを受ける。言い換えれば、データ・リフレッシュ動作では、キャッシュ・メモリの第２〜第４のサブ配列４２〜４４それぞれの中で１つのワード線データが、第１〜第３のリフレッシュ・アドレスのそれぞれによってアクセスを受ける。例えば、ＴＡＧリフレッシュ・コントローラ１９４中に含まれる第１〜第３のリフレッシュ・アドレス・ジェネレータ３２０Ａ〜３２０Ｃは、第１〜第３のリフレッシュ・カウンタ３２２Ａ〜３２２Ｃからリフレッシュ・クロックをそれぞれ受け取り、第２〜第４のサブ配列４２〜４４への第１〜第３のリフレッシュ・アドレスをそれぞれ生成する。４つのサブ配列４１〜４４がある場合、各サブ配列は、例えばサブ配列中のワード線にアクセスするためのアドレスの最初の２桁によって識別される。言い換えれば、ワード線アドレスの最初の２桁は、「００」、「０１」、「１０」、または「１１」とすることができ、これらはそれぞれ、第１のサブ配列４１、第２のサブ配列４２、第３のサブ配列４３、または第４のサブ配列４４を指定する。
【００２９】
読取り／書込み動作では、第１のサブ配列４１中のワード線データがアクセス・アドレスによってアクセスを受け、第１のサブ配列４１をリフレッシュするために生成されたリフレッシュ・アドレスは、次に利用可能なリフレッシュ動作実施の時まで保持されなければならない。言い換えれば、ＣＰＵが他の３つのサブ配列４２〜４４のいずれかにアクセスするときに、第１のサブ配列４１中でデータ・リフレッシュ・プロセスを行うことができる。ただし、リフレッシュ・アドレス・ジェネレータから提供されたリフレッシュ・アドレスによってリフレッシュできるのは、良好なリフレッシュ可能状態にあるデータだけである。ＣＰＵが長時間にわたり第１のサブ配列４１のある部分に連続してアクセスする場合、第１のサブ配列４１の残りの部分に記憶されているデータは「ダーティ」となり、したがって、ＣＰＵがそれらのデータを必要としたときには、それらをメイン・メモリから置換しなければならない。すなわち、老化してリフレッシュ不可能な状態になったダーティ・データに対しては、データをメイン・メモリからコピーし直さなければならない。ただし、複数のサブ配列に対してこのように非常に不均一なアクセスが生じる確率は稀である。
【００３０】
リフレッシュ・アドレス・ジェネレータ３２０は、リフレッシュ動作が行われることになる各サブ配列にワード線のリフレッシュ・タイミングおよびアドレスを提供するリフレッシュ・カウンタ３２２を含むことが好ましい。リフレッシュ・カウンタ３２２は、例えば、リフレッシュされる各サブ配列に対するワード線アドレスの状態を把握している。あるワード線データがリフレッシュされるとき、リフレッシュ・カウンタ３２２は、リフレッシュするための次のサブ配列アドレスを生成する。サブ配列中のすべてのワード線がリフレッシュされたとき、リフレッシュ・カウンタ３２２はゼロにリセットされ、次のリフレッシュ・サイクル中で再び第１のワード線のリフレッシュを開始する。所定の時間にわたってリフレッシュまたはアクセスされなかった「ダーティ・ビット」を有するワード線のアドレスもまた、ＴＡＧメモリに記録され、キャッシュ・メモリがアクティブに読取り／書込み動作を行わないときにメイン・メモリからデータを転送することによってリフレッシュされる。各ワード線アドレスに対するタイミング情報の状態が把握され記録されるので、「ダーティ・ビット」を有するワード線アドレスを検出することができる。次いで、メイン・メモリからのデータによってワード線アドレスのダーティ・データを「クリーンにする」ために信号を送ることにより、ダーティ・ワード線アドレスのデータがリフレッシュされる。クリーンにすべきダーティ・データは、ＣＰＵからの要求に従ってデータがアクセスを受けるサブ配列以外のサブ配列中のものである。
【００３１】
ＤＲＡＭキャッシュ・メモリが「ｎ」個のサブ配列を有し、それぞれがワード線アドレスによってアクセスされるデータを記憶していると仮定した場合、あるサブ配列に対して読取り／書込み動作が行われ、同時に、「ｎ−１」個のサブ配列に対してデータ・リフレッシュ動作が実施できる。言い換えれば、キャッシュ・メモリ中の「ｎ−１」個のサブ配列に対してデータ・リフレッシュ動作を行う時間が余分に必要とはならない。したがって、ＤＲＡＭキャッシュ・メモリ中のデータ・リフレッシュ動作に必要な時間は、ＣＰＵにおいてどんな遅延も引き起こさない。
【００３２】
リフレッシュの不利益なしにＤＲＡＭキャッシュ・メモリ中のデータをリフレッシュする方法を述べたが、以上の教示に鑑みて、当業者なら容易に修正および変形を加えることができる。したがって本発明は、添付の特許請求の範囲内で、本明細書に具体的に述べた以外の方式で実施することができることを理解されたい。
【００３３】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３４】
（１）コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法であって、
（ａ）前記プロセッサから出された要求アドレスを、前記キャッシュ・メモリに記憶されているＴＡＧアドレスによって検証するステップと、
（ｂ）ステップ（ａ）で前記要求アドレスが検証されたときに、前記キャッシュ・メモリの複数のサブ配列のうちの１つにある、前記要求アドレスに対応するワード線にアクセスするステップと、
（ｃ）リフレッシュ・アドレスを生成して、前記キャッシュ・メモリ中の前記１つのサブ配列以外の前記複数のサブ配列中のデータをリフレッシュするステップであって、各リフレッシュ・アドレスが、前記１つのサブ配列以外の前記複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップと、
（ｄ）前記１つのサブ配列以外の前記複数のサブ配列中のデータがリフレッシュされる間に、前記１つのサブ配列中の、前記要求アドレスによってアクセスされる前記ワード線に対して読取り／書込み動作を行うステップとを含む方法。
（２）前記１つのサブ配列に対する読取り／書込み動作と、前記１つのサブ配列以外の前記複数のサブ配列中のデータのリフレッシュが同時に行われる、上記（１）に記載の方法。
（３）ステップ（ａ）が、
ＴＡＧメモリにＴＡＧアドレスを記憶するステップであって、各ＴＡＧアドレスが、前記キャッシュ・メモリに記憶された対応するワード線データに関連するステップと、
前記要求アドレスを前記ＴＡＧアドレスと比較するステップと、
前記要求アドレスと同一のＴＡＧアドレスを選択するステップとを含む、上記（１）に記載の方法。
（４）前記要求アドレスが前記ＴＡＧメモリ中の前記ＴＡＧアドレスと異なるとき、前記キャッシュ・メモリ中のデータに対して通常のリフレッシュ動作を行うステップをさらに含む、上記（３）に記載の方法。
（５）ステップ（ｃ）が、前記リフレッシュ・アドレスにより、前記１つのサブ配列以外の前記複数のサブ配列中のワード線に同時にアクセスするステップを含み、各リフレッシュ・アドレスが、前記１つのサブ配列以外の前記複数のサブ配列のうちの対応する１つに関連する、上記（１）に記載の方法。
（６）ステップ（ｃ）が、前記１つのサブ配列以外の前記複数のサブ配列それぞれのワード線の状態を把握することにより、前記それぞれのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップを含む、上記（１）に記載の方法。
（７）前記１つのサブ配列以外の前記複数のサブ配列それぞれの中のデータがリフレッシュされたときに、前記それぞれのサブ配列に対する前記データ・リフレッシュ・タイミングをリセットするステップをさらに含む、上記（６）に記載の方法。
（８）前記リフレッシュ・アドレスがそれぞれ、対応するリフレッシュ・アドレス中のデータの置換の優先順位を表す優先順位インデックスと、前記キャッシュ・メモリの対応するサブ配列中のワード線のアドレスを指定するためのワード線アドレスとを含む、上記（１）に記載の方法。
（９）前記リフレッシュ・アドレスがそれぞれ、対応するワード線アドレス中のデータの信頼性を示すフレッシュ・インデックスを含む、上記（８）に記載の方法。
（１０）コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法であって、
（ｅ）前記プロセッサから出された要求アドレスを検出するステップと、
（ｆ）前記要求アドレスが検出されたときに、前記キャッシュ・メモリの複数のサブ配列に記憶されたデータを連続してリフレッシュする通常のリフレッシュ動作を停止するステップと、
（ｇ）前記要求アドレスを、メモリにあらかじめ記憶されているアドレスと比較するステップであって、前記メモリ中の前記アドレスが、前記プロセッサによって選択される確率のより高い前記キャッシュ・メモリ中のデータに関連するステップと、
（ｈ）前記キャッシュ・メモリに記憶されたデータをリフレッシュするためのリフレッシュ・アドレスを生成するステップであって、各リフレッシュ・アドレスが、前記リフレッシュ・アドレスに対応するデータの古さに基づいて生成されるステップと、
（ｉ）前記要求アドレスによってアクセスされるワード線に対して読取り／書込み動作を行い、前記リフレッシュ・アドレスによってアクセスされるワード線上のデータをリフレッシュするステップであって、前記読取り／書込み動作と前記データのリフレッシュとが同時に行われるステップとを含む方法。
（１１）ステップ（ｉ）が、
前記読取り／書込み動作が行われるワード線にアクセスするために、前記キャッシュ・メモリのサブ配列に前記要求アドレスを提供するステップと、
前記要求アドレスが提供される前記サブ配列以外の複数のサブ配列にリフレッシュ・アドレスを提供するステップとを含み、前記リフレッシュ・アドレスがそれぞれ、前記サブ配列以外の前記複数のサブ配列それぞれの中の対応するワード線にアクセスする、上記（１０）に記載の方法。
（１２）コンピュータ・システム内でプロセッサからアクセス可能なキャッシュ・メモリ中のデータをリフレッシュするための装置であって、
前記プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、
前記メモリ・コントローラによって検出された前記要求アドレスを、前記キャッシュ・メモリに記憶されているデータに関連するアドレスと比較するためのコンパレータと、
前記コンパレータが前記要求アドレスと同一のアドレスを見つけたときにリフレッシュ・アドレスを生成して、前記キャッシュ・メモリに記憶されているデータをリフレッシュするためのリフレッシュ・コントローラとを備え、前記要求アドレスが前記キャッシュ・メモリの第１サブ配列にあるワード線にアクセスし、リフレッシュ・アドレスのそれぞれが、前記第１サブ配列以外のサブ配列のそれぞれにある、対応するワード線にアクセスする装置。
（１３）前記コンパレータが、前記キャッシュ・メモリ中のＴＡＧメモリからＴＡＧアドレスを受け取り、前記ＴＡＧアドレスがそれぞれ、前記キャッシュ・メモリのデータ・メモリに記憶されているデータの一部に関連する、上記（１２）に記載の装置。
（１４）前記キャッシュ・メモリの前記データ・メモリが、前記プロセッサによって選択される確率のより高いデータを記憶する、上記（１３）に記載の装置。
（１５）前記リフレッシュ・コントローラが、前記リフレッシュ・アドレスを生成するための複数のリフレッシュ・アドレス・ジェネレータを含み、前記リフレッシュ・アドレス・ジェネレータがそれぞれ、第１のサブ配列以外の各サブ配列と関連し、前記第１のサブ配列以外の前記サブ配列のうちの対応する１つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成する、上記（１２）に記載の装置。
（１６）前記複数のリフレッシュ・アドレス・ジェネレータがそれぞれ、前記第１のサブ配列以外の前記サブ配列のうち対応する１つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含む、上記（１５）に記載の装置。
（１７）前記リフレッシュ・カウンタが、前記リフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたときに前記リフレッシュ・タイミングを初期値にリセットする、上記（１６）に記載の装置。
（１８）前記要求アドレスが前記第１のサブ配列に提供されるのと同時に、前記リフレッシュ・コントローラが、前記第１のサブ配列以外の前記サブ配列にリフレッシュ・アドレスを提供する、上記（１２）に記載の装置。
【図面の簡単な説明】
【図１】本発明の好ましい実施形態が適用されるコンピュータ・システム内のメモリ構成のブロック図である。
【図２】図１のキャッシュ・メモリを示すブロック図である。
【図３】本発明によりキャッシュ・メモリをリフレッシュする方法を記述するフロー・チャートである。
【図４】本発明による、キャッシュ・メモリのサブ配列およびデータ・リフレッシュ動作を示すブロック図である。
【符号の説明】
１１  中央演算処理装置（ＣＰＵ）
１３  第１レベル・キャッシュ・メモリ
１５  メイン・メモリ
１７  ＣＰＵバス
１８  メモリ・コントローラ
１９  第２レベル・キャッシュ・メモリ
４１  サブ配列
４２  サブ配列
４３  サブ配列
４４  サブ配列
１９１  データ・メモリ
１９２  ＴＡＧメモリ
１９３  ＴＡＧコンパレータ
１９４  ＴＡＧリフレッシュ・コントローラ
３２０Ａ  リフレッシュ・アドレス・ジェネレータ
３２０Ｂ  リフレッシュ・アドレス・ジェネレータ
３２０Ｃ  リフレッシュ・アドレス・ジェネレータ
３２２Ａ  リフレッシュ・カウンタ
３２２Ｂ  リフレッシュ・カウンタ
３２２Ｃ  リフレッシュ・カウンタ
４０１  センス増幅器バンク
４０２  センス増幅器バンク
４０３  センス増幅器バンク
４０４  センス増幅器バンク
【図１】
0004360766.tif 000002
【図２】
0004360766.tif 000003
【図３】
0004360766.tif 000004
【図４】
0004360766.tif 000005