(57)【特許請求の範囲】
【請求項１】
データ値を記憶するための複数の別々のメモリ・ユニットと、
１つのデータ値に関して前記メモリ・ユニットに対して行われるべきアクセスを指定するアクセス・リクェストを発行するためのプロセッサ・コアと、
複数のメモリ・コントローラであって、各メモリ・コントローラが前記メモリ・ユニットのそれぞれ異なる１つに付随し、その付随したメモリ・ユニットに対して前記アクセス・リクェストによって指定されたアクセスを実行するためのメモリ・コントローラと、
前記アクセスを実行する時どのメモリ・ユニットが用いられるべきかを検証する１個または多数個の予め定められた属性を前記アクセス・リクェストから決定するための属性発生論理装置と、
前記１個または複数個の予め定められた属性を予想するための予想論理装置と、
前記予想論理装置によって予想された前記属性に応答して、前記アクセスの実行の期間中、前記メモリ・ユニットの中のどの１つがクロックされるべきかを選定し、選定したメモリ・ユニットおよびそれに付随するメモリ・コントローラにクロック信号を提供するクロック発生論理装置と、
前記属性発生論理装置によって発生された実際の属性が、前記予想された属性と一致するかどうかを決定する検査論理装置と、を有し、
もし前記実際の属性が前記予想された属性と一致しない場合には、前記アクセスを再び開始するために、前記クロック発生論理装置が前記実際の属性を用いて前記メモリ・ユニットの１つおよびそれに付随するメモリ・コントローラを再び選定する、データ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、前記アクセス・リクェストが前記データ値に関するアドレスを指定し、前記実際の属性を決定するときに前記属性発生論理装置がそのアドレスを使用する、前記データ処理装置。
【請求項３】
請求項１記載のデータ処理装置において、前記プロセッサ・コアが決定論的アクセスを要求するデータ値を記憶するためのメモリに前記複数のメモリ・ユニットの内の第１メモリ・ユニットが強く結合されている前記データ処理装置。
【請求項４】
請求項３記載のデータ処理装置において、前記複数のメモリ・ユニットの内の第２メモリ・ユニットがキャッシュである前記データ処理装置。
【請求項５】
請求項１記載のデータ処理装置において、前記属性発生論理装置はメモリ・マネージメント・ユニットの中に含まれ、そのメモリ・マネージメント・ユニットは前記属性を含む多数の属性をアクセス・リクェストのおのおのに対して発生する前記データ処理装置。
【請求項６】
請求項５記載のデータ処理装置において、前記メモリ・マネージメント・ユニットがテーブル・ルックアサイド・バッファ（table lookaside buffer）を有し、前記テーブル・ルックアサイド・バッファが、アクセス・リクェストによって指定されたアドレスと前記テーブル・ルックアサイド・バッファの中の予め定められたアドレスとを比較し、予め定められたアドレスのおのおのに対して前記テーブル・ルックアサイド・バッファが前記多数の属性を含む前記データ処理装置。
【請求項７】
請求項１記載のデータ処理装置において、
前記実際の属性が前記予想された属性と一致しない場合に、前記検査論理装置が予想誤り信号を発生し、
前記クロック発生論理装置が、前記メモリ・ユニットのおのおのに対するクロック信号ゲート動作回路を有し、
前記クロック信号ゲート動作回路のおのおのがシステム・クロック信号を受け取り、もし、
（ｉ）  前記予想された属性が、そのクロック信号ゲート動作回路に対応するメモリ・ユニットをアクセスのために用いるべきであることを示す場合、
または、
（ｉｉ）  予想誤り信号が発生されており、さらに、前記実際の属性が、対応するメモリ・ユニットをアクセスのために用いるべきであることを示す場合、
であるならば、前記対応するメモリ・ユニットにシステム・クロック信号を出力する前記データ処理装置。
【請求項８】
請求項１記載のデータ処理装置において、前記予想論理装置は、先行するアクセス・リクェストに対して前記属性発生論理装置によって発生された前記実際の属性に基づいて、最新のアクセス・リクェストに対する前記属性を予想する、前記データ処理装置。
【請求項９】
データ処理装置の中のメモリ・ユニットにアクセスする方法であって、前記データ処理装置がデータ値を記憶するための複数個の別々のメモリ・ユニットと、１つのデータ値に関してそのメモリ・ユニットに対して行われるべきアクセスを指定するアクセス・リクェストを前記メモリ・ユニットに発行するためのプロセッサ・コアと、各メモリ・コントローラが前記メモリ・ユニットのそれぞれ異なる１つに付随し、その付随したメモリ・ユニットに対して前記アクセス・リクェストによって指定されたアクセスを実行するための複数のメモリ・コントローラとを有し、
（ａ）  前記アクセスを実行する時にどのメモリ・ユニットが用いられるべきかを検証する１個または複数個の予め定められた属性を前記アクセス・リクェストから決定する段階と、
（ｂ）  前記段階（ａ）が完了する前に
（ｉ）  １個または複数個の予め定められた属性を予想する段階と、
（ｉｉ）  前記段階（ｂ）（ｉ）で発生された予想され予め定められた前記属性に応答して、前記アクセスの実行の期間中に前記メモリ・ユニットのどの１つがクロックされるべきかを選定する段階と、
（ｉｉｉ）  前記段階（ｂ）（ｉｉ）で選定されたメモリ・ユニットおよびそれに付随するメモリ・コントローラにクロック信号を送る段階と、
（ｉｖ）  前記付随するメモリ・コントローラに前記アクセスを実行させる段階と、
（ｃ）  前記段階（ａ）における決定がいったん完了すると、前記段階（ａ）で発生された前記属性が前記段階（ｂ）（ｉ）において発生された前記予想された属性と一致するかどうかを決定する段階であって、もし一致しないならば前記アクセスを再び開始し、その場合には前記段階（ａ）において決定された前記属性を用いて前記メモリ・ユニットの１つが選定され、クロック信号が前記メモリ・ユニットおよびそれに付随するメモリ・コントローラに送られ前記メモリ・コントローラが前記アクセスを実行する段階、
を有する前記方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置の中のメモリ・ユニットに対してアクセスするための技術に関する。
【０００２】
【発明が解決しようとする課題】
データ処理装置は、典型的には、データ処理動作を実行するためのプロセッサ・コアを有する。この場合、このようなデータ処理動作を実行するためにプロセッサ・コアによって要求されるデータおよび／または命令を記憶するために、メモリ・システムが利用されるであろう。したがって、プロセッサ・コアはこのメモリ・システムから命令および付随するデータを受け取り、そしてこれらの命令を実行するであろう。そしてオプションで、データをメモリ・システムの中に再び記憶するために出力するであろう。下記において、「データ値」という用語が命令とデータとの両方を指すとして用いられるであろう。データ値がメモリ・システムにまたはメモリ・システムから転送される時、プロセッサ・コアはこの転送を指定するアクセス・リクェストを出すであろう。
【０００３】
典型的なメモリ・システムは主メモリを有するであろう。この主メモリは、ここでは外部メモリと呼ばれる。この主メモリは、プロセッサ・コアによって要求されるデータ値を記憶することができる。けれども、この主メモリからのデータ値の引き出し、およびこの主メモリにデータ値を再び書き込むことは、典型的には比較的に遅い工程である。したがって、メモリ・システムの中に、主メモリに加えて１個または多数個のメモリ・ユニットを備えることがよく知られている。このように付加されるメモリ・ユニットの１つのよく知られた例はキャッシュである。このキャッシュは、主メモリから引き出されたデータ値および／またはプロセッサ・コアによって出力されたデータ値を記憶するために用いることができる。したがって、もし後でのデータ処理動作で要求されることがあるならば、プロセッサ・コアはこれらのデータ値を容易に利用することができる。当業者にはよく知られているように、どのデータ値をキャッシュの中に記憶するか、および新しいデータ値をキャッシュの中に記憶することが必要である時どのデータ値をキャッシュから立ち退かせるかを決定するために、よく知られた多くの技術が存在する。けれども、基本的には、キャッシュは主メモリに比べて典型的には比較的に小型であり、そして主メモリよりもアクセスに対して大幅に高速であり、そしてプロセッサ・コアによって必要とされそうなデータ値を一時的に記憶するのが目的である。
【０００４】
メモリ・システムは１個のキャッシュを有することができる、またはそれとは異なって、複数個のキャッシュを階層構造に配列して有することができる。
【０００５】
それに加えて、メモリ・システムの中に有することができるまた別の種類のメモリ・ユニットは、強く結合されたメモリ（ＴＣＭ(tightly-coupled memory)）である。このＴＣＭは、プロセッサ・コアがアクセス・リクェストをそれに出力するプロセッサ・バスに典型的には接続され、そして決定論的アクセス時間が要求されるデータ値を記憶するために用いられる。ＴＣＭはプログラマに対して、データ値を記憶するために用いることができる連続したアドレス・スペースを提供する。したがって、例えば、決定論的アクセス時間が重要であるコードの特定の部分をＴＣＭの中に直接に記憶することができる。もしそれが主メモリの特定の部分（すなわち、ＴＣＭの中のデータ値は主メモリの中で複製されない）であるかのようにＴＣＭを用いることができる、またはそれとは異なって、ＴＣＭの中に配置されるべきデータ値を主メモリから複製することができる。典型的には、データ処理装置の中のどこかに配置されたレジスタがＴＣＭの中に配置されたデータ値のアドレス範囲の記録を保持するであろう。それで、プロセッサ・コアによるアクセス・リクェストの対象である特定のデータ値がＴＣＭの中に見つけることができるかまたはそうでないかを決定することができる。ＴＣＭは任意の適切な形式で実施することができる。例えば、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）などで実施することができる。
【０００６】
メモリ・システムが複数個のメモリ・ユニットを有する前記の種類のデータ処理装置では、プロセッサ・コアによって出力されるアクセス・リクェストが解析されて、このアクセスを実行するためにどのメモリ・ユニットが用いられるべきかを決定するのが典型的な場合である。例えば、もしアクセス・リクェストがデータ値の読み出しに関係しているならば、そしてこのアクセス・リクェストの一部分として出力されたアドレスがメモリのキャッシュ可能な領域に関係しているならば、その場合には、そのデータ値がそのキャッシュの中に存在しているかどうかを決定するために、キャッシュにアクセスするのに適切である。もしそのデータ値がそのキャッシュの中に存在しているならば、その場合には、そのデータ値をプロセッサ・コアに直接に戻すことができ、一方、もしそのデータ値がそのキャッシュの中に存在していないならば、その場合には典型的には、着目しているデータ値を含む多数個のデータ値を外部メモリから読み出すためにラインフィル(linefill)手続きが引き起こされ、そして次にこれらの引き出されたデータ値がキャッシュの１つのラインの中に配置される。
【０００７】
同様に、もしＴＣＭの中に記憶されたデータ値のアドレス範囲を記憶するレジスタを参照するならば、そのデータ値がＴＣＭの中に存在することが決定される。その場合には、プロセッサ・コアによって要求されるデータ値を引き出すために、ＴＣＭにアクセスすることは明らかに適切である。
【０００８】
けれども、アクセスを実行することに対して要求されたレベルの特性を達成するために、適切なメモリ・ユニットに対するアクセスが開始される前に、典型的には、アクセス・リクェストの前記で説明された解析が完了するのを待つ十分な時間はない。その代わりに、実行に対する理由のために、その時までには既にアクセス・リクェストの解析が行われ、したがってアクセスに対する適切なメモリ・ユニットが決定されるように、そのメモリ・ユニットが（例えば、読み出しリクェストに対してプロセッサ・コアに要求されたデータ値を出力することによって、または書き込みリクェストに対して要求されたデータ値を記憶することによって）そのアクセスを完了することができる状態に既にあるように、多数のメモリ・ユニットに対するアクセスを同時に実行することが典型的には要求される。さらに、アクセスされた他のメモリ・ユニットによって発生されるがしかし後になってみれば必要でなかった出力はすべて無視することができる。
【０００９】
例えば、キャッシュ・ルックアップが行われそしてキャッシュ・ミスの結果が得られるならば、しかしアクセス・リクェストの解析の結果がそのデータ値がメモリのキャッシュ可能でない領域にあったことを示したならば、その場合には、キャッシュに対してラインフィルを実行する通常の手続きを引き起こすよりもむしろ、キャッシュ・ミスが起こったという事実を無視することができる。同様に、もしアクセス・リクェストによって指定されたアドレスがＴＣＭの中に記憶されたアドレスの範囲の外側にあるならば、その場合には、ＴＣＭの中に記憶されたアドレスの範囲内にあるアドレスの部分に基づいてＴＣＭは出力を典型的にはなお発生するであろう。けれども、そのデータ値がＴＣＭの中にないことをアクセス・リクェストの解析がいったん指示すると、ＴＣＭからのその出力を無視することができる。
【００１０】
ところが、多数個のメモリ・ユニットを推測的にアクセスしそして次にこのアクセス・リクェストの解析の結果に基づいてそれらの出力を限定する前記の方式の観点から、アクセスに対する要求された動作を達成することが可能であるけれども、このような方式はかなりに大量の電力を消費する。それは、プロセッサ・コアによって出力されるアクセス・リクェストを実行するために実際に必要であるよりももっと多くのメモリ・ユニットがアクセスされるからである。例えば、キャッシュおよびＴＣＭを用いるシステムでは、もしこのアクセス・リクェストがＴＣＭの中に含まれているデータ値を実際に指定するならば、その場合には、そのキャッシュはアクセスを実行するために不必要に駆動されるであろう。一方、もしこのアクセス・リクェストがキャッシュ可能なデータ値に関係しているならば、ＴＣＭはそのアクセスを実行するために不必要に駆動されるであろう。
【００１１】
したがって、動作に有害な影響を過度には与えないでメモリのアクセスを実行するために、さらに電力を効率的に使用する技術を得ることが要望されるであろう。
【００１２】
【課題を解決するための手段】
第１の特徴からの観点では、データ値を記憶するための複数個のメモリ・ユニットと、データ値に関係してこのメモリ・ユニットに行われるべきアクセスを指定するアクセス・リクェストを出力するためのプロッセサ・コアと、このアクセス・リクェストによって指定されたアクセスを実行するためのメモリ・コントローラと、アクセスを実行する時にどのメモリ・ユニットが用いられるべきかを検証する１個または多数個の予め定められた属性をこのアクセス・リクェストから決定するための属性発生論理装置と、１個または多数個の予め定められた属性を予想するための予想論理装置と、この予想論理装置から予想され予め定められた属性に応答してアクセスを実行する期間中にメモリ・ユニットのどの１つがクロックされるべきかを選定しそして１つのクロック信号をそのメモリ・ユニットに出力するクロック発生論理装置と、属性発生論理装置によって発生された予め定められた属性が予想され予め定められた属性と一致するかどうかを決定しそしてもしこの一致が得られないならばアクセスを再開始する検査論理装置とを有し、この再開始の場合には属性発生論理装置によって決定されるような予め定められた属性を用いてメモリ・ユニットの１つを再選定するようにクロック発生論理装置が構成されているデータ処理装置が本発明により得られる。
【００１３】
したがって本発明により、アクセスを実行するためにどのメモリ・ユニットが用いられるべきかを識別する１個または多数個の予め定められた属性をアクセス・リクェストから決定するための属性発生論理装置が備えられる。けれども、実行に対する理由のために、属性発生論理装置がその決定を完了することを待つことなく、アクセス・リクェストによって指定されたアクセスをメモリ・コントローラが開始する。けれども、前記で説明した先行技術とは異なって、多数個のメモリ・ユニットにわたってアクセスが推測的に実行されるわけではなく、その代わりに１個または多数個の予め定められた属性を予想するための予想論理装置が備えられる。そして、アクセスの動作の期間中にメモリ・ユニットのどの１つをクロックするかを選定するためにおよびそのメモリ・ユニットにクロック信号を出力するために、予想され予め定められた属性に応答するクロック発生論理装置が備えられる。したがって、キャッシュおよびＴＣＭを有するデータ処理装置の前の例を取り上げるならば、もしアクセス・リクェストがキャッシュ可能なデータ値に関係していることをこの予想され予め定められた属性が示すならば、その場合には、そのキャッシュはクロックされるであろうが、しかしＴＣＭはクロックされないであろう。
【００１４】
本発明により、属性発生論理装置が予め定められた属性をいったん決定したならば、これらの予め定められた属性が予想され予め定められた属性と一致するかどうかを決定するために配置される検査論理装置をこのデータ処理装置がまた有する。もしこれらの予め定められた属性が予想され予め定められた属性と一致するならば、その場合には、この予想され予め定められた属性に基づいてアクセスが正しく実行されるであろうから、なんの作用も必要ではない。けれども、もし予め定められた属性が予想され予め定められた属性と一致しないならば、アクセスは再び開始される。その場合には、予想され予め定められた属性よりはむしろ予め定められた属性を用いてメモリ・ユニットの１つを再び選定するために、クロック発生論理装置が配置される。
【００１５】
したがって、適度に正確な予想方式を備えて用いられる時、アクセスされるべきメモリ・ユニットの予想を時として誤ることにより動作の際に比較的に小さな損失を伴って、多数個のメモリ・ユニットに対する並行したアクセスを回避することにより、電力消費を少なくすることが本発明により得られることが分かる。
【００１６】
複数個のメモリ・ユニットのいずれかに対するアクセスを制御するための総称的なメモリ・コントローラを、データ処理装置が有することは可能である。けれども、好ましい実施例では、このメモリ・コントローラは複数個のメモリ・コントローラで構成され、そしてこれらのメモリ・コントローラのおのおのは異なるメモリ・ユニットに付随している。そして、アクセスの動作の期間中、選定されたメモリ・ユニットおよびそれに付随するメモリ・コントローラをクロックするためのクロック発生論理装置が配置される。このような方式では、予想され予め定められた属性によって指示されたメモリ・ユニット以外のすべてのメモリ・ユニットをクロックしないことにより電力を節約することができるだけでなく、それに加えて、これらのクロックされないメモリ・ユニットに対して付随するメモリ・コントローラのいずれをもクロックしないことにより電力を節約することができる。
【００１７】
予め定められた属性は種々の形式を取ることができ、そしてこれらの予め定められた属性を多数の異なる方法で決定することができることが分かるであろう。けれども、好ましい実施例では、アクセス・リクェストはデータ値に関係するアドレスを指定し、そしてこのアドレスに応じて予め定められた属性を決定するために、属性発生論理装置が配置される。このような実施例では、予め定められた属性を決定するためにそのアドレスを分離して用いる必要はないが、しかしＴＣＭ領域レジスタ設定、ページ・テーブル属性などのような他の情報と組み合わせてそのアドレスを用いることができることが分かるであろう。
【００１８】
多数個のメモリ・ユニットが用いられる装置ならどのような装置にでも、本発明を用いることができることが分かるであろう。けれども、好ましい実施例では、第１のメモリ・ユニットはプロセッサ・コアが決定論的アクセスを要求するデータ値を記憶するための強く結合されたメモリである。ＴＣＭは典型的にはキャッシュに比べて比較的に大型であり、したがって、前記で説明した先行技術で実行される時、推測的にクロックを行うために、さらに多くの電力が消費される。したがって、メモリ・ユニットの１つがＴＣＭである実施例では、本発明の好ましい実施例の技術を用いることによって、大幅な電力の節約を行うことができる。
【００１９】
さらに、好ましい実施例では、第２のメモリ・ユニットはキャッシュである。
【００２０】
容易に分かるように、属性発生論理装置は種々の形式を取ることができる。けれども、好ましい実施例では、それぞれのアクセス・リクェストに対して予め定められた属性を含む多数の属性を発生するために配置されたメモリ・マネージメント・ユニット（ＭＭＵ(memory management unit)）の中に、属性発生論理装置が含まれる。典型的な場合には、データ処理装置はすでにＭＭＵを有しているであろう。ある属性を発生するために、例えば、プロセッサ・コアによって出力されたアドレスが仮想アドレスであると仮定して物理的なアドレスやそのデータ値がキャッシュ可能であるかどうかに関する指示およびそのデータ値がバッファ可能であるかどうかに関する指示などを発生するために、ＭＭＵが応答してアクセス・リクェストを解析する。本発明の好ましい実施例の中で要求される予め定められた属性をＭＭＵが生ずることがこれらの属性の中に含まれるようにＭＭＵを構成することにより、ＭＭＵの中に事前に存在している回路を用いることができるので、特に効率的な実施例を実現することができる。
【００２１】
好ましい実施例では、ＭＭＵはテーブル・ルックアサイド・バッファを有する。このテーブル・ルックアサイド・バッファは、アクセス・リクェストによって指定されたアドレスとテーブル・ルックアサイド・バッファの中の予め定められたアドレスとを比較する。ここで、予め定められたアドレスのおのおのに対して、テーブル・ルックアサイド・バッファはＭＭＵによって発生される必要のある多数の属性を含んでいる。したがって、この実施例では、本発明の好ましい実施例により要求される予め定められた属性を含むこれらの属性が、テーブル・ルックアサイド・バッファによってアドレスの整合が決定される時これらの属性を直接に出力することができるように、テーブル・ルックアサイド・バッファの中に事前にコード化される。またはそれとは異なる実施例では、ＭＭＵの標準的なテーブル・ルックアサイド・バッファによって発生される属性から予め定められた属性を発生するために、付加的な回路を備えることができる。
【００２２】
容易に分かるように、属性発生論理装置からの予想され予め定められた属性および／または実際の予め定められた属性に応じて種々のメモリ・ユニットにクロック信号を選択的に供給するためにクロック発生論理装置を配置することができる多くの異なる方法がある。けれども、好ましい実施例では、もし予め定められた属性が予想され予め定められた属性と一致しないならば予想誤り信号を発生する検査論理装置が配置され、そしてクロック発生論理装置はメモリ・ユニットのおのおのに対してクロック信号にゲート作用を行う回路を有する。クロック信号ゲート作用回路のおのおのはシステム・クロック信号を受け取り、そしてもし付随するメモリ・ユニットがアクセスのために用いられるべきであることをこの予想され予め定められた属性が示すならば、またはもし予想誤り信号が発生され、そして属性発生論理装置によって発生された実際の予め定められた属性が付随するメモリ・ユニットがアクセスのために用いられるべきであることを示すならば、のいずれかの場合に付随するメモリ・ユニットにそのシステム・クロック信号を出力する。
【００２３】
容易に分かるように、予想論理装置は用いられる予想方式に応じて種々の形式を取ることができる。さらに、よく知られている多くの異なる予想方式が存在し、そして予め定められた属性を予想するために適切ないずれの予想方式をも用いることができることが分かるであろう。けれども、好ましい実施例では、予想論理装置は、最新のアクセス・リクェストに対する予想され予め定められた属性を、先行するアクセス・リクェストに対する属性発生論理装置によって発生された実際の予め定められた属性に基づいて行う。このことにより、本発明の好ましい実施例の中で信頼できる予想が得られることが分かった。それは、プロセッサ・コアが同じメモリ・ユニットに中に記憶されたデータ値に関する一連のアクセス・リクェストを出力することが多いからである。
【００２４】
第２の特徴の観点から、本発明によりデータ処理装置の中のメモリ・ユニットをアクセスする方法が得られる。このデータ処理装置は、データ値を記憶するための複数個のメモリ・ユニットと、データ値に関係してメモリ・ユニットに行われるべきアクセスを指定するアクセス・リクェストを出力するためのプロセッサ・コアと、アクセス・リクェストによって指定されたアクセスを実行するためのメモリ・コントローラとを有する。この方法は、（ａ）アクセスを実行する時にどのメモリ・ユニットが用いられるべきかを検証する１個または多数個の予め定められた属性をアクセス・リクェストから決定する段階と、（ｂ）前記段階（ａ）の完了の前に（ｉ）１個または多数個の予め定められた属性を予想する段階と、（ｉｉ）前記段階（ｂ）（ｉ）で発生された予想され予め定められた属性に応答してアクセスの実行の期間中にメモリ・ユニットの中のどの１つがクロックされるべきかを選定する段階と、（ｉｉｉ）前記段階（ｂ）（ｉｉ）で選定されたメモリ・ユニットにクロック信号を出力する段階と、（ｉｖ）メモリ・コントローラにアクセスを実行させる段階と、の諸段階を実行する段階と、（ｃ）前記段階（ａ）での決定がいったん完了すると、前記段階（ａ）で発生された予め定められた属性が前記段階（ｂ）（ｉ）で発生された予想され予め定められた属性と一致するかどうかを決定する段階と、そしてもし一致しないならばそのアクセスを再び開始する段階と、アクセスを再び開始する前記段階の場合には前記段階（ａ）で決定された予め定められた属性を用いてメモリ・ユニットの１つが選定され、クロック信号がそのメモリ・ユニットに出力され、そして次にメモリ・コントローラがアクセスを再び実行する段階と、を有する。
【００２５】
【発明の実施の形態】
添付図面を参照して、例示された好ましい実施例について本発明を説明する。下記で説明される好ましい実施例は、ほんの１つの例として取り上げられた実施例である。
【００２６】
図１のブロック線図を参照して、本発明の好ましい実施例によるデータ処理装置を説明する。図１に示されているように、このデータ処理装置はプロセッサ・コア１０を有する。このプロセッサ・コア１０は、メモリ・システム２０、３０、８０から受け取られた命令を処理するために配置されている。これらの命令を処理するためにプロセッサ・コア１０によって要求されるデータは、このメモリ・システムからまた引き出すことができる。容易に分かるように、これらの「データ値」は、それらが命令であってもまたデータであっても、適切な任意の寸法であることができる。好ましい実施例を説明する目的のために、これらのデータ値のおのおのの寸法は32ビットであると仮定される。
【００２７】
典型的なインプリメンテーションでは、プロセッサ・コア１０によって要求されるデータ値は、外部メモリ８０の中に配置されるであろう。それに加えて、メモリ８０から引き出されたデータ値を記憶するために、キャッシュ３０が備えられる。それにより、これらのデータ値をプロセッサ・コア１０によって後で容易にアクセスすることができる。キャッシュ・コントローラ３２はキャッシュ３０のキャッシュ・メモリ３４の中のデータ値の記憶を制御し、およびキャッシュ・メモリ３４からのデータ値の引き出しを制御する。
【００２８】
好ましい実施例では、キャッシュ３０はプロセッサ・バス５０を通してプロセッサ・コア１０に直接に結合され、そしてバス・インターフェース・ユニット４０を通して外部メモリ８０からこれらのデータ値を引き出すことを要求するよりはむしろ、キャッシュ・メモリ３４の中に記憶されたデータ値の部分組に対して比較的に高速のアクセスが得られる。このキャッシュの主要な目的は、プロセッサ・コアによって必要とされると思われるデータ値を一時的に記憶することである。当業者には分かるように、どのデータ値がキャッシュ・メモリ３４の中に記憶されるかを決定することに対して、よく知られた多くの技術が存在する。
【００２９】
キャッシュ３０はデータ値の部分組に対して比較的に高速のアクセスを得るのに効率的な機構体であるが、任意の特定のデータ値に対して決定論的なアクセス時間が保証されるわけではない。それは、任意の特定のデータ値が任意の特定の時点においてキャッシュ・メモリ３４の中に記憶されているであろうことが保証されていないからである。これらのデータ値に対して一定の形式の決定論的なアクセスが得られるように、キャッシュ・メモリ３４の中に一定のデータ値をロック・ダウンすることは可能であるけれども、それはその内容をダイナミカルに変えるというキャッシュの順応性に悪い影響を与えるので、このことはキャッシュを動作させる方法としては比較的に非効率な方法である。
【００３０】
したがって、特定のデータ値に対して決定論的なアクセスを得るために、強く結合されたメモリ（ＴＣＭ）２０を備えることが知られている。このＴＣＭ２０は、ＴＣＭメモリ２４と、データ値のＴＣＭメモリ２４の中へのデータ値の記憶とこれらのデータ値のＴＣＭメモリ２４からの引き出しとを制御するためのＴＣＭコントローラ２２とから成っている。このＴＣＭは、プロセッサ・バス５０を通して、プロセッサ・コア１０に直接に結合されることが好ましい。このＴＣＭは、プログラマに対して連続したアドレス・スペースを提供し、そして主メモリ８０の特定の部分を複製することが分かる、または置き換えることが分かる。したがって、決定論的なアクセスが重要であるコードの特定の部分をＴＣＭ２０の中に直接に記憶することができる。
【００３１】
プロセッサ・コア１０がデータの転送を実行することを望む時、それがメモリ・システムからデータ値を読み出す場合またはメモリ・システムにデータ値を書き込む場合であっても、そのデータ値に対するアドレスをプロセッサ・アドレス・バス５４に配置することによっておよび制御信号を制御バス５２に配置することによって、アクセス・リクェストを開始する。それに加えて、ものこのアクセス・リクェストが書き込みに関係しているならば、その場合には、メモリ・システムの中に書き込まれるべきデータ値がデータ・バス５６に配置される。制御バスに対する信号出力は、このアクセス・リクェストが命令またはデータのいずれを指定するか、読み出しリクェストまたは書き込みリクェストのいずれを指定するか、そして転送されるデータが１ワードであるか、半ワードであるか、またはバイトであるか、のような情報を含んでいる。
【００３２】
容易に分かるように、データ値を記憶するために多数の別々のメモリ・ユニットが備えられる図１に示されたようなシステムの中では、アクセス・リクェストを処理するためにどのメモリ・ユニットがアクセスされるべきであるかに関する決定を行うことが必要である。このジョブはメモリ・マネージメント・ユニット（ＭＭＵ）７０によって実行される。ＭＭＵ７０はプロセッサ・コア１０によって信号をバス５０に出力された制御信号およびアドレス信号を受け取り、そしてその情報に基づいて、アクセス・リクェストを制御するために用いられる多数の属性を発生する。例えば、もしプロセッサ・コア１０によって出力されたアドレスが仮想アドレスであるならば、そしてそのデータ値が外部メモリ８０に書き込む必要があるまたは外部メモリ８０から読み出す必要があるならば、ＭＭＵ７０は例えばバス・インターフェース・ユニット（ＢＩＵ(bus interface unit)）４０が用いることができる物理的アドレスを生ずるであろう。もしＴＣＭメモリ２４が仮想アドレスよりはむしろ物理的アドレスを用いて配置されるならば、この物理的アドレスをまたＴＣＭ２０に経路を定めることができる。もし必要ならば、すなわちもしキャッシュ・メモリが物理的にアドレスされるならば、それをまたキャッシュ・メモリ３０に経路を定めることができる。好ましい実施例では、キャッシュ３０はキャッシュ・メモリ３４の中に記憶されたデータ値を識別するために仮想アドレスを用いる。したがって、ＭＭＵ７０によって発生された物理的アドレスはキャッシュによって要求されない。
【００３３】
それに加えて、ＭＭＵ７０は多数の他の属性を生ずるであろう。例えば、データ値がメモリのキャッシュ可能な領域からくるかどうかを指示するキャッシュ可能な属性を生ずるであろう。このキャッシュ可能な属性は、アクセス・リクェストを実行するためにどのキャッシュ３０がアクセスされるべきかを決定するために用いられる。同様に、ＭＭＵ７０は典型的には、バッファ可能な属性を生ずるであろう。このバッファ可能な属性は、書き込みアクセス・リクェストがどのように取り扱われるべきかを決定するためにＢＩＵ４０によって用いることができる。この段階において、ＢＩＵ４０の中でデータ値をバッファできるかどうか、またはデータ値を記憶のために外部メモリ８０に直ちに出力しなければならないどうかを知ることは重要である。ＴＣＭ２０を用いるシステムでは、ＴＣＭメモリ２４のの中に記憶されたデータ値のアドレスの範囲を識別する装置の中のどこかに典型的にはレジスタが存在するであろう。このような実施例では、ＴＣＭ２０がアクセス・リクェストを処理するためにアクセスされるべきかどうかを決定するために、そのアクセス・リクェストのアドレスとそのレジスタの中のアドレスとを比較し、そしてこの比較に基づいてＴＣＭ２０に適切な信号を出力するために、ＭＭＵを配置することができる。
【００３４】
ＭＭＵ７０によるアクセス・リクェストのこの解析には長い時間がかかり、そしてデータ処理装置によるアクセス・リクェストの高速処理に対する一般的な要求が与えられるならば、メモリ・システム２０、３０、８０がアクセス・リクェストを処理することを開始する前に、その解析がＭＭＵ７０によって完成されるまで待つことは通常は可能ではない。したがって、よく知られている先行技術のシステムは、ＭＭＵ７０による解析が完了するとすぐに関連するメモリから出力を供給することができるように、アクセス・リクェストの解析がＭＭＵ７０によって実行されている間、メモリ・システムの多数個のメモリ・ユニットを推測的に並列に駆動する傾向がある。
【００３５】
例えば、プロセッサ・コア１０がデータ値を読み出すことを要求する時、プロセッサ・コア１０は、そのデータ値に対するアドレスをプロセッサ・アドレス・バス５４に配置しそして制御信号を制御・バス５２に配置することによって、アクセス・リクェストを開始するであろう。このような先行技術のシステムでは、ＭＭＵ７０による解析が完了することを待つことなく、キャッシュ３０はプロセッサ・バス５０からの制御信号およびアドレス信号を引き出し、そして要求されたデータ値がキャッシュの中に記憶されているかどうかを決定するために、キャッシュ・メモリ３４の中に記憶されたデータ値のアドレスとそのアドレスとを比較する。その際、もしそのデータ値がキャッシュの中に記憶されているならば、ＭＭＵ７０による解析の結果がこのアクセス・リクェストがキャッシュ可能なデータ値に関係していることを確認すると仮定して、そのキャッシュがデータ値をプロセッサ・データ・バス５６に出力することができるように行われる。もしこのアドレスに対応するデータ値がキャッシュの中に記憶されていないならば、その場合には、そのデータ値がメモリ８０から引き出される必要があることをＢＩＵ４０に通知するために、キャッシュ・メモリ３４は経路１２０を通してＢＩＵ４０にキャッシュ・ミス信号を送るであろう。好ましい実施例では、引き出されるべきデータ値をイネーブルにするために、外部バス６０を通して適切な信号を外部メモリ８０に出力するようにＢＩＵをイネーブルにするために、そのキャッシュはこのような状況においてまた経路３７、３６を通してＢＩＵにそれぞれ制御情報およびアドレス情報を供給するであろう。
【００３６】
同様な方式で、ＴＣＭ２０はまたプロセッサ・バス５０から制御情報およびアドレス情報を引き出し、そしてそのアドレスに基づいてＴＣＭメモリ２４の中でルック・アップを実行するであろう。したがって、そのデータ値がＴＣＭメモリ２４の中に実際にあることをＭＭＵ７０からの解析が識別すると仮定して、ＴＣＭメモリ２４から適切な値を出力することができる。
【００３７】
それと並行して、外部メモリ・コントローラ４２はプロセッサ・バス５０から制御情報およびアドレス情報を引き出すであろう。したがって、もし必要ならばＢＩＵ４０を通してアクセス・リクェストを実行することができる。もし必要ならば、外部メモリ８０からのデータ値の読み出しを開始するために、それぞれ経路４５、４４を通してＢＩＵ４０に制御信号およびアドレス信号を送ることができる。読み出しリクェストに対しては、もしキャッシュ・ミスがあるならば、その場合には、そのデータ値がキャッシュ可能であることをＭＭＵ７０からの解析の結果が確認すると仮定して、ＢＩＵはメモリ８０からの読み出しを開始するであろう。そして、アクセス・リクェストがＭＭＵによって中断されない。さらに詳細に言えば、ＢＩＵはキャッシュから受け取ったアドレス信号を外部アドレス・バス６４に送り、そして適切な制御信号をバス６２に配置するであろう。メモリ読み出しが要求されていることをメモリ８０がバス６２の制御信号から決定し、そして次に、アドレス・バス６４上に指示されたアドレスにおけるデータ値をデータ・バス６６に出力するであろう。次に、ＢＩＵ４０はデータ・バス６６からのデータ値を経路３５を通してキャッシュに送るであろう。したがって、キャッシュ・メモリ３４の中にこのデータ値を記憶することができる。ＢＩＵ４０はまた引き出されたデータ値を経路４３を通して外部メモリ・コントローラ４２に送るであろう。このデータ値は、プロセッサ・コア１０による読み出しのために、外部メモリ・コントローラ４２からプロセッサ・データ・バス５６に出力されるであろう。その後、そのデータ値はプロセッサ・コア１０によってキャッシュ３０から直接に容易にアクセスすることができる。
【００３８】
当業者には分かるように、キャッシュ・メモリ３４は典型的には多数個のキャッシュ線路を有する。これらのキャッシュ線路のおのおのは、複数個のデータ値を記憶するために配置される。１つのデータ値をキャッシュ・メモリ３４の中に記憶するためにそのデータ値がメモリ８０から引き出される時、好ましい実施例では、キャッシュ線路の全部を満たすために多数個のデータ値がメモリから引き出される。この技術は「ラインフィル」と呼ばれることが多い。
【００３９】
前記の説明から分かるように、よく知られている先行技術に従い、アクセス・リクェストに対して要求された特性が確実に満たされるために、プロセッサ・コア１０によって出力されるアクセス・リクェストのおのおのに対して、多数のアクセス手続きがメモリ・システムの中で並行して開始される。さらに詳細に言えば、ＴＣＭ２０の中のルックアップは、キャッシュ３０の中のルックアップと並行して実行される。一方、もし必要ならば、外部メモリ・コントローラ４２それ自身はＢＩＵ４０を通して外部メモリ８０に対するアクセスを実行することができる。
【００４０】
この技術は、電力を浪費することが分かるであろう。それは、それぞれのアクセス・リクェストに対してアクセス・リクェストを実行するために実際に必要であるよりももっと多くのメモリ・ユニットが駆動されるからである。
【００４１】
本発明の好ましい実施例により、これらの属性が実際に決定される前に一定の属性の予想されたバージョンを得るために、そして任意の特定のアクセスに対して利用可能であるメモリ・ユニットの部分組にのみシステム・クロックが供給されるように、クロック発生器７５により用いられるべきこれらの予想された属性に対して、ＭＭＵ７０を配置することによって電力を節約することができ、この消費電力の問題点を緩和することができる。好ましい実施例では、利用可能なメモリ・ユニットの１つとそれに付随するメモリ・コントローラにだけクロック信号を発生するために、これらの予想された属性を利用するようにクロック発生器が配置される。好ましい実施例の中でこのことが達成される方式は、図２〜図６を参照して詳細に説明される。
【００４２】
図２は、本発明の好ましい実施例に従い、ＭＭＵ７０の中に備えられた主要な素子を詳細に示した図である。プロセッサ制御バス５２からの制御信号がＭＭＵ７０に送られ、そしてＭＭＵによって用いられて、本発明の好ましい実施例の電力節約の特性に関係しない標準的ないくつかのＭＭＵ機能を実行する。プロセッサ・コア１０によるアドレス・バス５４上のアドレス出力（ここでは、仮想アドレスであると仮定される）は、ＭＭＵ７０の中の属性発生論理装置２００に入力される。属性発生論理装置２００が配置されることにより、この仮想アドレスに基づいて多数の属性が決定され、そして経路２０５を通してこれらの属性の中の一定の属性を出力し、そして経路２０７を通してこれらの属性の中の一定の属性を出力する。
【００４３】
図３Ａは、好ましい実施例の属性発生論理装置２００の１つの実施例を示した図である。この実施例では、属性発生論理装置２００は標準的なテーブル・ルックアサイド・バッファとして作成される。ここでは、比較器３００のバンクが受け取られた仮想アドレスと予め定められたアドレスとを比較し、そしてこれらの比較器によって整合が検出されたかどうかを示すルックアップ・テーブルに出力信号を供給するために備えられる。典型的な場合には、比較器の１つによって発生されたせいぜい１つのヒット信号があるだけであるであろう。そしてルックアップ・テーブル３１０はこのヒット信号を用いて、多数の属性が定められているルックアップ・テーブルの中の特定のエントリにアクセスするであろう。次に、これらの属性はルックアップ・テーブルから経路２０５および２０７を通して出力されるであろう。当業者には分かるように、先行技術の典型的なＭＭＵは、物理的なアドレス、キャッシュ可能でバッファ可能な属性を発生するために配置されるであろう。もしメモリ・システムがＴＣＭ２０を有するならば、先行技術の典型的なＭＭＵはＴＣＭ属性をオプションで発生することができる。これらの信号は典型的には、経路２０５を通してデータ処理回路の中の種々の素子に出力されるであろう。このことは、ＭＭＵの分野では全く標準的なことである。けれども、好ましい実施例では、ルックアップ・テーブル３１０は本発明の好ましい実施例の中で用いられる３つの付加的な属性でもって事前に直接的にコード化される。これらは図３Ａにおいて、属性ＴＣＭ領域やキャッシュ領域および外部領域として示されている。これらの信号は、好ましい実施例では、経路２０７を通してクロック発生器７５に出力されるであろう。この場合、これらの信号は種々のメモリ・ユニットに対するクロック信号の発生を制御するために用いられる。
【００４４】
当業者には分かるように、これらの３つの付加的な属性はルックアップ・テーブルの中に既にコード化された他の属性から容易に決定することができる。このように図３Ａの実施例に示されているように、これらの３つの付加的な属性をルックアップ・テーブル３１０の中に事前にコード化することができる、またはそれとは異なって図３Ｂに示されているように、標準的なルックアップ・テーブル３２０によって既に生じた属性からこれらの付加的な属性を発生するために付加的な回路を属性発生論理装置の中に備えることができる。
【００４５】
図３Ｂに示されているように、ルックアップ・テーブル３２０は３つの属性、すなわち、物理的アドレス、キャッシュ可能な属性およびバッファ可能な属性、を発生すると仮定されている。前記で説明したように、（アクセス・リクェストに付随した）物理的アドレスとＴＣＭメモリ２４の中に記憶されたデータ値のアドレスの範囲を識別するＴＣＭレジスタ３３５の内容とを比較することにより、ＴＣＭ属性を容易に決定することができる。このことは、ルックアップ・テーブル３２０の中で事前にコード化することができる、またはそれとは異なって、ルックアップ・テーブル３２０によって出力された物理的アドレス出力とＴＣＭレジスタ３３５によって指定されたアドレス範囲とを比較するために比較器３３０を備えることができる。比較器３３０によって発生されたＴＣＭ属性は、典型的には、そのデータ値がＴＣＭメモリ２４の中に見い出されるかまたは見い出されないかを識別する１ビット値であるであろう。このような実施例では、図３Ｂに示されているように、ＴＣＭ属性をちょうど複製することによってＴＣＭ領域属性を容易に発生することができる。
【００４６】
好ましい実施例では、キャッシュ領域の属性はキャッシュ可能な属性に基づいているが、しかしＴＣＭ領域属性によってさらに限定される。特に、データ値がＴＣＭの中にあることを識別するためにＴＣＭ領域属性が論理値１に設定されると仮定して、ＴＣＭ領域信号の否定バージョンがキャッシュ可能な属性（好ましい実施例では、もしデータ値がキャッシュ可能であると思われるならば、キャッシュ可能な属性は論理値１である）と一緒にＡＮＤゲート３４０に入力される。当業者には分かるように、もしデータ値がキャッシュ可能であると思われそしてＴＣＭの中にあるとは思われないならば、その場合には、ＡＮＤゲート３４０の出力によって表されるキャッシュ領域属性は論理値１に設定されるであろう。
【００４７】
好ましい実施例では、ＴＣＭ領域信号およびキャッシュ領域信号はＮＯＲゲート３５０に出力され、それにより、もしＴＣＭ領域属性とキャッシュ領域属性とのいずれもが論理値１に設定されないならば、ＮＯＲゲート３５０の出力によって表される外部領域属性は論理値１に設定される。容易に分かるように、図３Ｂに示された論理装置は種々の属性を発生することに対する適切な論理装置のほんの１つの例であり、多数の異なる構成の論理装置を用いることができる。特に、もし属性のおのおのが論理値１に設定されるよりはむしろ論理値ゼロに「設定」されるならば、その場合には、論理ゲート３４０、３５０を変える必要があることが当業者には分かるであろう。
【００４８】
テーブル・ルックアサイド・バッファ（ＴＬＢ）を種々の方法で配置できることが、当業者にはまた理解されるであろう。例えば、バンク３００の中に比較的に多数の比較器と共に、１個の大型のＴＬＢを備えることができる。またはそれとは異なって、１つの通常の方式は、限定された数の比較器とルックアップ・テーブルの中に付随するエントリを備えたマイクロなＴＬＢを備えることであり、そして、これらの比較器のいずれによってもヒット信号が発生されない場合、ルックアップ・テーブルに対する要求されたアドレスおよびそれに付随するエントリをマイクロなＴＬＢに引き出すために、大型のＴＬＢの中でルックアップ工程を実行することである。このレベルの複雑さは図３Ａおよび図３Ｂからは省略されているが、しかし当業者には理解されるように、属性発生論理装置２００は単一のＴＬＢとして作成することができる、またはマイクロなＴＬＢと大型のＴＬＢとの組み合わせによって作成することができる。
【００４９】
経路２０５および２０７に出力される信号が属性発生論理装置２００が前記で説明した属性を発生するために要する時間は、アドレスがプロセッサ・コアによって出力されるのと同じサイクルの中では典型的には利用可能ではないような時間である。したがって図２を再び参照すれば、好ましい実施例では、アドレスがプロセッサ・コアによって出力されるのと同じクロック・サイクルの期間中、ＴＣＭ領域とキャッシュ領域と外部領域との属性の予想されるバージョンを経路２１４を通してクロック発生器７５に供給するように構成された予想論理装置２１０が備えられる。そしてその時に、クロック発生器７５はこれらの信号を用いて、どのメモリ・ユニットがアクセスを実行するためにクロックされるかを決定する。前記で説明したように、予想論理装置は用いられるべき予想方式に応じて種々の形式を取ることができることが分かるであろう。多数の異なる予想方式がこれらの属性を予想するのに用いることができることがまた分かるであろう。けれども、好ましい実施例では、プロセッサ・コア１０によって出力されるアクセス・リクェストは、典型的にはその前のアクセス・リクェストに関係するであろう。例えば、前のアクセス・リクェストのアドレスに関して増分されたアドレスにアクセス・リクェストに指定するであろう。ＴＣＭメモリ２４はプログラマに対して連続したアドレス・スペースを提供するから、およびキャッシュ・メモリ３４は典型的にはシーケンシャルなアドレスに関してデータ値のキャッシュ・ラインを記憶するから、この場合には、任意の特定のアクセスに対して、アクセスするための関連するメモリ・ユニットが先行するアクセスに対して用いられたメモリ・ユニットであることはあり得るであろう。したがって、好ましい実施例では、図２の点線２１２で示されているように、予想論理装置２１０は先行するアクセス・リクェストに対して経路２０７を通して属性発生論理装置２００によって発生された実際の属性を用いて、最新のアクセス・リクェストに対して経路２１４を通して出力される予想された属性を決定する。好ましい実施例では、予想されたＴＣＭ領域とキャッシュ領域と外部領域との属性は、先行するアクセス・リクェストに対して属性発生論理装置２００によって発生された実際のＴＣＭ領域とキャッシュ領域と外部領域との属性に同じである。
【００５０】
好ましい実施例では、経路２１４を通して出力された予想された属性はまた、検査論理装置２２０に送られる。検査論理装置２２０では、属性発生論理装置２００によって発生された実際の属性が経路２０７を通して出力されそして検査論理装置２２０によって受け取られるまで、経路２１４を通して出力された予想された属性はバッファリングされる。この段階において、検査論理装置２２０は次に、経路２０７を通して受け取られた実際の属性と経路２１４を通して出力された予想された属性とを比較する。もし予想された属性と実際の属性との間に差があるならば、検査論理装置２２０によって予想誤り信号が経路２１６を通して出力される。容易に分かるように、種々の方法で検査論理装置２２０を実施することができる。けれども、図４は検査論理装置の１つの例えばの実施例を示した図である。
【００５１】
図４に示されているように、レジスタ４００、４１０および４２０はそれぞれ、予想されたＴＣＭ領域、キャッシュ領域および外部領域の属性を受け取るために配置される。ここで、これらは１クロック・サイクルの間バッファリングされ、そしてその後、それぞれの排他的ＯＲ（ＸＯＲ）ゲート４３０、４４０、４５０に出力される。この時、これらのＸＯＲゲートはまた、属性発生論理装置２００によって発生される実際のＴＣＭ領域、キャッシュ領域および外部領域の属性のそれぞれを、それらの他の入力として受け取るであろう。当業者には分かるように、ＸＯＲゲートはもしその入力が異なるならば、その時にのみ論理値１を出力する。したがって、ＸＯＲゲート４３０、４４０、４５０のいずれかによって出力される論理値１は、予想が正しくなかったことを示すであろう。したがって、ＸＯＲゲート４３０、４４０、４５０からの出力がＯＲゲート４６０に入力され、そしてそのＯＲゲート４６０の出力は予想誤り信号として用いられる。したがって、予想誤り信号の論理値１は、この予想がエラーであったことを示すであろう。
【００５２】
図５は、クロック発生器７５の動作を詳細に説明した図である。
【００５３】
好ましい実施例では、クロック発生器７５はメモリ・ユニットのおのおのに対してクロック信号ゲート作用回路を有する。したがって、システム・クロックに基づいて、３つの別々の出力クロック信号、すなわち、キャッシュ３０へのキャッシュ・クロック、ＴＣＭ２０へのＴＣＭクロックおよび外部メモリ・コントローラ４２への外部クロック、を発生するであろう。
【００５４】
特定のメモリ・ユニットがアイドル状態にある時、このメモリ・ユニットは対応するアイドル信号を出力する。このアイドル信号を用いて、対応するメモリ・ユニットに対するクロックがオフにされる。この機能は、キャッシュに対してはＡＮＤゲート５００と組み合わせてＯＲゲート５１０によって実行される。キャッシュがアイドルである時、キャッシュ・アイドル信号は論理値１を有し、そしてこのキャッシュ・アイドル信号の反転バージョンがＯＲゲート５１０に入力される。このように、このＯＲゲートに対する他の入力はまた論理値ゼロにあると仮定して、このＯＲゲートからの出力は論理値ゼロにあるであろう。このことは、ＡＮＤゲート５００からの出力が論理値ゼロにあることを保証するであろう。図５から分かるように、ＴＣＭクロック信号および外部クロック信号を駆動するために、また同じ回路素子を備えることができる。
【００５５】
キャッシュ・クロックを駆動するために用いられる回路を１つの例として再び考えるならば、ＯＲゲート５１０はまたＯＲゲート５２０からの出力を１つの入力として受け取ることが分かる。ＯＲゲート５２０は、予想されたキャッシュ領域の属性およびＡＮＤゲート５３０の出力を入力として受け取る。ＡＮＤゲート５３０は、検査論理装置２２０からの予想誤り信号と、経路２０７を通しての属性発生論理装置２００によるキャッシュ領域の属性とを受け取る（図２を見よ）。したがって、アクセス・リクェストを実行するためにそのキャッシュを用いなければならないことを示す論理値１において、もし予想されたキャッシュ領域の属性を予想論理装置２１０が出力するならば、その場合には、この論理値１がＯＲゲート５２０によって出力され、そしてその後、ＯＲゲート５１０によって出力されるであろう。それにより、ＡＮＤゲート５００は論理値１においてキャッシュ・クロックを発生し、それにより、キャッシュ３０がクロックされて、メモリ・アクセスが実行される。
【００５６】
好ましい実施例では、図３Ｂに示されているように、ＴＣＭ領域とキャッシュ領域と外部領域との属性の１つだけを任意の１つの時刻において論理値１に設定することができ、そしてこの制約はこれらの信号の予想されたバージョンにも適用される。したがって、予想されたキャッシュ領域の属性が論理値１に設定されると仮定して、予想されたＴＣＭ領域および予想された外部領域の属性は論理値ゼロに設定されるであろう。さらに、この段階において、予想誤り信号は論理値ゼロに設定されるであろう。したがって、図５から分かるように、この時点において、もしキャッシュ・クロックが設定されるならば、ＴＣＭクロックと外部クロックとのいずれもが設定されないであろう。このことは、ただ１つのメモリだけが予想された属性に応答して駆動されることを保証し、それにより電力が節約される。
【００５７】
前記の例をさらに考察するならば、もし予想が誤っていることが後で決定されるならば、そして実際にアクセスを実行するためにＴＣＭが用いられるべきであるならば、その場合には、検査論理装置２２０は論理値１の予想誤り信号を生じ、そして実際のＴＣＭ領域の属性が論理値１に設定される（実際のキャッシュ領域および実際の外部領域の属性が論理値１に設定される）ことが分かるであろう。このことは、ＡＮＤゲート５７０が論理値１の出力を生じ、一方、ＡＮＤゲート５３０および６１０は論理値ゼロの出力を生ずることを意味するであろう。ＡＮＤゲート５７０によって出力されたこの論理値１の出力はＯＲゲート５６０および５５０を通り、それによりＡＮＤゲート５４０はＴＣＭ２０に対してＴＣＭクロック信号を発生させ、ＴＣＭ２０によってアクセスを再開始させる。
【００５８】
予想されたキャッシュ領域の属性がリセットされることは、ＴＣＭクロック信号の発生に対して決定的ではない。したがって、キャッシュ・クロックとＴＣＭクロックとの両方が駆動されている短い時間間隔が存在するが、しかしそのすぐ後に、新規に出力された実際の属性に基づいて予想されたキャッシュ領域が再評価されることが考えられる。したがって、好ましい実施例ではこの予想されたキャッシュ領域は論理値ゼロに設定され、それにより、いったんキャッシュ・アイドル信号が設定されると、キャッシュ・クロック信号を停止させると考えられる。
【００５９】
図６は、種々の信号の相互の間の作用の概要を示した図である。図６は前記で説明した例のタイミング図である。ここでは、キャッシュ３０によってアクセスが実行されなければならないことを予想論理装置２１０が予想し、一方、ＴＣＭ２０によってアクセスが実行されなければならないことを属性発生論理装置２００が予定のコースにおいて確認する。図６に示されているように、サイクル１ではアドレスＡ0が設定され、そして同じサイクルの中で予想されたＴＣＭ領域とキャッシュ領域と外部領域との属性が予想論理装置２１０によって出力される。この例では、キャッシュがアクセスされるべきであることを予想論理装置が予想し、したがって、予想されたキャッシュ領域の属性が論理値１に設定される。図５に関連して前記で説明したように、このことはサイクル２の中でキャッシュ・クロック信号を駆動させ、そしてキャッシュ・アイドル信号に対してサイクル２の開始時に論理値ゼロに移動させるであろう。図６の例では、キャッシュはこの時点の前には駆動されていなかったことが仮定されていた。けれども、このことに対する要求は存在していないことが分かるであろう。またはそれとは異なって、キャッシュ・クロックは既に活性化されていることができ、そしてキャッシュ・アイドル信号はサイクル２の開始の前に既に論理値ゼロの状態にあることが分かるであろう。
【００６０】
サイクル２の期間中に、実際のＴＣＭ領域とキャッシュ領域と外部領域との属性は属性発生論理装置２００によって生ずる。この例では、ＴＣＭ領域の属性は論理値１に遷移し、一方、キャッシュ領域の属性は論理値ゼロに遷移する。さらに、外部領域の属性は論理値ゼロに維持される。これらの属性が利用可能になるとすぐに、検査論理装置２２０は前記で説明した検査を実行するであろう。この場合には、論理値１に遷移する予想誤り信号を生ずるであろう。
【００６１】
図５について前記で説明したように、サイクル２の期間中における設定された予想誤り信号および設定されたＴＣＭ領域の属性の存在はＴＣＭをサイクル３から前方にクロックさせ、そしてＴＣＭアイドル信号に対しては論理値ゼロに駆動するであろう。
【００６２】
またサイクル３の中で、予想されたＴＣＭ領域とキャッシュ領域と外部領域との属性が、サイクル２からの実際のＴＣＭ領域とキャッシュ領域と外部領域との属性に基づいて再び予想されるであろう。したがって、予想されたキャッシュ領域の属性は論理値１から論理値ゼロに遷移し、そしてキャッシュ・アイドル信号は論理値１に戻るであろう。この結果として、サイクル３の後、キャッシュはクロックされることを停止するであろう。
【００６３】
予想誤りの前記の例において、ＴＣＭのクロック作用は予想誤りの結果として１サイクルだけ遅延するので、動作において１サイクル・ヒットが存在することを図６は示している。それにもかかわらず、予想誤りは比較的に頻繁には起こらないという仮定に基づいて、動作に有害な影響を与えることなく、大幅な電力の節約を実現することができることが分かる。実際、予想が正しいことが証明されるすべての場合には動作は全く変わらなく、一方、このような場合において、メモリ・ユニットを推測的にクロックするという要求を回避することによって、その度に電力の節約が得られる。
【００６４】
したがって、電力の節約が重要な関心事である場合のインプリメンテーションにおいて、高特性のアクセス・リクェストを実現することを可能にするために、本発明の好ましい実施例は特に有用な機構である。
【００６５】
本発明の特定の実施例が前記において説明されたが、本発明はこの実施例に限定されるものでないことは理解されるであろう。本発明の範囲内において、多くの変更および多くの付加を行うことができることが分かるであろう。例えば本発明の範囲内において、本発明の個々の請求項の特徴を種々に組み合わせることにより、種々の独立した請求項を作成することができる。
【図面の簡単な説明】
【図１】本発明の好ましい実施例によるデータ処理装置の要素を示したブロック線図。
【図２】本発明の好ましい実施例によるＭＭＵの中に備えられた要素の概要を示したブロック線図。
【図３Ａ】図２に示された属性発生論理装置の第１の実施例を示した図。
【図３Ｂ】図２に示された属性発生論理装置の別の実施例の図。
【図４】本発明の好ましい実施例による図２の検査論理装置の構成を示した図。
【図５】本発明の好ましい実施例のクロック発生器の構成を示した図。
【図６】好ましい実施例のデータ処理装置によって出力される種々の信号の間の相互の作用を示したタイミング図。
【符号の説明】
１０  プロセッサ・コア
２０、３０、８０  メモリ・ユニット
２２、３２  メモリ・コントローラ
７５  クロック発生論理装置
２００  属性発生論理装置
２１６  検査論理装置
【図１】
0004111760.tif 000002
【図２】
0004111760.tif 000003
【図３Ａ】
0004111760.tif 000004
【図３Ｂ】
0004111760.tif 000005
【図４】
0004111760.tif 000006
【図５】
0004111760.tif 000007
【図６】
0004111760.tif 000008