(57)【特許請求の範囲】
【請求項１】
複数のアイテムを保存する記憶装置であって、
前記記憶装置は、同一のクロックサイクルで、各アイテムにアクセスするための第１アクセス要求および第２アクセス要求を受信するように構成され、
前記記憶装置は、
前記複数のアイテムのサブセットをそれぞれ保存する２つのストアを具備し、
前記第１アクセス要求は第１ストアに送信されるとともに、前記第２アクセス要求は第２ストアに送信され、
前記記憶装置は、
要求されたアイテムが前記アクセスされたストアに保存されていないというミスを検出するミス検出回路と、
アクセスがミスを起こしたアイテムを別のストアから読み出すアイテム読み出し回路と、
前記各ストアのアクセス履歴に従って、前記２つのストアの各々に上書きするアイテムを選択するアップデート回路と
を具備し、
前記アップデート回路は、前記ミス検出回路が前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするとともに、
前記アップデート回路は、前記ミス検出回路が前記第２ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートし、
前記アップデート回路は、前記ミスを起こした前記アクセスされたストアに対して他方の前記第１または第２ストアに前記ミスを起こした前記アイテムが保存されているか識別するように構成され、前記少なくとも１つの別の条件は、前記アイテムが前記他方の第１または第２ストアに保存されていないとの前記ミス検出回路による後続の検出であることを特徴とする記憶装置。
【請求項２】
前記アップデート回路は、前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在していることの検出に応答して、前記他方の第１または第２ストアから前記アイテムを読み出すとともに、前記アップデート回路によって選択された前記アイテムを上書きすることによって、前記アイテムを前記ミスを起こした前記アクセスされたストアにコピーすることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記アップデート回路は、前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在していることの検出に応答して、上書きする前記アイテムを選択するとともに、前記ストアのアイテムアクセスの履歴に従って前記ミスを起こした前記アクセスされたストアに上書きするアイテムを選択し、
前記アップデート回路は、前記別のストアから読み出された前記アイテムで前記選択されたアイテムを上書きするように構成されることを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記アップデート回路は、前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在していることの検出に応答して、前記他方の第１または第２ストアのいずれのアイテムも上書きせず、前記ストアのアイテムアクセスの履歴に従って前記ミスを起こした前記アクセスされたストアに上書きするアイテムを選択するとともに、前記選択されたアイテムを上書きすることを特徴とする請求項１に記載の記憶装置。
【請求項５】
前記別のストアから読み出された前記アイテムは、関連するデータの属性を示す属性データを有し、
前記少なくとも１つの別の条件は、所定の値を有していない前記属性データを有し、
前記アップデート回路は、前記所定の値を有していない前記属性データに応答して、前記読み出されたアイテムで前記第２ストアおよび前記第１ストアをアップデートするとともに、前記所定の値を有している属性データに応答して、前記読み出されたアイテムで前記他方の第１または第２ストアをアップデートせずに、前記読み出されたアイテムで前記ミスを起こした前記アクセスされたストアをアップデートすることを特徴とする請求項１に記載の記憶装置。
【請求項６】
前記第１アクセス要求は、保存要求であり、
前記第２アクセス要求は、ロード要求であり、
前記ミスを起こした前記アクセスされたストアは前記第１ストアを含むとともに、
前記所定の値は、前記値に関連する前記データが読み出し専用データであることを示す値であることを特徴とする請求項５に記載の記憶装置。
【請求項７】
前記２つのストアは、２つのレベル１のキャッシュを具備し、
前記記憶装置は、前記別のストアをさらに具備するとともに、
前記別のストアは、レベル２のキャッシュを具備することを特徴とする請求項１に記載の記憶装置。
【請求項８】
前記アップデート回路は、前記２つのストアの各々へのアクセス履歴を保存するバッファを具備するとともに、
前記アップデート回路は、最近アクセスされていない、上書きするアイテムを選択するように構成されることを特徴とする請求項１に記載の記憶装置。
【請求項９】
前記アクセス要求は、仮想アドレスを使用して前記アイテムの記憶位置を識別するとともに、
前記２つのストアは、仮想アドレスから物理アドレスへの複数の変換をそれぞれ保存する複数のトランスレーション・ルックアサイド・バッファを具備することを特徴とする請求項１に記載の記憶装置。
【請求項１０】
前記記憶装置が、少なくとも１つの追加のストアを具備し、
前記記憶装置は、前記第１および第２アクセス要求と同様に、同一のクロックサイクルで少なくとも１つの追加のアクセス要求を受信するように構成されており、
前記少なくとも１つの追加のアクセス要求が、前記少なくとも１つの追加のストアに送信され、
前記アップデート回路は、前記少なくとも１つの追加のストアのアクセス履歴に従って、前記少なくとも１つの追加のストアを上書きするアイテムを選択するように構成され、
前記アップデート回路は、前記ミス検出回路が前記第１ストアへのアクセスにおける前記ミスを検出したことと、前記少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで全ての前記ストアをアップデートすることを特徴とする請求項１に記載の記憶装置。
【請求項１１】
データを処理するプロセッサと、請求項１に記載の記憶装置とを具備するデータ処理装置であって、
前記プロセッサは、同一のクロックサイクル中にデータロード要求およびデータ保存要求を生成するように構成されることを特徴とするデータ処理装置。
【請求項１２】
前記データ処理装置は、前記別のストアを具備し
前記別のストアは、各アイテムに関連する属性データを保存するように構成されることを特徴とする請求項１１に記載のデータ処理装置。
【請求項１３】
第１および第２ストアに保存されたアイテムをアップデートする方法であって、
同一のクロックサイクルで、前記第１ストア内の第１アイテムにアクセスするための第１アクセス要求と、第２ストア内の第２アイテムにアクセスするための第２アクセス要求とを受信するステップと、
要求されたアイテムが前記アクセスされたストアに保存されていないというミスをいずれのアクセス要求が起こしたか判定するステップと、
アクセスがミスを起こしたアイテムを別のストアから読み出すステップと、
前記各ストアのアクセス履歴に従って、前記２つのストアの各々に上書きするアイテムを選択するステップと、
前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするステップと、
前記第２ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするステップと、
前記ミスを検出した後に、前記ミスを起こした前記アイテムが他方の前記第１または第２ストアに保存されているかを識別するステップと
を具備し、
前記少なくとも１つの別の条件は、前記第１アイテムが前記他方の第１または第２ストアに保存されていないことの検出であることを特徴とする方法。
【請求項１４】
前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在することの検出に応答して、
前記他方の第１または第２ストアから前記アイテムを読み出すステップと、
アップデート回路によって選択された前記アイテムを上書きすることによって、前記アイテムを前記第１ストアにコピーするステップと
を具備することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在することの検出に応答して、
上書きする前記アイテムを選択するステップと、
前記ストアのアイテムアクセスの履歴に従って、前記前記ミスを起こした前記アクセスされたストアに上書きするアイテムを選択するステップと、
前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするステップと
を具備することを特徴とする請求項１３に記載の方法。
【請求項１６】
前記ミスを起こした前記アイテムが前記他方の第１または第２ストアに存在することの検出に応答して、
前記他方の第１または第２ストア内のいずれのアイテムも上書きしないステップと、
前記ストアのアイテムアクセスの履歴に従って、前記ミスを起こした前記アクセスされたストアに上書きするアイテムを選択するとともに、前記選択されたアイテムを前記アクセスされたストアに上書きするステップと
を具備することを特徴とする請求項１３に記載の方法。
【請求項１７】
複数のアイテムを保存する記憶手段であって、
前記記憶手段は、同一のクロックサイクルで、各アイテムにアクセスするための第１アクセス要求および第２アクセス要求を受信するように構成され、
前記記憶手段は、
前記複数のアイテムのサブセットをそれぞれ保存する２つのストアを具備し、
前記第１アクセス要求は第１ストアに送信されるとともに、前記第２アクセス要求は第２ストアに送信され、
前記記憶手段は、
要求されたアイテムが前記アクセスされたストアに保存されていないというミスを検出するミス検出手段と、
アクセスがミスを起こしたアイテムを別のストアから読み出すためのアイテム読み出し手段と、
個々のストアのアクセス履歴に従って、前記２つのストアの各々に上書きするアイテムを選択するアップデート手段と
を具備し、
前記アップデート手段は、前記ミス検出手段が前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするとともに、
前記アップデート手段は、前記ミス検出手段が前記第２ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートし、
前記アップデート手段は、前記ミスを起こした前記アクセスされたストアに対して他方の前記第１または第２ストアに前記ミスを起こした前記アイテムが保存されているか識別するように構成され、前記少なくとも１つの別の条件は、前記アイテムが前記他方の第１または第２ストアに保存されていないとの前記ミス検出手段による後続の検出であることを特徴とする記憶手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、データ記憶装置に関し、具体的にいえば、クロックサイクルごとに複数のアクセス要求を受信するデータ記憶装置に関する。
【背景技術】
【０００２】
データプロセッサは、極めて大きな記録容量を必要とする、以前よりも大規模な量のデータを処理する。メモリのような大きなデータストアは、アクセスするのに時間がかかる。したがって、サブセット内にないデータが要求された場合に、ハイレベルのキャッシュまたはメモリのような１つまたは複数の大きなストアにアクセスすることによって、アクセスが容易であるローレベルのキャッシュのような小さいデータストアに、プロセッサが必要とし得るデータのサブセットを保存するための技術が発展してきている。
【０００３】
より小さいデータストアは、アクセスが容易であるために、プロセッサの速度を改善する一方で、電力および設置面積の点において実装するのにコストが高いため、プロセッサが必要とする可能性の高いアイテムを保存していることが重要となる。必要とされているデータを保存していない場合には、利益を付加することなく単に、設置面積を増大するとともに、電力を浪費する。実際に、これらのデータストアにおけるヒットレートは、プロセッサの電力消費およびパフォーマンスにとって、非常に重要である。
【０００４】
このようなデータストアにおける１つの例は、トランスレーション・ルックアサイド・バッファ、すなわちＴＬＢである。仮想メモリを具備したほとんどの最新のマイクロプロセッサは、仮想的にアドレス指定されているとともに、物理的にマップされているデータキャッシュを有している。したがって、全てのメモリの読み出しおよび書き込みは、アドレス指定された記憶位置にアクセスすることが可能になる前に、それらの仮想アドレスを物理アドレスに変換する必要がある。この変換は、典型的には、ＴＬＢと呼ばれる小さな変換キャッシュによって実施される。ＴＬＢが、要求された変換を保持していない場合には、変換情報を、バッキングレベル２のＴＬＢから、または、メモリ内のページテーブルにアクセスするメモリの管理ロジックから、読み出さなければならない。これらＴＬＢのヒットレートは、プロセッサのパフォーマンスにとって非常に重要である。バッキングＬ２のＴＬＢを用いる場合であっても、ＴＬＢのミスに関する不利益は、全体的なパフォーマンスに対して極めて大きな影響を及ぼす。
【０００５】
多くの現代的なマイクロプロセッサは、サイクルごとに、２つのメモリアクセス、すなわち、１つのロードと１つの保存とを発行することが可能であり、このため、これらは、変換を実施するための、２つのＴＬＢまたはデュアルポートのＴＬＢを必要とする。デュアルポートのＴＬＢは、２つのＴＬＢのソリューションとほぼ同じ設置面積を有しており、実質的に、２つのＴＬＢと同様に実施され得る。このデュアルポートのＴＬＢは、事実上、各エントリーが２回も保存される、という欠点を有している。異なるエントリーをそれぞれ保存することの可能な、２つの独立したＴＬＢを使用することは、デュアルポートのＴＬＢよりも多くのエントリーを保存することが可能であるという利点を有しており、このために、２つのＴＬＢがメモリの異なる領域にアクセスしている状況においては、より高いパフォーマンスを提供することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、場合によっては、同一のデータアイテムに対してロードおよび保存を実行してしまうこともあり、また、これらのデータアイテムが最近アクセスされていない場合には、２つのＴＬＢを実施する態様においては、ＴＬＢのロードおよびＴＬＢの保存の両方において、ミスが生じる。したがって、これらのアクセスの両方に関する、時間的な不利益が生じる。デュアルポートのＴＬＢを用いていれば、明らかに、ＴＬＢのロードは、ＴＬＢの保存に利用できるように、データを保存していたはずである。
【０００７】
このように、これら２つの実施態様の両方とも、欠点を有している。
【０００８】
デュアルポートの保存メカニズムおよび独立した保存メカニズムの両方の利点における少なくともいくつかを具備するシステムを提供することが可能であることが、望ましいと考えられる。
【課題を解決するための手段】
【０００９】
本発明における第１態様は、複数のアイテムを保存する記憶装置であって、前記記憶装置は、同一のクロックサイクルで、各アイテムにアクセスするための第１アクセス要求および第２アクセス要求を受信するように構成され、前記記憶装置は、前記複数のアイテムのサブセットをそれぞれ保存する２つのストアを具備し、前記第１アクセス要求は第１ストアに送信されるとともに、前記第２アクセス要求は第２ストアに送信され、前記記憶装置は、要求されたアイテムが前記アクセスされたストアに保存されていないというミスを検出するミス検出回路と、アクセスがミスを起こしたアイテムを別のストアから読み出すアイテム読み出し回路と、前記２つのストアの各々に上書きするアイテムを、前記各ストアのアクセス履歴に従って選択するアップデート回路とを具備し、前記アップデート回路は、前記ミス検出回路が前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートすることを特徴とする記憶装置を提供する。
【００１０】
本発明は、同一のクロックサイクルで、２つのアクセス要求が発生しているときには、これらは関連している可能性があり、そのため、これらがアクセスしている２つのデータストアの間に何らかのリンケージを設けることが、各データストアが同様に独立してデータを保存することが可能であるときには、有利である可能性がある、ということを認識している。したがって、本発明は、ミスおよび少なくとも１つの別の条件に応答して、読み出されたアイテムを用いて、選択されたアイテムを上書きすることによって、これら両方のストアをアップデートする、アップデート回路を提供している。これらのアイテムは、実際のデータストアのアクセス履歴に従って選択されるため、最近アクセスされていないアイテムを各ストアに独立して上書きすることが可能である。したがって、第１アクセス要求の１つが、第２アクセス要求には必要とされないアイテムにアクセスしている場合には、このアイテムは、第２データストアに保存されている一方で使用されておらず、そのため、アップデート回路は上書きするためすぐに選択する。しかし、２つのアクセス要求が共通のアイテムにアクセスしている場合には、第１アクセス要求によってアクセスされているアイテムは、少なくともいくつかの第２アクセス要求によっても必要とされており、第２データストアにそれらを保存することは、何らかの利益を提供する。
【００１１】
実施形態によっては、前記アップデート回路が、前記ミスを起こした前記アイテムが前記第２ストアに保存されているか否かを特定するように構成されているとともに、前記少なくとも１つの別の条件が、前記アイテムが前記第２ストアに保存されていないことの検出である。
【００１２】
このアップデート回路は、第１ストアにおいてミスを起こしたアイテムが第２ストアに保存されているか否かを特定してもよい。それが第２ストアに保存されていない場合には、このことは、上記した少なくとも１つの別の条件となり、アップデート回路が、読み出されたアイテムを用いて、それらのアクセス履歴に応じて選択されたアイテムを上書きすることによって、第１および第２ストアの両方をアップデートするはずである、ということを意味している。
【００１３】
他の実施形態では、前記アップデート回路は、前記ミスを起こした前記アイテムが前記第２ストアに存在していることの検出に応答して、前記第２ストアから前記アイテムを読み出すとともに、前記アップデート回路によって選択された前記アイテムを上書きすることによって、前記アイテムを、前記第１ストアにコピーするようになっている。
【００１４】
ミスを起こしたアイテムが第２ストアに存在している場合には、実施形態によっては、このアイテムが、第２ストアから読み出されるとともに、第１ストアにおけるアップデート回路によって選択された位置にコピーされる。このことは、別のストアからアイテムを取り出すことが多くのクロックサイクルを必要とするような場合に、有利になる可能性がある。これは、別のストアがオフ・チップ・メモリなどのアクセスすることが困難なストアである場合に、生じる可能性がある。
【００１５】
他の実施形態では、前記アップデート回路は、前記ミスを起こした前記アイテムが前記第２ストアに存在していることの検出に応答して、上書きする前記アイテムを選択するとともに、前記第１ストアに上書きするアイテムを、前記ストアのアイテムアクセスの履歴に従って選択し、前記アップデート回路は、前記別のストアから読み出された前記アイテムで前記選択されたアイテムを上書きするように構成されている。
【００１６】
別のストアが遠隔地にあるものではないとともに、アクセスすることが困難なものではない場合には、ただ単に、他の状況において実行されているように、別のストアからデータアイテムを取り出すこと、および、第２ストアにおいて取り出された値を用いて、このアイテムを上書きすること、および、アクセス履歴に従って、第１ストアにおけるアップデート回路によって選択された位置に、それを書き込むことの方が、より容易である可能性がある。取り出された値は、第２ストアに保存されているものと同一の値でなければならない一方で、この値を上書きすることは、そのことが、２つのデータストアは同一のアイテムに関して異なる変換または属性を決して保持していない、ということを保証するために、有利である可能性がある。ソフトウェアは、このことが絶対に起こらないようにすべきではある一方で、この場合には、エントリーを常に上書きすることによって、検証努力を減少することが可能となる。
【００１７】
他の実施形態では、このエントリーは、第２ストアにおいては上書きされず、それは単にそのまま放置され、第２ストアには何のアイテムも書き込まれず、読み出されたアイテムは、第１データストアにおける、アップデート回路によって選択された場所に書き込まれる。
【００１８】
実施形態によっては、前記別のストアから読み出された前記アイテムは、属性データを有しており、前記属性データは、関連するデータの属性を示しており、前記少なくとも１つの別の条件は、前記属性データを有し、前記アップデート回路は、所定の値を有していない前記属性データに応答して前記読み出されたアイテムで前記第２ストアおよび前記第１ストアをアップデートする一方で、前記所定の値を有している属性データに応答して、前記読み出されたアイテムで記第２ストアをアップデートせずに、前記読み出されたアイテムで前記第１ストアをアップデートする。
【００１９】
場合によっては、保存されているアイテムは、それらに関連する属性情報を有していてもよい。アイテムをアップデートするか否かを決定するときに、この情報を使用することが有利になる可能性がある。
【００２０】
例えば、前記第１アクセス要求がロード（メモリの読み出し）の要求であり、前記第２アクセス要求が保存（メモリへの書き込み）の要求であり、前記所定の値が、関連する前記データを示す値であり、前記値が読み出し専用のデータであるときには、この場合には、読み出されたアイテムが保存（メモリへの書き込み）用のパイプラインにおいては決して使用されないこと、および、このために、このパイプラインにある第２ストアにそれが書き込まれるべきではないこと、は明らかである。したがって、この別の情報を使用することは、第２ストアにおいて必要とされる可能性のあるアイテムを、決して必要とされることがないとわかっているアイテムを用いて上書きしないことによって、デバイスの効率を改善することが可能である。
【００２１】
実施形態によっては、前記２つのストアは、２つのレベル１のキャッシュを具備し、前記記憶装置は、前記別のストアをさらに具備し、前記別のストアは、レベル２のキャッシュを具備している。
【００２２】
本発明の実施形態は、アクセスすることが容易かつ安価なデータストアからなる、少量のデータだけを保存することの可能なキャッシュにとって、それらの設置面積および電力に関するコストのために、特に有用である。レベル１のキャッシュは、アクセスすることが最も容易かつ最も素早いものであり、また、レベル２のキャッシュは、一般的には、より大きく、アクセスするためにより多くの時間を消費するものである。したがって、データのサブセットを保存するためのレベル１のキャッシュとして、ストア１およびストア２を有するとともに、別のデータアイテムをレベル２すなわちＬ２のキャッシュに保存することが、有利である可能性がある。他の実施形態では、別のデータのためのＬ２のキャッシュを有することに代えて、別のデータをメモリに保存してもよく、この場合には、このデータにアクセスするために、メモリ管理ユニットが必要とされる。
【００２３】
実施形態によっては、前記アップデート回路は、前記２つのストアの各々に関するアクセス履歴を保存するバッファを具備するとともに、前記アップデート回路は、最近アクセスされていないアイテムを上書きすることを選択するように構成されている。
【００２４】
上書きすべきアイテムを選択するときには、アップデート回路は、そのストアに関するアクセス履歴に依存する。したがって、実施形態によっては、それは、２つのストアのそれぞれに関するアクセス履歴を保存するバッファを備えており、さらに、アップデート回路は、このデータを利用して、最近アクセスされていないアイテムを、上書きするために選択する。このようにして、しばらく使用されていないアイテムが上書きされる。したがって、ストアに、他のストアによっては必要とされている一方、このストアにおいては使用されないアイテムが書き込まれた場合には、これらは、これらがアクセスされていないことをそれらのアクセス履歴が示しているために、すぐに上書きされる。
【００２５】
実施形態によっては、前記アクセス要求は、仮想アドレスを使用して前記アイテムの記憶位置を識別するとともに、前記２つのストアは、仮想アドレスから物理アドレスへの複数の変換をそれぞれ保存する複数のトランスレーション・ルックアサイド・バッファを具備している。
【００２６】
本発明の実施形態は、トランスレーション・ルックアサイド・バッファとって、特に有用である。導入部分に記載したように、トランスレーション・ルックアサイド・バッファは、プロセッサによって出力された仮想アドレスを、キャッシュおよびメモリにおける記憶位置を特定する物理アドレスに変換するために使用される。これらのトランスレーション・ルックアサイド・バッファは、一般的にはキャッシュであり、変換情報のサブセットを保存している。これらは、処理時間において大きなコストを発生させるために、これらにおいては、できるだけミスが生じないことが重要である。本発明の実施形態は、２つのルックアサイド・バッファを設ける方法を提供しており、これらは、独立のアイテムを保存することが可能である一方で、これらの一方がアイテムを必要としている場合に、このアイテムが他方にも書き込まれるように、リンクされている。このことは、例えばプロセッサが、比較的に近い時間帯に、同一のページに対する読み出しおよび書き込みを実行している状況では、ページに対する第１ロードが、そのページに対する書き込みの準備が整っている書き込み経路上にあるデータストアにそれが保存されることを、確保する、ということを意味している。上書きされるために選択されているアイテムが、ストアごとに、それらのアクセス履歴に基づいて独立に選択されているために、データストアの１つに対して必要とされていないアイテムが書き込まれた場合には、それは、すぐに上書きされる。
【００２７】
保存されているアイテムは、ただ単に、仮想アドレスから物理アドレスへの変換であってもよいし、または、これらは、代替的に、その物理アドレスに保存されているアイテムの属性に関連する属性データなどの、追加の情報を含んでいてもよい、ということに注意すべきである。
【００２８】
実施形態によっては、前記記憶装置は、少なくとも１つの追加のストアを具備し、前記記憶装置は、同一のクロックサイクルで、少なくとも１つの追加のアクセス要求を前記第１および第２アクセス要求と同様に受信するように構成され、前記少なくとも１つの追加のアクセス要求は、前記少なくとも１つの追加のストアに送信され、前記アップデート回路は、前記少なくとも１つの追加のストアを上書きするアイテムを、前記少なくとも１つの追加のストアのアクセス履歴に従って選択するように構成され、前記アップデート回路は、前記ミス検出回路が前記第１ストアへのアクセスにおける前記ミスを検出したことと、前記少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで全ての前記ストアをアップデートするようになっている。
【００２９】
本発明の実施形態は、単一のサイクルおよび２つのデータストアにおける、２つのアクセス要求に関して議論されてきた一方で、当業者にとっては、それが、追加のデータストアの使用を伴う同一のサイクルにおける別のアクセス要求に関しても同様に良好に妥当することは、明らかであるはずである。このような状況では、上記した別の条件も満たされている場合には、いずれかのデータストアにおけるいずれかのミスによって、読み出されたデータが、それらの全てに保存される。
【００３０】
本発明における第２態様は、データを処理するプロセッサと、本発明における第１態様による記憶装置とを具備するデータ処理装置であって、前記プロセッサは、同一のクロックサイクルで、データのロード要求およびデータの保存要求を生成するように構成されるデータ処理装置を提供する。
【００３１】
２つのアクセス要求が、ロード要求および保存要求である場合には、比較的に近い時間帯に、プロセッサが同一のアイテムに対する読み出しおよび書き込みを実行する可能性が高いために、リンクされているストアを有することは、特に有利である。このような場合に、ストアがリンクされていないと、あるアイテムに対する第１ロードによって、プロセッサが、ミスが処理されている間にストールするとともに、そのすぐ後に、同一のアイテムに対する第１保存が生じたときに、プロセッサが、再びストールする。ロード中に回復されたデータを書き込み用のパイプラインのためのデータストアに保存することによって、第２ストールは回避される。
【００３２】
実施形態によっては、前記データ処理装置は、前記別のストアを具備し、前記別のストアは、各アイテムに関連する属性データを保存するように構成されている。
【００３３】
アイテムを、別のストアにおける物理アドレスによって特定される位置に保存してもよい。これらのアイテムは、例えば、プロセッサによって処理されるべきデータアイテムであってもよいし、または、プロセッサを制御するための命令であってもよい。これらの物理アドレスは、これらに関連する属性データを有していてもよく、この属性データは、そのアドレスに保存されているアイテムの属性の表示を提供する。これらの属性は、アイテムがキャッシュ可能であるか否かおよび／または、それが読み出し専用のアイテムであるのか、または書き込み専用のアイテムであるのか、などの事項を含んでいてもよい。
【００３４】
本発明における第３態様は、第１および第２ストアに保存されているアイテムをアップデートする方法であって、同一のクロックサイクルで、前記第１ストア内の第１アイテムにアクセスするための第１アクセス要求、および第２ストア内の第２アイテムにアクセスするための第２アクセス要求を受信するステップと、要求されたアイテムが前記アクセスされたストアに保存されていないというミスをいずれのアクセス要求が起こしたかを判定するステップと、アクセスがミスを起こしたアイテムを別のストアから読み出すステップと、前記各ストアのアクセス履歴に従って、前記２つのストアの各々において上書きするアイテムを選択するステップと、前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートするステップと具備することを特徴とする方法を提供する。
【００３５】
本発明における第４態様は、複数のアイテムを保存する記憶手段であって、記憶手段は、同一のクロックサイクルで、各アイテムにアクセスするための第１アクセス要求および第２アクセス要求を受信するように構成され、前記記憶手段は、前記複数のアイテムのサブセットをそれぞれ保存するための２つのストアを具備し、前記第１アクセス要求は第１ストアに送信されるとともに、前記第２アクセス要求は第２ストアに送信され、要求されているアイテムが前記アクセスされたストアに保存されていないというミスを検出するミス検出手段と、アクセスがミスを起こしたアイテムを別のストアから読み出すアイテム読み出し手段と、前記個々のストアにおけるアクセス履歴に従って、前記２つのストアの各々に上書きするアイテムを選択するためのアップデート手段とを具備し、前記アップデート手段は、前記ミス検出手段が前記第１ストアへのアクセスにおける前記ミスを検出したことと、少なくとも１つの別の条件とに応答して、前記選択されたアイテムを上書きすることによって、前記別のストアから読み出された前記アイテムで前記２つのストアの両方をアップデートすることを特徴とする記憶手段を提供する。
【００３６】
本発明における上述のおよび他の目的、特徴点および有利な点は、添付図面に関連して理解されることが予定されている、以下に示す例示的な実施形態の詳細な説明から、明らかになるはずである。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態によるデータ記憶装置を示す図である。
【図２】本発明の実施形態によるＴＬＢを用いてアクセスされるキャッシュを具備したデータ処理装置を示す図である。
【図３】単一のクロックサイクルで複数のアクセス要求を受信する記憶装置を示す図である。
【図４】本発明の実施形態による方法を例示するフローチャートである。
【発明を実施するための形態】
【００３８】
図１は、本発明の実施形態による記憶装置１０を示している。前記記憶装置は、複数のデータアイテム１５およびそれらの対応アドレス１６を備えた、２つのデータストア１２および１４を備えている。これら２つのデータストアは、並列に配置されており、同一のクロックサイクルでアクセス要求をそれぞれ受信する。これらのアクセス要求は、データに関するアクセス要求であり、アドレスを用いることによって、このデータの記憶位置を指定する。したがって、指定されたアドレスはアドレス１６と比較され、それが適合した場合には、データが出力される。
【００３９】
データの出力と同様に、この記憶位置へのアクセスが存在していることを示すヒットデータが、回路２０に送信される。回路２０は、各データストア１２および１４のための、２つのアクセス履歴バッファ２２および２４を備えている。これらは、データストア１２および１４のアクセス履歴を保存する。アクセス要求の１つまたは両方が、アクセスされたデータストア１２・１４内において、必要とされているデータを発見しなかった場合には、これは、ミス検出器３０を用いることによって検出される。そして、ミス検出器３０は、他のデータストア１４・１２において、ミスの生じたアイテムを探す。そして、ミス検出器３０は、回路２０内のアップデートロジックに対して、個々のデータストアにおいてミスがあったことを示す信号を送信するとともに、ミスの生じたアイテムが他のデータストア内にあったか否かおよび、それがその位置であったか否かを示す信号を送信する。
【００４０】
そして、アップデート回路は、ミスの生じたデータアイテムを取り出してくるように、フェッチ回路２８に信号を送信し、さらに、フェッチ回路２８は、遠隔地にある追加のデータストアに信号を送信し、必要とされているデータアイテムを読み出す。
【００４１】
この実施形態では、データアイテムは、この遠隔地のデータストアにおける、アドレスによって特定される位置に保存されている。この記憶位置は、それに関連する属性データを有しており、これにより、このアドレスに保存されているアイテムの属性を示している。データアイテムに関連している可能性のある属性の例は、読み出し、書き込み、またはアクセス不可能などの許可であり、これらの許可は、例えばデータアイテムにアクセスすることを許されている者の指定などの、別の制限を有している可能性があり、例えば、アクセスを特定のユーザーまたは管理者に制限するようにしてもよい。別の属性は、キャッシュ可能、実行不可などの事項、または、デバイスインジケータを含んでいてもよい。このように、これらの属性は、データアイテムについての別の情報を提供しており、また、これらの属性を、特定のデータストアにデータアイテムを保存することが適切であるか否かを判定するために、アップデートロジックによって使用するようにしてもよい。この属性データを、データストアにおいて、データアイテムとともに読み出したり保存したりするようにしてもよい。
【００４２】
したがって、アップデートロジック２６は、最近アクセスされていない記憶位置を判定するために、そのデータストアのアクセス履歴を使用することによって、ミスが発生したデータストアにおける、このデータアイテムを保存すべき位置を選択する。そして、このアップデート回路２６は、属性データを調査することによって、この属性データが、このデータアイテムを他のデータストアに保存することが有用そうであるか否かを示しているか否かを確かめる。例えば、データアイテムの属性が、データアイテムが読み出し専用のデータであることを示している場合であって、他のデータストアが、書き込み用の経路上にあるデータストアである場合には、このデータストアに保存されているアイテムを、この読み出し専用のデータアイテムによって上書きしないことが好ましい。属性データが、他のデータストアへのデータアイテムの書き込みを防止していない場合には、アップデート回路２６は、このデータアイテムを書き込むための記憶位置を選択する。第１に、それは、ミス検出器が送信したデータを調査して、そのデータストアにデータアイテムが以前にも保存されていたか否かを確かめる。そして、保存されていた場合には、それは、データを書き込むための上記の位置を選択する。一方、保存されていなかった場合には、それは、アクセス履歴バッファに保存されているアクセス履歴から、記憶位置を選択する。この実施形態では、ミスされていたデータアイテムが他のデータストアにある場合には、それが上書きされるようになっている一方で、他の実施形態では、このデータは、そのデータストアにあるままに単に放置され、このデータアイテムは、そのデータストアに書き込まれない、という可能性もある、ということに注意すべきである。明らかに、データストアにそれを書き込まないことは、ある程度の電力節約という利点を有しており、一方、データストアにそれを書き込むことは、何らかの理由のもとに、何らかの方法によって、データアイテムのコピーが変更されている場合に、最も新しい値が書き込まれる、という利点を有する。
【００４３】
図２は、本発明の実施形態によるデータ処理装置１００を示している。これは、プロセッサ１１０、および、物理的にアドレス指定されているキャッシュである、キャッシュ１１２および１１４を備えている。これらは、２つのキャッシュとして示されている一方で、実施形態によっては、これらは、１つの読み出しおよび書き込み用のポートを具備する単一のキャッシュであってもよいことに留意すべきである。このプロセッサは、並列に動作するロード用および保存用のパイプラインを有しており、このために、同一のクロックサイクルで送信されるロード要求および保存要求が存在する。これらの要求は、仮想アドレスを使用しており、このため、キャッシュからのデータアイテムにアクセスするためには、これらは、物理アドレスに変換される必要がある。これは、ＴＬＢ１２２および１２４を用いることによって実行される。したがって、ロード要求および保存要求は、個々のＴＬＢに対して同時に送信されるとともに、指定されているアドレスがその内部に保存されているか否かが判定される。保存されていない場合、これは、ミス検出器３０を用いることによって検出され、このミス検出器３０は、他のＴＬＢを調査して、そこにアイテムが保存されているか否かを確かめる。しかし、指定されたアドレスが存在する場合には、このヒット情報が、回路２０における各ＴＬＢに付随しているアクセス履歴バッファに送信される。同時に、仮想アドレスから見出された物理アドレスは、キャッシュに送信される。
【００４４】
ＴＬＢの１つまたは両方がミスを起こした場合には、アップデートロジック２６は、ミス検出器から受信した情報から、必要とされているアイテムが他のＴＬＢにあるか否かを判定する。このアイテムは、追加のアドレス変換情報を保存しているＬ２キャッシュ１２６から取り出される。これは、必要とされている情報を返送し、そして、アップデートロジック２６は、ミス検出器３０から、このアイテムが過去に他のＴＬＢにあったか否かを判定する。それが他のＴＬＢにあった場合、このＴＬＢはアップデートされないとともに、ミスを起こしたＴＬＢが、読み出されたアイテム、すなわち、上書きするためにアクセス履歴から選択されたアイテムによってアップデートされる。他のＴＬＢになかった場合、アップデートロジックは、個々のアクセス履歴バッファから、ＴＬＢ１２２および１２４における、このデータアイテムを保存すべき場所を判定する。それは、上書きするために、最後に使われてから最も長い時間の経過しているアイテムを選択する。このように、異なるデータアイテムが、それらのアクセス履歴に基づいて、上書きされるために選択され、これにより、ＴＬＢのそれぞれにデータアイテムが書き込まれる一方で、２つのＴＬＢは、同時には、同一のデータアイテムを保持していない。しかし、一方のＴＬＢにおけるミスが、他のＴＬＢに保存されるためのアドレス変換を引き起こすために、プロセッサが、時折に生じる同一のページテーブルに対する読み出しおよび書き込みを実行している場合には、必要とされるページテーブルが保存用のパイプラインにおけるＴＬＢに書き込まれるために、ミスに応じたロード用のパイプラインにおけるストールの後に、保存用のパイプラインにおけるストールが続くことはない。これらが異なるページテーブルにアクセスしている場合には、他のＴＬＢにおけるミスに応じて、１つのＴＬＢに保存されている情報は、使用されないとともに、上書きのアルゴリズムがアクセス履歴を使用することによって上書きすべきアイテムを選択しているために、すばやく上書きされる。
【００４５】
図３は、本発明の実施形態によるデータ記憶装置を示している。この装置には、３つの並列のデータストア２２２、２２４および２２６に対して並行に生じる、３つのデータアクセス要求が存在している。以前の回路と同様に、ミス検出器３０は、いずれかのデータストアにおいてミスが存在しているか否かを検出するとともに、存在している場合には、他のいずれかのデータストアにそのアイテムが存在しているか否かを判定する。そして、それは、この情報をアップデートロジック２６に送信する。ミスがない場合には、ヒットがあったという情報が回路２０に送信され、ここでは、それが、個々のデータストアに関連する履歴バッファ２２内に保存される。そして、アップデートロジック２６が、ミス回路３０からの情報から、必要とされているデータアイテムが他のいずれかのデータストアに存在していたか否かを判定する。存在していた場合、それは、そのデータストアから他のデータストアにそのデータをコピーするとともに、個々の履歴バッファ２２内の情報から、データストアにおける上書きすべき位置を選択する。データアイテムが他のいずれかのデータストアに存在していなかった場合には、それは、この実施例においてはメモリ管理ユニット２３０から、そのデータを取り出す。この実施形態では、別のデータストアがレベル２のキャッシュではなく、メモリ管理ユニットによって実際にいくらか管理されているために、それは、データを読み出すために、非常に多くの余分な時間をかけている、ということに留意すべきである。したがって、データストアの１つに存在していないデータアイテムが、他のデータストアの１つに存在している場合には、このデータストアから他のデータストアにそれをコピーすることが有利である。データアイテムがいずれのデータストアにも存在していない場合には、それは、メモリ管理ユニット２３０を用いることによって取り出されるとともに、データストアのそれぞれに書き込まれ、データストアのそれぞれにおいて上書きされるべきアイテムは、個々の履歴バッファ２２から判定されたアクセス履歴に基づいて、選択される。
【００４６】
図４は、本発明の実施形態による方法を例示するフローチャートである。最初に、複数のアクセス要求が受信され、要求されているアイテムが対応するデータストアに存在するか否かが判定される。存在する場合には、そのデータストアに関するアクセス履歴がアップデートされるとともに、要求されている全てのアクセスが実行されているか否かが判定される。
【００４７】
それが対応するデータストアにない場合には、要求されているアイテムが他のいずれかのデータストアにあるか否かが判定される。他のデータストアにある場合、このアイテムは、その特定のデータストアにおいて上書きされるべきアイテムとして、選択される。そして、このアイテムは、別のデータストアから読み出される。そして、各データストアにおいて上書きされるべきアイテムは、それが前のステップにおいてまだ選択されていない場合には、それらのアクセス履歴に基づいて選択される。そして、選択されたアイテムが上書きされるとともに、全てのデータストアがアップデートされているか否かが判定される。これらがアップデートされている場合には、全てのアクセス要求が実行されているか否かが判定される。実行されていない場合には、要求されているアイテムが対応するデータストアにあるか否かの判定に戻る。これらが全て実行されている場合には、アップデート回路に関する処理が終了する。
【００４８】
これは、データアクセスを実行する１つの方法に過ぎないのであって、以前に議論したように、要求されているアイテムが他のデータストアの１つにある場合には、上書きするためのアイテムとしてそれを選択することなく、それを単に放置することも可能であって、この場合には、そのデータストアにおいて上書きされるアイテムはなく、または代替的にそれを別のデータストアから読み出すことなく、そのデータストアから他のデータストアにコピーすることも可能であることを明確にしておかなければならない。
【００４９】
本発明の例示的な実施形態は、添付図面を参照することによって本明細書において詳細に説明された一方で、本発明は、これらの厳密な実施形態に限定されるわけではないことと、当業者であれば添付の特許請求の範囲によって定義される本発明の範囲および趣旨から逸脱することなく、様々な変形および修正を実現することが可能であることを理解すべきである。例えば、本発明の範囲から逸脱することなく、独立請求項の構成とともに従属請求項の構成における様々な組み合わせを実現することが可能である。
【図１】
0005635311.tif 000002
【図２】
0005635311.tif 000003
【図３】
0005635311.tif 000004
【図４】
0005635311.tif 000005