(57)【要約】【課題】キャッシュコントローラの設計が固定された後でも、可変キャッシュサイズに対応するキャッシュメモリを提供する。【解決手段】本願記載の集積回路は、キャッシュメモリと、キャッシュメモリインターフェースを介して前記キャッシュメモリと接続されるキャッシュコントローラとを具備する。キャッシュコントローラは、可変キャッシュメモリサイズをサポートする。前記キャッシュメモリは、キャッシュメモリサイズ信号に応じて、前記キャッシュメモリにアクセスする際に必要なマスク済みアドレス値を生成するマスクロジック部を具備する。前記キャッシュコントローラは、プロセッサコアの一部であっても良く、前記キャッシュコントローラの設計が固定された後でも、前記キャッシュコントローラは可変キャッシュサイズに対応することが可能である。なぜなら、前記マスクロジック部は、プロセッサコアの回路が固定された周辺部の外部に配置されたキャッシュメモリ内に提供されるからである。【選択図】図１
2007172623.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリと、
キャッシュメモリインターフェースを介して前記キャッシュメモリに接続されたキャッシュコントローラとを具備し、
前記キャッシュメモリインターフェースは、キャッシュコントローラ側とキャッシュメモリ側とを有し、前記キャッシュコントローラ及び前記キャッシュメモリインターフェースは、前記キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された可変 (different) サイズのキャッシュメモリに関する処理をサポートし、
前記キャッシュメモリは、前記キャッシュメモリインターフェースを介して受信した１または２以上のキャッシュメモリサイズ信号に応答し、前記キャッシュコントローラによって生成されたアドレス値に可変の(variable)マスクを適用し、前記キャッシュメモリにアクセスする際に使用される、少なくとも１つのマスク済みアドレス値を生成するマスクロジック部を具備し、前記マスクロジック部によって適用される前記マスクは、１または２以上の前記キャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリの前記キャッシュメモリサイズに適合することを特徴とする集積回路。
【請求項２】
前記キャッシュメモリは、タグ用メモリを具備し、
前記少なくとも１つのマスク済みアドレス値は、タグ用メモリ内のアドレスを指定するためのタグアドレスを具備することを特徴とする請求項１に記載の集積回路。
【請求項３】
前記少なくとも１つのキャッシュメモリサイズ信号により決定される前記マスクロジック部によって、ビット単位で選択された前記アドレス値の先頭の部分が前記タグアドレスを形成することを特徴とする請求項２に記載の集積回路。
【請求項４】
前記キャッシュメモリは、データ用メモリを具備し、
前記少なくとも一つのマスク済みアドレス値は、データ用メモリのアドレスを指定するためのデータアドレスを具備することを特徴とする請求項１に記載の集積回路。
【請求項５】
前記少なくとも１つのキャッシュメモリサイズ信号により選択される前記マスクロジック部によって、ビット単位で選択された前記アドレス値の二番目の部分が前記データアドレスを形成することを特徴とする請求項４に記載の集積回路。
【請求項６】
前記キャッシュメモリが、前記キャッシュメモリインターフェースを介して、前記キャッシュメモリが処理可能なキャッシュメモリサイズの最大値及び最小値を示す制限信号を送信することを特徴とする請求項１に記載の集積回路。
【請求項７】
キャッシュメモリサイズの値を格納する、ソフトウェアによりプログラム可能なレジスタを具備することを特徴とする請求項１に記載の集積回路。
【請求項８】
前記キャッシュコントローラは、前記ソフトウェアによりプログラム可能なレジスタから前記キャッシュメモリサイズの値を読み込み、前記キャッシュメモリに対するキャッシュの管理処理を制御するためのパラメータとすることを特徴とする請求項７に記載の集積回路。
【請求項９】
前記少なくとも一つのキャッシュメモリサイズ信号は、前記ソフトウェアによりプログラム可能なレジスタに格納されている前記キャッシュメモリサイズの値から生成されることを特徴とする請求項７に記載の集積回路。
【請求項１０】
前記制限信号に応答して、前記ソフトウェアによりプログラム可能なレジスタに格納されているキャッシュメモリサイズの値を、前記キャッシュメモリサイズの最小値及び最大値の範囲に含まれるようにクリッピングするクリッピングロジック部を具備することを特徴とする請求項６に記載の集積回路。
【請求項１１】
前記ソフトウェアによりプログラム可能なレジスタは、設定用コプロセッサの内部にあるレジスタであることを特徴とする請求項７に記載の集積回路。
【請求項１２】
前記キャッシュメモリは、各々のキャッシュメモリサイズ信号に応じた命令用キャッシュメモリとデータ用キャッシュメモリとを具備することを特徴とする請求項１に記載の集積回路。
【請求項１３】
前記キャッシュコントローラは、前記キャッシュメモリとは独立して検査されるプロセッサコアの一部であることを特徴とする請求項１に記載の集積回路。
【請求項１４】
前記プロセッサコアの検査は、前記キャッシュメモリサイズと独立していることを特徴とする請求項１３に記載の集積回路。
【請求項１５】
キャッシュメモリ手段と、
キャッシュコントローラ側とキャッシュメモリ側とを有するキャッシュメモリインターフェースを介して前記キャッシュメモリ手段に接続されたキャッシュコントローラ手段とを具備し、
前記キャッシュコントローラ手段と前記キャッシュメモリインターフェースとは、前記キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された可変サイズのキャッシュメモリ手段を用いた処理をサポートし、
前記キャッシュメモリ手段は、前記キャッシュメモリインターフェースを介して受信した１または２以上のキャッシュメモリサイズ信号に応答し、前記キャッシュコントローラ手段によって生成されたアドレス値に、可変のマスクを適用し、前記キャッシュメモリ手段にアクセスする際に使用する、少なくとも１つのマスク済みアドレス値を生成するマスクロジック部を具備し、
前記マスクロジック部によって適用される前記マスクは、１または２以上の前記キャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリ手段のキャッシュメモリサイズに適合することを特徴とする集積回路。
【請求項１６】
キャッシュメモリ内にデータを格納するステップと、
キャッシュコントローラ側とキャッシュメモリ側を有するキャッシュメモリインターフェースを介して、前記キャッシュメモリに接続されたキャッシュコントローラで前記キャッシュメモリを制御するステップと、
前記キャッシュメモリインターフェースを介して受信した１または２以上のキャッシュメモリサイズ信号に応答して、前記キャッシュコントローラにより生成されたアドレス値に、可変マスクを適用し、前記キャッシュメモリにアクセスする際に使用するマスク済みアドレス値を、少なくとも１つ生成するマスクロジック部を用いるステップとを具備し、
前記キャッシュコントローラと前記キャッシュメモリインターフェースは、キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された、可変サイズのキャッシュメモリを用いる処理をサポートし、
前記マスクロジック部により適用されたマスクは、前記１または２以上のキャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリのキャッシュメモリサイズに適合することを特徴とする集積回路を操作する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを備えた集積回路の分野に関する。より詳細には、本発明は可変サイズのキャッシュメモリを持つ集積回路の動作方法に関する。
【背景技術】
【０００２】
マイクロプロセッサのような集積回路に対して、一つまたはそれ以上の命令やデータを局在的に記憶するキャッシュメモリを形成する方法が知られている。キャッシュメモリは、記憶された情報への高速アクセスを可能にする。集積回路の特定の用途によっては、キャッシュメモリのサイズに関する要求は大幅に変化しうる。キャッシュメモリが極端に少なければ、大幅にパフォーマンスがダウンする一方、キャッシュメモリが極端に多いと、不必要に集積回路のコストや消費電力、サイズなどが増大してしまう。これらの理由により、設計メーカーが特定サイズのキャッシュメモリを選択して、集積回路が目的とする用途に応じて集積回路を設計することが知られている。
【０００３】
キャッシュメモリのサイズを可変にする一つの方法は、設計の中に、より詳細にはキャッシュコントローラの設計の中に、キャッシュサイズを指定するユーザー定義のパラメータを含める方法である。RTLコードのような設計情報がコンパイルされると、指定されたキャッシュサイズに対して、当該キャッシュサイズに適したコントローラが生成される。この方法では、ユーザー定義のキャッシュサイズパラメータのあらゆる可能な組み合わせについて検査する必要が生じる結果、必要な検査や対策及びそれに関連するコストの増大が無視できないという欠点がある。それに加えて、キャッシュRAMの結合テストも前記同一ユーザー定義のパラメータに応じてパラメータ化され、さらにすべての選択肢に対して検査されなければならない。その上、この方法では、コア設計を固定する（すなわち、十分動作することが知られたコンパイルされた特定の設計情報を固定し、かつ他の環境で再利用する）ことができない。なぜならば、固定されたコア設計は、異なるキャッシュサイズを使用するには適切ではないからである。
【０００４】
他の方法としては、キャッシュコントローラに、マスクロジック部のような、実装されているキャッシュサイズを固定ピンで設定することができる適切な回路を形成する方法がある。この方法の欠点は、キャッシュサイズが一つ選択された状態においてはマスクロジック部が冗長であるにもかかわらず、設計の自由度を付与するためには前記マスクロジック部が形成される必要があることである。したがって、冗長な回路はコストがかかり不利となってしまう。さらに、使用される上記マスクロジック部は、それ自身が不都合なパス遅延を引き起こしてしまうような、タイミングクリティカルパス内に置かれるのが通常である。その上、結合テストを行うときには使われている設定ピンの値を知っている必要があり、結合テストはますます複雑になる。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は、その一構成として、キャッシュメモリと、キャッシュメモリインターフェースで前記キャッシュメモリに接続されたキャッシュコントローラとを含む集積回路である。
【０００６】
前記キャッシュメモリインターフェースは、キャッシュコントローラ側とキャッシュメモリ側とを有し、前記キャッシュコントローラと前記キャッシュメモリインターフェースは、前記キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された可変サイズのキャッシュメモリに関する処理をサポートし、前記キャッシュメモリは、前記キャッシュメモリインターフェースを介して受信された１または２以上のキャッシュメモリサイズ信号に応答し、前記キャッシュコントローラによって生成されたアドレス値に可変のマスクを適用し、前記キャッシュメモリにアクセスする際に使用される、少なくとも１つのマスク済みアドレス値を生成するマスクロジック部を具備し、前記マスクロジック部によって適用される前記マスクは、１または２以上の前記キャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリの前記キャッシュメモリサイズに適合することを特徴とする。
【０００７】
キャッシュメモリそれ自体内に形成されるマスクロジック部と協同して処理する場合、キャッシュコントローラがキャッシュ管理タスクを行う際に、前記キャッシュコントローラが可変キャッシュメモリサイズを取り扱うことができるように当該キャッシュコントローラが配置される集積回路を形成することにより、本発明は上述の問題を解決する。キャッシュメモリを除いた集積回路の設計は、固定してそのまま利用することが可能であるので、多様な形態に伴う余計な検査の手間を省くことができる。また、可変サイズのキャッシュメモリを扱うために必要なマスクロジック部を、前記固定された設計の外部のキャッシュメモリ自体の内部に配置することが可能であるので、どのような場合でも個々のキャッシュメモリ設計に応じて修正できる。さらに、キャッシュメモリサイズが最終的に固定されたときには、製品となる集積回路内ではマスクロジック部をキャッシュメモリから取り除くことができるので、マスクロジック部はタイミングクリティカルパスに影響を与えない。
【０００８】
キャッシュメモリが多様な異なる形態をなしうること、及びマスクロジック部を多様な方法で動作させ得ることが望ましい。しかしながら、マスクロジック部は、キャッシュ内部のタグ用メモリのタグアドレスを生成する場合において特に有用である。タグのサイズはキャッシュサイズと共に変化するからである。同様に、キャッシュ行内の特定のデータ値のデータアドレスは、キャッシュサイズと共に変化するので、マスクロジック部によって生成してもよい。
【０００９】
この技術は、実施形態においてさらに強調される。すなわち、キャッシュメモリインターフェースを介して、キャッシュコントローラに特定の当該キャッシュメモリが設定されるキャッシュメモリサイズの最大値及び最小値を示す信号を送信する。例えば、キャッシュコントローラがキャッシュサイズを広範囲に操作することもできるが、そのキャッシュコントローラと共に組み合わせて使用される個々のキャッシュメモリは、一つのキャッシュメモリサイズを形成するのみでも良いし、あるいは、狭い範囲のキャッシュメモリサイズを形成しても良い。
【００１０】
キャッシュコントローラの柔軟性は、キャッシュメモリのサイズ値を格納するソフトウェアでプログラム可能なレジスタを備える実施形態において改良される。例えば、集積回路は、ソフトウェアにより、選択可能なキャッシュサイズから可変キャッシュサイズを選択することができる。また、選択可能なキャッシュサイズが一つだけの場合には、特定のキャッシュサイズを選択するように構成しても良い
【００１１】
キャッシュメモリサイズを指定するキャッシュコントローラへのハードウェア制御信号は、便利で効率的な方法によりソフトウェアによりプログラム可能なレジスタから生成しても良い。
【００１２】
クリッピングロジックは、好ましくは、値を制限するようにソフトウェアによりプログラム可能なレジスタと関連付けて形成しても良い。その値は、その段階で接続されているキャッシュメモリにより報告される最大サイズ及び最小サイズにより制限される。
【００１３】
キャッシュメモリは、単一のメモリであっても良いし、命令用とデータ用の格納部を分けて形成しても良い。キャッシュメモリは、例えば４ウェイなどの、可変のウェイ数を有していても良い。
【００１４】
キャッシュコントローラは、好ましくは、キャッシュメモリと別々に検査されるプロセッサコアの一部として形成され、当該検査はキャッシュメモリサイズに依存しない。
【００１５】
本発明の別の構成は、キャッシュメモリ手段と、キャッシュコントローラ側とキャッシュメモリ側とを有するキャッシュメモリインターフェースを介して前記キャッシュメモリ手段と接続されたキャッシュコントローラ手段とを具備する集積回路を提供する。ここで、前記キャッシュコントローラ手段と前記キャッシュメモリインターフェースとは、前記キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された可変サイズのキャッシュメモリ手段を用いた処理をサポートし、前記キャッシュメモリ手段は、前記キャッシュメモリインターフェースを介して受信した１または２以上のキャッシュメモリサイズ信号に応答し、前記キャッシュコントローラ手段によって生成されたアドレス値に、可変のマスクを適用し、前記キャッシュメモリ手段にアクセスする際に使用する、少なくとも１つのマスク済みアドレス値を生成するマスクロジック部を具備し、前記マスクロジック部によって適用される前記マスクは、１または２以上の前記キャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリ手段におけるキャッシュメモリサイズに適合することを特徴とする。
【００１６】
本発明の別の構成は、集積回路を操作する方法において、キャッシュメモリ内にデータを格納するステップと、キャッシュコントローラ側とキャッシュメモリ側を有するキャッシュメモリインターフェースを介して、前記キャッシュメモリに接続されたキャッシュコントローラで前記キャッシュメモリを制御するステップと、前記キャッシュメモリインターフェースを介して受信した１または２以上のキャッシュメモリサイズ信号に応答して、前記キャッシュコントローラにより生成されたアドレス値に、可変マスクを適用し、前記キャッシュメモリにアクセスする際に使用するマスク済みアドレス値を、少なくとも１つ生成するマスクロジック部を用いるステップとを具備する集積回路の操作方法を提供する。ここで、前記キャッシュコントローラと前記キャッシュメモリインターフェースは、キャッシュメモリインターフェースの前記キャッシュメモリ側に接続された、可変サイズのキャッシュメモリを用いる処理をサポートし、前記マスクロジック部により適用されたマスクは、前記１または２以上のキャッシュメモリサイズ信号に応じて変化して、前記キャッシュメモリのキャッシュメモリサイズに適合することを特徴とする。
【００１７】
本発明の上記及び他の目的、特徴及び利点は、添付図面を参照した具体的な実施形態についての以下の詳細な説明から明らかである。
【発明を実施するための最良の形態】
【００１８】
図１は、プロセッサコア４とキャッシュメモリ６を具備する集積回路２を図示している。キャッシュメモリインターフェース８は、プロセッサコア４とキャッシュメモリ６の間に配置され、プロセッサコア４とキャッシュメモリ６は、キャッシュメモリインターフェース８を経由して信号を交換する。プロセッサコア４は、キャッシュコントローラ１０と設定用コプロセッサ１２を具備し、さらに多くの他の機能をも具備している。それらは、簡潔を旨とするために図１では省略されているが、当業者には良く知られている。
【００１９】
前記プロセッサコア４がある特定の命令またはデータ値にアクセスする必要があるとき、キャッシュコントローラ１０は当該キャッシュアクセスに関連付けられたメモリアドレスを使い、当該メモリアドレスの当該特定の命令またはデータがキャッシュメモリ６内に格納されているか否かを調べる。キャッシュメモリ６は、キャッシュヒットかキャッシュミスヒットの結果を返し、かつその結果によっては、メインメモリへのメモリアクセスが必要となる場合がある。当業者には明らかなように、キャッシュメモリ６内に形成される命令キャッシュとデータキャッシュのサイズに依存して、タグの長さは可変となる。キャッシュメモリサイズが小さくなると、長いタグが必要になる。キャッシュコントローラ１０から供給される、タグの値と比較する必要のあるメモリアドレス内のビット数は、実装されているキャッシュメモリのサイズに依存して変化する。キャッシュメモリ６内のマスクロジック部１４は、キャッシュコントローラ１０から供給されたアドレス値をマスクする役割を有し、そのアドレス値からキャッシュメモリ６のタグ部に送る適切なビットを選択するとともに、キャッシュメモリ６に格納されているタグの値と比較し、キャッシュヒットの結果を返すかあるいはキャッシュミスヒットの結果を返すかを判断する。同様に、マスクロジック部１４は、キャッシュコントローラ１０から供給されたアドレス値からいくつかのビット値を選択し、かつそれを用いて、実行される当該キャッシュアクセスの対象となっているデータまたは命令の値の取得に必要な、キャッシュヒットが発生したキャッシュ行内の該当位置を提示する。ここで用いたデータアドレス部も、実装されているキャッシュメモリのサイズに応じて可変となる。
【００２０】
前記マスクロジック部１４は、プロセッサコア４内の、ソフトウェアによるプログラム可能なレジスタ１６から、命令キャッシュサイズとデータキャッシュサイズとを指定している多数の４ビットの信号を受け取る。また、キャッシュコントローラ１０は、当該命令キャッシュサイズと当該データキャッシュサイズとに応答して、例えば、「全てを無効化せよ」などの、実装されているキャッシュメモリ６のサイズに適合させた、適切なキャッシュメンテナンス用の処理コマンドや信号を生成する。ソフトウェアによるプログラム可能なレジスタ１６は、キャッシュメモリインターフェース８を経由してキャッシュメモリから返却される値、すなわちキャッシュメモリ６内の各命令キャッシュ及びデータキャッシュがサポートするキャッシュメモリサイズの最大値及び最小値を、別のフィールド内に格納する。これらの最大値及び最小値は、プロセッサコア４内で実行されるソフトウェアにより読み込み可能であるとともに、制御用あるいはその他の理由により使用される。使用される命令キャッシュ及びデータキャッシュのサイズは、ソフトウェアによるプログラム可能なレジスタ１６に書き込むことが可能であり、当該機能は設定用コプロセッサ１２のＭＣＲ命令により提供される。前記ＭＣＲ命令とは、ＡＲＭ命令セット内の命令の１つであり、値をコプロセッサのレジスタに移動するときに使われる。クリッピングロジック部１８は、ソフトウェアによるプログラム可能なレジスタ１６に書き込まれたキャッシュメモリサイズを、実装されている特定のキャッシュメモリ６によって定まる命令キャッシュサイズ及びデータキャッシュサイズの最小値と最大値によって制限するように形成されている。これにより、ソフトウェアが実際にサポートされていないキャッシュサイズを設定してしまうことを防ぐことができる。また、この特徴を利用して、サポートされているキャッシュサイズの最大値及び最小値を、ソフトウェアが次のように判断することができる。すなわち、ソフトウェアによるプログラム可能なレジスタ１６に特定の値の書き込みを試みてから、ソフトウェアによるプログラム可能なレジスタ１６から値を読み戻し、それらが書き込まれた値と異なるか否かを判断することにより、前記書き込まれた値がクリッピングされたものであるか否かを見ればよい。この情報を使うことにより、各々のソフトウェアが、自身が実行されている集積回路上に形成されたキャッシュサイズに対し、的確に応答することが可能になる。
【００２１】
図１を参照すると、キャッシュメモリ６により提供されるキャッシュメモリのサイズにかかわらず、プロセッサコア４の物理的構造を変える必要がないことがわかる。すなわち、プロセッサコア４は、一度検査が済めば、設計を固定して再利用することができる。キャッシュメモリ６内に形成されたマスクロジック部１４は、キャッシュメモリのサイズがシステム全体に与える影響を調べるために、キャッシュメモリの異なるサイズをおそらくは自動的に (possibly dynamically) 検査することが望ましいような、プロトタイピングフェーズ及び開発フェーズにおいて有用である。これにより、各特定用途向けに、効率的な実装となるように形成する必要のあるキャッシュメモリサイズの最小値を経験的に決定することができる。
【００２２】
図２は、キャッシュメモリ６内で提供される命令キャッシュ及びデータキャッシュの可変サイズを表現できるエンコーディング方式を図示する。このエンコーディング方式で提供される値は、そのままマスクロジック部１４のマスク値として利用することができる。この方法は実装を単純化できるので好ましい。
【００２３】
図３は、キャッシュのウェイ毎に、マスクするタグ用のＲＡＭ及びデータ用のＲＡＭに対して、マスクロジック部１４内で提供されるマスク機能を図示する。ここで、図３で図示された関係が、マスクロジック部１４を生成するために自動化された設計ツール等で利用可能であることは、当業者にとって知られていることである。図２と図３の例は、キャッシュサイズのエンコーディング及びマスクロジック部の実装のある特定の一例に過ぎず、公知の技術を用いて実装を行う様々な方法がある。
【００２４】
添付図面を参照しながら本発明の実施の一形態が詳細にわたって説明されたが、本発明は上述した実施の形態そのものに限定されるものではなく、添付した特許請求の範囲で特定された発明の範囲及び趣旨から逸脱しない範囲内で、当業者による種々な変形が可能であることは言うまでもない。
【図面の簡単な説明】
【００２５】
【図１】図１は、キャッシュコントローラと可変キャッシュメモリサイズのキャッシュメモリを組み込んだ集積回路を図示する。
【図２】図２は、図１の実施例において使用可能なキャッシュサイズのエンコーディングを図示する。
【図３】図３は、図１の実施例のマスクロジック部で提供されるマスク機能を定義する論理の記述である。
【符号の説明】
【００２６】
２  ＣＰＵ
４  プロセッサコア
６  キャッシュメモリ
８  キャッシュメモリインターフェース
１０  キャッシュコントローラ
１２  設定用コプロセッサ
１４  マスクロジック部
１６  ソフトウェアによりプログラム可能なレジスタ
１８  クリッピングロジック部
【図１】
2007172623.tif 000003
【図２】
2007172623.tif 000004
【図３】
2007172623.tif 000005
【外国語明細書】
2007172623.tif 000006
2007172623.tif 000007
2007172623.tif 000008
2007172623.tif 000009
2007172623.tif 000010
2007172623.tif 000011
2007172623.tif 000012
2007172623.tif 000013
2007172623.tif 000014
2007172623.tif 000015
2007172623.tif 000016
2007172623.tif 000017
2007172623.tif 000018
2007172623.tif 000019