(57)【特許請求の範囲】
【請求項１】
少なくとも第1のサイズまたは前記第1のサイズより大きい第2のサイズの一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信するステップと、
前記アドレスの第1の部分をセットインデックスとして識別するステップと、
前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用するステップと、
前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別するステップと、
前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出すステップと、
前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別するステップであって、前記アドレスの前記第1の部分に重なり合う前記アドレスの前記第3の部分のビット数は、前記キャッシュのサイズに基づく、ステップと、
前記キャッシュラインを取得するステップとを備えることを特徴とする方法。
【請求項２】
前記キャッシュの第1のサイズは、第1の構成に対応するとともに、前記キャッシュの第2のサイズは、第2の構成に対応し、前記第1の構成の各キャッシュラインは、第1の数のセグメントを含み、前記第2の構成の各キャッシュラインは、前記第1の数のセグメントよりも多い第2の数のセグメントを有することを特徴とする請求項１に記載の方法。
【請求項３】
前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合い、前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合い、さらに前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズより大きい第3のサイズを有するように構成される場合、前記アドレスの前記第3の部分のいずれのビットとも重なり合わないことを特徴とする請求項１に記載の方法。
【請求項４】
前記キャッシュラインを取得するステップは、電子デバイスのプロセッサによって実行されることを特徴とする請求項１に記載の方法。
【請求項５】
前記アドレスの前記第1の部分は、メモリアドレスレジスタ中に含められることを特徴する請求項１に記載の方法。
【請求項６】
前記アドレスの前記第3の部分は、前記アドレスの状態アドレス部分であることを特徴する請求項１に記載の方法。
【請求項７】
前記キャッシュの前記第1のサイズは64キロビットであるとともに、前記キャッシュの前記第2のサイズは128キロビットであることを特徴する請求項１に記載の方法。
【請求項８】
前記キャッシュは、256キロビットの第3のサイズを有するようにさらに構成可能であることを特徴とする請求項７に記載の方法。
【請求項９】
キャッシュと、
前記キャッシュに接続されたプロセッサとを具備し、
前記プロセッサは、
少なくとも第1のサイズまたは前記第1のサイズより大きい第2のサイズの一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信し、
前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記アドレスの第1の部分をセットインデックスとして使用し、
前記少なくとも1つのタグフィールドの前記アドレスの第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出し、
前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを取得するように構成され、
前記アドレスの前記第1の部分に重なり合う前記アドレスの前記第3の部分のビット数は、前記キャッシュのサイズに基づくことを特徴とする装置。
【請求項１０】
前記アドレスの前記第1の部分の第1のロケーション、および前記アドレスの前記第2の部分の第2のロケーションが、前記キャッシュの前記サイズに基づいて選択されることを特徴とする請求項９に記載の装置。
【請求項１１】
前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有する場合に、前記キャッシュが前記第2のサイズを有する場合と同一の数のビットを有することを特徴とする請求項１０に記載の装置。
【請求項１２】
前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合うことを特徴とする請求項１０に記載の装置。
【請求項１３】
前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合うことを特徴とする請求項１０に記載の装置。
【請求項１４】
前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズより大きい第3のサイズを有するように構成される場合、前記アドレスの前記第3の部分のいずれのビットとも重なり合わないことを特徴とする請求項１０に記載の装置。
【請求項１５】
プロセッサによって実行されるとき、前記プロセッサに
少なくとも第1のサイズまたは前記第1のサイズより大きい第2のサイズの一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信させ、
前記アドレスの第1の部分をセットインデックスとして識別させ、
前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用させ、
前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別させ、
前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出させ、
前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別させ、
前記キャッシュラインを取得させる命令を有し、
前記アドレスの前記第1の部分に重なり合う前記アドレスの前記第3の部分のビット数は、前記キャッシュのサイズに基づくことを特徴とする非一時的コンピュータ可読媒体。
【請求項１６】
少なくとも第1のサイズまたは前記第1のサイズより大きい第2のサイズの一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信する手段と、
前記アドレスの第1の部分をセットインデックスとして識別する手段と、
前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用する手段と、
前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別する手段と、
前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出す手段と、
前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別する手段と、
前記キャッシュラインを取得する手段とを備え、
前記アドレスの前記第1の部分に重なり合う前記アドレスの前記第3の部分のビット数は、前記キャッシュのサイズに基づくことを特徴とする装置。
【請求項１７】
前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合うことを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合うことを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合うことを特徴とする請求項１６に記載の装置。
【請求項２０】
前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合うとともに、前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズより大きい第3のサイズを有するように構成される場合、前記アドレスの前記第3の部分のいずれのビットとも重なり合わないことを特徴とする請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、構成可能なキャッシュ、および構成可能なキャッシュを構成する方法を対象とする。
【背景技術】
【０００２】
技術の進歩が、より小型で、より強力なコンピューティングデバイスをもたらしている。例えば、ポータブル無線電話機、携帯情報端末(PDA)、および小型で、軽量で、さらにユーザによって容易に携行され得るページングデバイスなどの無線コンピューティングデバイスを含む、様々なポータブルパーソナルコンピューティングデバイスが、現在、存在する。より具体的には、セルラ電話機やインターネットプロトコル(IP)電話機などのポータブル無線電話機が、無線ネットワークを介して音声パケットおよびデータパケットを通信することができる。さらに、多くのそのような無線電話機は、その無線電話機に組み込まれた他のタイプのデバイスを含む。例えば、無線電話機は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤも含むことが可能である。また、そのような無線電話機は、インターネットにアクセスするのに使用され得る、ウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む実行可能命令を処理することもできる。このため、これらの無線電話機は、相当なコンピューティング能力を含むことが可能である。
【０００３】
デジタルシグナルプロセッサ(DSP)、イメージプロセッサ、およびその他の処理デバイスが、ポータブルパーソナルコンピューティングデバイスにおいて、多くの場合、使用され、1つまたは複数のキャッシュと連携して動作する。キャッシュは、通常、メモリ階層のどこかに存在するデータのコピーである。一部の事例において、キャッシュは、システムにおけるデータの「最新の」コピーだけしか有さないことが可能である。キャッシュの1つの典型的な構成要素は、データメモリである。このデータメモリは、キャッシュラインに分割され、ただし、各キャッシュラインは、システムメモリの一意の(さらに隣接する)部分のコピーである。キャッシュの別の典型的な構成要素は、システムメモリアドレスを特定のキャッシュラインに関連付ける経路である。システムメモリアドレスを特定のキャッシュラインと関連付ける、この経路は、多くの場合、タグと呼ばれる。キャッシュの別の典型的な構成要素は、キャッシュラインが有効であるかどうか、変更されているかどうか、所有されているかどうかなどを示す状態である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
構成可能なキャッシュが、キャッシュのタグの数を変えることなしにキャッシュラインサイズを変更することによってサイズ変更されることが可能である。異なるキャッシュサイズの間のマッピングが、キャッシュルックアップのためのメモリアドレス内でインデックスのロケーションを移すことによって実行されることが可能である。例として、マルチプレクサのペアが、キャッシュのサイズに基づいてアドレスビットを選択して、ルックアップ動作中にインデックスのロケーションを移すことが可能である。
【課題を解決するための手段】
【０００５】
或る特定の実施形態において、タグ状態アレイを有するキャッシュを含む装置が開示される。タグ状態アレイは、セットインデックスによってアドレス指定可能なタグ領域を含む。また、タグ状態アレイは、状態アドレスによってアドレス指定可能な状態領域も含み、ただし、セットインデックスと状態アドレスは、少なくとも1つの共通ビットを含む。
【０００６】
別の実施形態において、キャッシュのタグ状態アレイにおいてアドレスを受信することを含む方法が開示され、ただし、キャッシュは、第1のサイズと、第1のサイズより大きい第2のサイズのいずれかを有するように構成可能である。また、方法は、アドレスの第1の部分をセットインデックスとして識別すること、このセットインデックスを使用して、タグアレイの少なくとも1つのタグフィールドを探し出すこと、およびこの少なくとも1つのタグフィールドに格納された値と比較するためにアドレスの第2の部分を識別することも含む。この方法は、第2の部分と合致する特定のタグフィールドに関連するタグ状態アレイの少なくとも1つの状態フィールドを探し出すこと、および少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対するアドレスの第3の部分の比較に基づいて、キャッシュラインを識別することをさらに含む。また、この方法は、キャッシュラインを取得することも含み、ただし、アドレスの第1の部分の第1のロケーション、およびアドレスの第2の部分の第2のロケーションが、キャッシュが第1のサイズを有するように構成されるか、または第2のサイズを有するように構成されるかに基づいて選択され、さらにアドレスの第1の部分は、キャッシュが第1のサイズを有する場合に、キャッシュが第2のサイズを有する場合と同一の数のビットを有する。
【０００７】
別の実施形態において、キャッシュのサイズを変えることを含む方法が開示される。また、この方法は、キャッシュのサイズを変更することに応答して、キャッシュから取得されるべきデータのアドレスのセットインデックス部分のロケーションを移すことも含み、ただし、セットインデックス部分のビット長は、ロケーションが移される場合に変更されない。
【０００８】
別の実施形態において、コンピュータ可読媒体が開示される。このコンピュータ可読媒体は、コンピュータに、キャッシュのデータアレイの各エントリに関連するデータの量を増やすとともに、セットインデックスを介してアドレス指定可能なデータアレイのエントリの第1の数を維持すること、およびセットインデックスの各値に関連するデータアレイのエントリの第2の数を維持することによって、キャッシュを、第1のデータ領域サイズを有する第1の構成から第2のデータ領域サイズを有する第2の構成に変更させるように実行可能であるコンピュータ実行可能命令を有形に実体化する。コンピュータ実行可能命令は、コンピュータに、データアレイに関連するタグ状態アレイにインデックスを付けるメモリアドレスのビットの範囲を移させるようにさらに実行可能であり、ただし、タグ状態アレイにインデックスを付けるビットの範囲は、キャッシュを第1の構成から第2の構成に変えることに基づいて、移される。
【０００９】
開示される実施形態によってもたらされる1つの特別な利点は、複数のデータRAM構成のためのタグのより多くの利用をサポートするタグとキャッシュラインの間の構成可能なマッピングが提供され、したがって、データRAMが100%キャッシュ、50%キャッシュ、または25%キャッシュであるように構成されるにつれ、キャッシュラインサイズも同等の量だけ低減されることである。
【００１０】
開示される実施形態によって提供される別の利点は、キャッシングのために利用可能なデータRAMが小さくなるにつれ、利用可能なタグの数が、費用およびタイミングの効果の高い仕方で実質的に最大化されることであり、このことは、従来のデータ局所性想定が成立しない可能性がある低電力のマルチスレッドプロセッサ環境において特に重要である。より多くのタグを有するキャッシュは、アドレス空間競合が減るので、より高いパフォーマンスを示すキャッシュである。
【００１１】
本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体を精査した後、明らかになる。
【図面の簡単な説明】
【００１２】
【図１】タグ状態アレイと、複数の経路と、タグ状態アレイに接続されたキャッシュデータ領域とを有する構成可能なキャッシュシステムの特定の例示的な実施形態を示すブロック図である。
【図２】タグ状態アレイと、複数の経路と、タグ状態アレイに接続されたキャッシュデータ領域とを有する構成可能なキャッシュシステムの別の特定の例示的な実施形態を示すブロック図である。
【図３】キャッシュルックアップのためのメモリアドレスレジスタ、および移動セットインデックスの特定の例示的な実施形態を示すブロック図である。
【図４】キャッシュルックアップのためのメモリアドレスレジスタ、ならびにセットインデックスを生成するのに使用される選択回路およびインデックス付け回路の特定の例示的な実施形態を示すブロック図である。
【図５】構成可能なキャッシュを構成する方法の第1の例示的な実施形態を示す流れ図である。
【図６】構成可能なキャッシュを構成する方法の第2の例示的な実施形態を示す流れ図である。
【図７】構成可能なキャッシュを構成する方法の第3の例示的な実施形態を示す流れ図である。
【図８】構成可能なキャッシュモジュールを含むポータブル通信デバイスの特定の実施形態を示すブロック図である。
【図９】構成可能なキャッシュデバイスを含む電子デバイスを製造する製造工程の特定の例示的な実施形態を示すデータ流れ図である。
【発明を実施するための形態】
【００１３】
図1を参照すると、タグ状態アレイ108と、複数の経路120と、タグ状態アレイ108に接続されたキャッシュデータ領域110とを有する構成可能なキャッシュシステム100の特定の例示的な実施形態が示されている。構成可能なキャッシュシステム100は、構成可能なキャッシュ106と、アドレス102とを含む。構成可能なキャッシュ106は、キャッシュデータ領域110に接続されたタグ状態アレイ108を含む。キャッシュデータ領域110は、1つまたは複数のキャッシュライン112を含む。キャッシュデータ領域110は、第2のキャッシュサイズが、図1に示される第1のキャッシュサイズより大きい、第1のキャッシュ構成に対応する第1のキャッシュサイズを有するように、または第2のキャッシュ構成に対応する第2のキャッシュサイズを有するように構成可能である。キャッシュデータ領域110は、セットインデックス1 122またはセットインデックス2 124などのセットインデックスの各値に関連する複数の経路120を含む。複数の経路120は、キャッシュデータ領域110が、各セットインデックス値に関する複数のデータ値を格納することを可能にする。キャッシュデータ領域110は、図1に示されるとおり、第1のキャッシュ構成と第2のキャッシュ構成において同一の数の経路120を有する。
【００１４】
タグ状態アレイ108は、アドレス102に関連して示されるセットインデックス1 122またはセットインデックス2 124などのセットインデックスによってアドレス指定可能なタグ領域116を含む。また、タグ状態アレイ108は、状態アドレス126によってアドレス指定可能な状態領域118も含む。キャッシュライン112のそれぞれは、タグアドレス128に関連する。図1に示されるとおり、セットインデックス2 124と状態アドレス126は、共通アドレスビットなどの少なくとも1つの共通ビット104を含む。セットインデックス1 122と状態アドレス126は、2つの共通アドレスビットなどの少なくとも2つの共通ビット104を含む。或る特定の実施形態において、セットインデックス122・124と状態アドレス126の間の、共通アドレスビットなどの共通ビット104の数は、構成可能なキャッシュ106のサイズに依存して異なる。或る特定の実施形態において、状態アドレス126とセットインデックス1 122は、第1の構成において2つの共通ビット104を含み、状態アドレス126とセットインデックス2 124は、第2の構成において1つの共通ビット104を含む。また、タグ状態アレイ108も1つまたは複数のセット114を含む。或る特定の実施形態において、タグ状態アレイ108は、第1のキャッシュ構成と第2のキャッシュ構成において同一サイズのセット114を有する。
【００１５】
図1に示されるとおり、キャッシュライン112のそれぞれは、1つまたは複数のセグメントまたはセクタ112a、112bを含む。キャッシュデータ領域110が第1のキャッシュサイズを有する場合、キャッシュライン112のそれぞれは、1つのセグメントまたはセクタ112aを含む。キャッシュデータ領域110が第2のキャッシュサイズを有する場合、キャッシュライン112のそれぞれは、2つのセグメントまたはセクタ112a・112bを含む。或る特定の実施形態において、キャッシュデータ領域110は、第1のキャッシュ構成と第2のキャッシュ構成において同一のキャッシュラインセグメントサイズを有することが可能である。代替の実施形態において、キャッシュデータ領域110は、セットインデックス122・124によってアドレス指定可能である所定の数の行を有する。キャッシュデータ領域110は、第1の構成における各行に関連する少なくとも第1の数のキャッシュライン112、および第2の構成における各行に関連する第2の数のキャッシュライン112を格納するように構成されることが可能であり、ただし、第2の数のキャッシュライン112は、第1の数のキャッシュライン112より多い。
【００１６】
キャッシュラインサイズとデータメモリサイズとタグの数の間に関係が存在することが可能である。この関係は、以下の式によって表現されることが可能である。すなわち、
タグの数＝データメモリサイズ／キャッシュラインサイズ
【００１７】
この式から、データメモリサイズを一定に保ちながらキャッシュラインサイズを増加させることは、タグの数を減らすということが理解され得る。タグの数を減らすことは、より少ない物理的ストレージしか要求しない可能性があるが、タグの数を減らすことは、より少ない一意のメモリロケーション(または範囲)しかキャッシュ内に含まれない可能性があることを暗に示す。極端な例として、単一のタグしか有さない32バイトキャッシュを考慮されたい。32バイトすべてが、システムメモリの隣接する部分のコピーである。これに対して、キャッシュが8つのタグを有する場合、8つの無関係の4バイト領域がキャッシュ内に含まれる可能性がある。その延長として、単一の32バイトの隣接する領域がそのようなキャッシュの中に格納されることも可能である。
【００１８】
一部の事例において、キャッシュのデータメモリ部分は、一定でないことが可能であるが、図1の構成可能なキャッシュシステム100におけるとおり、構成可能であることが可能であり、ただし、或る部分がキャッシュのために確保されることが可能であり、別の部分が密結合メモリ(TCM)のために確保されることが可能である。1つの構成において、キャッシュは、固定のキャッシュラインサイズ、およびタグとキャッシュラインの間の固定のマッピングを有することが可能である。しかし、そのようなキャッシュのサイズが小さくされる場合、キャッシュラインの数、およびタグの数が、この量だけ減らされる。例えば、データランダムアクセスメモリ(RAM)が、各バンクが独自のタグセットを有する4つのバンクに編成されたL2キャッシュにおいて、このデータRAMが50%キャッシュ、50%TCMとして構成された場合、TCMにおけるタグは、キャッシュにもはや利用可能でない。
【００１９】
データメモリサイズと一緒にキャッシュラインサイズを調整することによって、図1の構成可能なキャッシュシステム100は、タグの数が実質的に同一のままであることを可能にする。その結果、複数のデータRAM構成のためのタグのより多くの利用をサポートするタグとキャッシュラインの間の構成可能なマッピングが提供され、したがって、データRAMが100%キャッシュ、50%キャッシュ、または25%キャッシュであるように構成されるにつれ、キャッシュラインサイズも同等の量だけ低減される。さらに、キャッシングのために利用可能なデータRAMが小さくなるにつれ、利用可能なタグの数が、費用およびタイミングの効果の高い仕方で実質的に最大化される。このことは、従来のデータ局所性想定が成立しない可能性がある低電力のマルチスレッドプロセッサ環境において特に重要であり得る。より多くのタグを有するキャッシュは、アドレス空間競合が減るので、より高いパフォーマンスを示すキャッシュである。
【００２０】
図2を参照すると、タグ状態アレイ208と、複数の経路220と、タグ状態アレイ208に接続されたデータ領域210とを有する構成可能なキャッシュシステム200の特定の例示的な実施形態が示されている。構成可能なキャッシュシステム200は、構成可能なキャッシュ206と、メモリアドレスを格納するメモリアドレスレジスタ202と、インデックス付け回路224と、比較回路226と、検証回路228と、選択回路230とを含む。構成可能なキャッシュ206は、データ領域210に接続されたタグ状態アレイ208を含む。データ領域210は、1つまたは複数のキャッシュライン212を含む。データ領域210は、第1のキャッシュ構成に対応する第1のキャッシュサイズを有するように、または第2のキャッシュサイズが第1のキャッシュサイズより大きい、第2のキャッシュ構成に対応する第2のキャッシュサイズを有するように、あるいは第3のキャッシュサイズが、図2に示されるとおり、第2のキャッシュサイズより大きい、第3のキャッシュ構成に対応する第3のキャッシュサイズを有するように構成可能である。データ領域210は、セットインデックスの各値に関連する複数の経路220を含む。複数の経路220は、データ領域210が、各セットインデックス値に対応する複数のデータ値を格納することを可能にする。データ領域210は、図2に示されるとおり、第1のキャッシュ構成と第2のキャッシュ構成と第3のキャッシュ構成において同一の数の経路220を有する。
【００２１】
タグ状態アレイ208は、セットインデックスによってアドレス指定可能なタグ領域216を含む。また、タグ状態アレイ208は、状態アドレスによってアドレス指定可能な状態領域218も含む。キャッシュライン212のそれぞれは、タグアドレスによってアドレス指定可能である。また、タグ状態アレイ208も1つまたは複数のセット214を含む。或る特定の実施形態において、タグ状態アレイ208は、第1のキャッシュ構成と第2のキャッシュ構成と第3のキャッシュ構成において同一サイズのセット214を有することが可能である。
【００２２】
或る特定の実施形態において、データ領域210は、セットインデックスおよびタグ状態アレイ208を介してアクセス可能なデータを格納する所定の数のセットを有する。第1のキャッシュ構成において、データ領域210の所定の数のセットのそれぞれは、第1の量のデータを格納するように構成されることが可能である。第2のキャッシュ構成において、データ領域210の所定の数のセットは、第2の量のデータを格納するように構成されることが可能である。
【００２３】
或る特定の実施形態において、インデックス付け回路224は、セットインデックスを使用してタグ状態アレイ208の複数のタグエントリを識別するようにメモリアドレスレジスタ202に接続される。例えば、インデックス付け回路224は、タグ状態アレイ208にアクセスし、メモリアドレスレジスタ202から受信したセットインデックスに対応する複数のタグエントリを探し出し、識別することが可能である。また、インデックス付け回路は、図2に示されるとおり、2ビット接続によって選択回路に接続されることも可能である。
【００２４】
或る特定の実施形態において、比較回路226は、識別された複数のタグエントリのタグ値をメモリアドレスのタグ部分と比較するようにメモリアドレスレジスタ202に接続される。例えば、比較回路226は、タグ状態アレイ208にアクセスし、インデックス付け回路224によって識別された複数のタグエントリのタグ値を、メモリアドレスレジスタ202から受信したメモリアドレスのそれぞれのタグ部分と比較することが可能である。
【００２５】
或る特定の実施形態において、検証回路228は、状態アドレスを復号し、復号された状態アドレスを、データ領域210の所定の数のセットの識別されたセットの検証ビット222と比較するようにメモリアドレスレジスタ202に接続される。検証回路228は、タグ状態アレイ208にアクセスし、検証ビット222を、メモリアドレスレジスタ202から受信したメモリアドレスの復号された状態アドレス部分と比較することが可能である。検証回路228は、図2に示されるとおり、2ビット接続によってメモリアドレスレジスタ202に接続されることが可能である。検証ビット222は、図2に示されるとおり、4つの状態ビットを含むことが可能である。
【００２６】
或る特定の実施形態において、選択回路230は、図4に関連して後段でより詳細に説明されるとおり、第1のキャッシュ構成においてセットインデックスの中にメモリアドレスの特定のビットを選択的に含め、第2のキャッシュ構成においてセットインデックスの中にその特定のビットを含めないようにメモリアドレスレジスタ202およびインデックス付け回路224に接続される。選択回路230は、図2に示されるとおり、2ビット接続によってインデックス付け回路224に接続されることが可能である。或る特定の実施形態において、選択回路230は、図4に424で示されるとおり、少なくとも1つの共通ビットを受信するように接続された入力を有し、さらに図4に416で示されるとおり、タグ領域216に接続された出力を有する、図4に示されるマルチプレクサ406のようなマルチプレクサを含む。マルチプレクサは、少なくとも1つの共通ビットを、図4に示されるセットインデックス408のようなセットインデックスへの選択的な入力として、選択的に供給するように構成されることが可能である。
【００２７】
図3を参照すると、キャッシュルックアップのためのメモリアドレスレジスタ302および移動セットインデックス306・312・320の特定の例示的な実施形態が、300に示される。移動セットインデックス306、312、および320は、3つの異なるキャッシュサイズ構成に関して同一数のセットを使用してキャッシュの中でアドレス指定することを可能にする。或る特定の実施形態において、キャッシュルックアップのためのメモリアドレスレジスタ302は、図1のアドレス102、または図2のメモリアドレスレジスタ202である。
【００２８】
セットインデックス306は、アドレスの状態部分324と2つの共通ビット308(ビット5およびビット6)を共有して、ビット13からビット5までの9ビットにわたり、ただし、状態部分324は、ビット6からビット5までの2ビットにわたる。アドレスのタグ部分304は、ビット31からビット14までにわたる。
【００２９】
矢印314で示されるとおり、1ビットシフトで移すことは、アドレスの状態部分324と1つの共通ビット316(ビット6)を共有する、ビット14からビット6までの9ビットにわたるセットインデックス312を与える。この事例において、アドレスの状態部分324のビット5が、2つのキャッシュラインセグメントまたはキャッシュラインセクタにラベルを付けるのに使用されることが可能であり、したがって、セットインデックス312を有するキャッシュが、セットインデックス306を有するキャッシュの2倍の大きさであることが可能である。アドレスのタグ部分310は、ビット31からビット15までにわたり、ビット31:15に連結されることが可能な0の追加された最下位ビットを有する。
【００３０】
矢印322で示されるとおり、さらに1ビットシフト移すことは、アドレスの状態部分324と全く共通ビットを共有しない、ビット15からビット7までの9ビットにわたるセットインデックス320を与える。この事例において、アドレスの状態部分324のビット5とビット6の両方が、4つのキャッシュラインセグメントまたはキャッシュラインセクタにラベルを付けるのに使用されることが可能であり、したがって、セットインデックス320を有するキャッシュは、セットインデックス312を有するキャッシュの2倍の大きさであることが可能である。アドレスのタグ部分318は、ビット31からビット16までにわたり、ビット31:16に連結されることが可能な0の2つの最下位ビットが追加される。
【００３１】
合計キャッシュサイズは、セットの数掛ける経路の数掛けるキャッシュラインサイズ掛けるセグメントまたはセクタの数という積によって与えられることが可能である。9ビットセットによってインデックスが付けられたセットの数は、29=512である。32ビットのキャッシュラインサイズを有する4経路キャッシュの場合、合計キャッシュサイズは、セットインデックス306を有するキャッシュに関して、512掛ける4掛ける32、つまり、約64キロビット(kbit)であり、ただし、キャッシュは、各キャッシュラインにつき1つだけのセグメントまたはセクタを有する。キャッシュが各キャッシュラインにつき2つのセグメントまたはセクタを有する、セットインデックス312を有するキャッシュの場合、合計キャッシュサイズは、約128キロビットである。キャッシュが各キャッシュラインにつき4つのセグメントまたはセクタを有する、セットインデックス320を有するキャッシュの場合、合計キャッシュサイズは、約256キロビットである。
【００３２】
図4を参照すると、キャッシュルックアップのためのメモリアドレスレジスタ402、ならびにセットインデックス408を生成するのに使用される選択回路426およびインデックス付け回路428の特定の例示的な実施形態が、400で示される。システム400は、図3のレジスタシステム300の移動セットインデックス306・312・320を特定するのに使用され得る。システム400は、図1の構成可能なキャッシュシステム100または図2の構成可能なキャッシュシステム200において実施されることが可能である。
【００３３】
キャッシュルックアップのためのメモリアドレスレジスタ402は、最下位ビット(LSB)、ビット0から最上位ビット(MSB)、ビット31までラベルが付けられた32のビット値を格納するように構成される。マルチプレクサ404が、418で示されるとおり、1つの入力としてビット15を、さらに422で示されるとおり、別の入力としてビット6を、キャッシュルックアップのためのメモリアドレスレジスタ402から受信する。マルチプレクサ404は、412で示されるとおり、ビット15またはビット6をセットインデックス408に出力する。マルチプレクサ404の出力は、2ビットライン410に沿ってキャッシュサイズ430制御によって制御される。マルチプレクサ406が、420で示されるとおり、1つの入力としてビット14を、さらに424で示されるとおり、別の入力としてビット5を受信する。マルチプレクサ406は、416で示されるとおり、ビット14またはビット5のいずれかをセットインデックス408に出力する。マルチプレクサ406の出力は、2ビットライン410に沿ってキャッシュサイズ430制御によって制御される。セットインデックス408が、7ビットライン414に沿ってビット13からビット7までにわたるビットを、キャッシュルックアップ402のためのメモリアドレスレジスタから受信する。
【００３４】
マルチプレクサ404がビット6を出力し、マルチプレクサ406がビット5を出力すると、セットインデックス408は、図3のセットインデックス306に対応する。マルチプレクサ404がビット6を出力し、マルチプレクサ406がビット14を出力すると、セットインデックス408は、図3のセットインデックス312に対応し、ただし、セットインデックス312を有するキャッシュは、セットインデックス306を有するキャッシュのサイズの2倍であることが可能である。マルチプレクサ404がビット15を出力し、マルチプレクサ406がビット14を出力すると、セットインデックス408は、図3のセットインデックス320に対応し、ただし、セットインデックス320を有するキャッシュは、セットインデックス312を有するキャッシュのサイズの2倍であることが可能であり、さらにセットインデックス306を有するキャッシュのサイズの4倍であることが可能である。
【００３５】
図5を参照すると、構成可能なキャッシュを構成する方法の第1の例示的な実施形態の流れ図が、500で示されている。方法500は、502で、キャッシュのタグ状態アレイにおいてアドレスを受信することを含み、ただし、キャッシュは、第1のサイズと、第1のサイズより大きい第2のサイズのいずれかを有するように構成可能である。例えば、アドレス102が、構成可能なキャッシュ106のタグ状態アレイ108において受信されることが可能であり、ただし、構成可能なキャッシュ106のキャッシュデータ領域110は、図1に示されるとおり、第1のサイズと、第1のサイズより大きい第2のサイズのいずれかを有するように構成可能である。また、方法500は、504で、アドレスの第1の部分をセットインデックスとして識別することも含む。例えば、図1に示されるとおり、アドレス102の第1の部分が、セットインデックス1 122として識別されることが可能であり、あるいはアドレス102の第1の部分が、セットインデックス2 124として識別されることが可能である。同様に、図3に示されるとおり、キャッシュルックアップのためのメモリアドレスレジスタ302の中のアドレスの第1の部分が、セットインデックス306として、またはセットインデックス312として、またはセットインデックス320として識別されることが可能である。
【００３６】
方法500は、506で、セットインデックスを使用して、タグ状態アレイの少なくとも1つのタグフィールドを探し出すことをさらに含む。例えば、セットインデックス1 122またはセットインデックス2 124のいずれかを使用して、図1に示されるタグ状態アレイ108の少なくとも1つのタグ領域116が探し出されることが可能である。また、方法500は、508で、少なくとも1つのタグフィールドに格納された値と比較するためにアドレスの第2の部分を識別することも含む。例えば、アドレス102の第2の部分が、図1の少なくとも1つのタグ領域116に格納された値と比較されることが可能なタグ128として識別されることが可能である。方法500は、510で、第2の部分と合致する特定のタグフィールドに関連するタグ状態アレイの少なくとも1つの状態フィールドを探し出すことをさらに含む。例えば、図1のタグ128と合致する特定のタグ領域116に関連することが可能なタグ状態アレイ108の少なくとも1つの状態領域118が、探し出されることが可能である。
【００３７】
また、方法500は、512で、少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対するアドレスの第3の部分の比較に基づいて、キャッシュラインを識別することも含む。例えば、キャッシュライン112の1つが、図1のタグ状態アレイ108の少なくとも1つの状態領域118の少なくとも2つのステータスビットに対するアドレス102の状態アドレス126部分の比較に基づいて、識別されることが可能である。方法500は、514で、キャッシュラインを取得することをさらに含み、ただし、アドレスの第1の部分の第1のロケーション、およびアドレスの第2の部分の第2のロケーションが、キャッシュが第1のサイズを有するように構成されるか、または第2のサイズを有するように構成されるかに基づいて選択され、さらにアドレスの第1の部分は、キャッシュが第1のサイズを有する場合に、キャッシュが第2のサイズを有する場合と同一の数のビットを有する。例えば、キャッシュライン112のうち識別されたキャッシュラインが取得されることが可能であり、ただし、アドレス102のセットインデックス部分(セットインデックス1 122またはセットインデックス2 124)の第1のロケーション、およびアドレス102のタグ128部分の第2のロケーションが、キャッシュデータ領域110が、第1のサイズを有するように構成されるか、または第2のサイズを有するように構成されるかに基づいて選択されることが可能であり、ただし、アドレス102のセットインデックス部分(セットインデックス1 122またはセットインデックス2 124)は、キャッシュデータ領域110が第1のサイズを有する場合に、キャッシュデータ領域110が第2のサイズを有する場合と同一の数のビットを有する。
【００３８】
或る特定の実施形態において、キャッシュは、第2のサイズより大きい第3のサイズを有するようにさらに構成可能である。例えば、構成可能なキャッシュ206のデータ領域210が、図2に示されるとおり、第2のサイズより大きい第3のサイズを有するようにさらに構成可能であり得る。或る特定の実施形態において、アドレスの第1の部分は、キャッシュが第1のサイズを有するように構成される場合、アドレスの第3の部分の2つのビットと重なり合い、ただし、アドレスの第1の部分は、キャッシュが第2のサイズを有するように構成される場合、アドレスの第3の部分の単一のビットと重なり合い、さらにアドレスの第1の部分は、キャッシュが第3のサイズを有するように構成される場合、アドレスの第3の部分のいずれのビットとも重なり合わない。例えば、前述したとおり、図3のセットインデックス306は、キャッシュが第1のサイズ(64キロビット)を有するように構成される場合、状態アドレス324の2つのビット308と重なり合い、ただし、セットインデックス312は、キャッシュが第2のサイズ(128キロビット)を有するように構成される場合、状態アドレス324の単一のビット316と重なり合い、さらにセットインデックス320は、キャッシュが第3のサイズ(256キロビット)を有するように構成される場合、状態アドレス324のいずれのビットとも重なり合わない。
【００３９】
図6を参照すると、構成可能なキャッシュを構成する方法の第2の例示的な実施形態の流れ図が、600で示されている。方法600は、602で、キャッシュのサイズを変更することを含む。例えば、図1の構成可能なキャッシュ106のキャッシュデータ領域110が、第1のサイズから第2のサイズに、または第2のサイズから第1のサイズに変更されることが可能である。同様に、図2の構成可能なキャッシュ206のデータ領域210が、第1のサイズから第2のサイズに、または第2のサイズから第3のサイズに、または第1のサイズから第3のサイズに、または第2のサイズから第1のサイズに、または第3のサイズから第2のサイズに、または第3のサイズから第1のサイズに変更されることが可能である。
【００４０】
また、方法600は、604で、キャッシュのサイズを変更したことに応答してキャッシュから取得されるべきデータのアドレスのセットインデックス部分のロケーションを移すことも含み、ただし、セットインデックス部分のビット長は、そのロケーションが移された場合に変更されない。例えば、図3のセットインデックス306が、キャッシュのサイズを64キロビットから128キロビットに変更したことに応答して、矢印314で示されるとおり、セットインデックス312のロケーションに移されることが可能であり、ただし、セットインデックス306とセットインデックス312の両方が、9ビットのビット長を有する。同様に、図3のセットインデックス312が、キャッシュのサイズを128キロビットから256キロビットに変更したことに応答して、矢印322で示されるとおり、セットインデックス320のロケーションに移されることが可能であり、ただし、セットインデックス312とセットインデックス320の両方が、9ビットのビット長を有する。
【００４１】
或る特定の実施形態において、アドレスのセットインデックス部分は、キャッシュが第1のサイズを有するように構成される場合、またはキャッシュが第1のサイズより大きい第2のサイズを有するように構成される場合、アドレスの状態アドレス部分の少なくとも1つのビットと重なり合う。例えば、図3のセットインデックス306は、キャッシュが約64キロビットの第1のサイズを有するように構成される場合、状態アドレス324の少なくとも1つのビット308と重なり合い、さらにセットインデックス312は、キャッシュが約128キロビットの第2のサイズを有するように構成される場合、状態アドレス324の少なくとも1つのビット316と重なり合う。
【００４２】
或る特定の実施形態において、キャッシュは、第2のサイズより大きい第3のサイズを有するようにさらに構成可能である。例えば、構成可能なキャッシュ206のデータ領域210が、図2に示されるとおり、第2のサイズより大きい第3のサイズを有するようにさらに構成されることが可能である。或る特定の実施形態において、アドレスのセットインデックス部分は、キャッシュが第1のサイズを有するように構成される場合、アドレスの状態アドレス部分の2つのビットと重なり合い、ただし、アドレスのセットインデックス部分は、キャッシュが第2のサイズを有するように構成される場合、アドレスの状態アドレス部分の単一のビットと重なり合い、さらにアドレスのセットインデックス部分は、キャッシュが第3のサイズを有するように構成される場合、アドレスの状態アドレス部分のいずれのビットとも重なり合わない。例えば、前述したとおり、図3のセットインデックス306は、キャッシュが第1のサイズ(64キロビット)を有するように構成される場合、状態アドレス324の2つのビット308と重なり合い、ただし、セットインデックス312は、キャッシュが第2のサイズ(128キロビット)を有するように構成される場合、状態アドレス324の単一のビット316と重なり合い、さらにセットインデックス320は、キャッシュが第3のサイズ(256キロビット)を有するように構成される場合、状態アドレス324のいずれのビットとも重なり合わない。
【００４３】
図7を参照すると、構成可能なキャッシュを構成する方法の第3の例示的な実施形態が、700で示される。方法700は、702で、キャッシュのデータアレイの各エントリに関連するデータの量を増やすとともに、セットインデックスを介してアドレス指定可能なデータアレイのエントリの第1の数を維持すること、およびセットインデックスの各値に関連するデータアレイのエントリの第2の数を維持することによって、キャッシュを、第1のデータ領域サイズを有する第1の構成から第2のデータ領域サイズを有する第2の構成に変更することを含む。例えば、図1の構成可能なキャッシュ106は、キャッシュライン112の各キャッシュラインのキャッシュラインセクタまたはキャッシュラインセグメント112aにキャッシュラインセクタまたはキャッシュラインセグメント112bを追加することによって、キャッシュデータ領域110を第1のサイズから第2のサイズに変更させることが可能である。
【００４４】
また、方法700は、704で、データアレイに関連するタグ状態アレイにインデックスを付けるようにメモリアドレスのビットの範囲を移すことも含み、ただし、タグ状態アレイにインデックスを付けるビットの範囲は、キャッシュを第1の構成から第2の構成に変更することに基づいて、移される。例えば、図3のセットインデックス306は、キャッシュのサイズを64キロビットから128キロビットに変更することに応答して、矢印314によって示されるとおり、セットインデックス312のロケーションに移されることが可能であり、ただし、セットインデックス306とセットインデックス312はともに、キャッシュデータ領域110に関連する図1のタグ状態アレイ108などの、データアレイに関連するタグ状態アレイにインデックスを付ける。
【００４５】
或る特定の実施形態において、方法700は、それぞれがタグ状態アレイにインデックスを付けるビットの範囲から少なくとも1つの入力を受信し、それぞれがセットインデックスに選択可能なビットを出力するマルチプレクサのペアに制御入力を設定することをさらに含む。例えば、図4のマルチプレクサ404、およびマルチプレクサ406は、それぞれの制御入力が、2ビットライン410に沿ってキャッシュサイズ430制御によって設定されていることが可能である。前述したとおり、マルチプレクサ404およびマルチプレクサ406はそれぞれ、図1のタグ状態アレイ108または図2のタグ状態アレイ208などのタグ状態アレイにインデックスを付けるビットの範囲から少なくとも1つの入力を受信することが可能であり、さらにそれぞれ、セットインデックス408に選択可能なビットを出力することが可能である。
【００４６】
或る特定の実施形態において、方法700は、キャッシュのデータアレイの各エントリに関連するデータの量を増やすとともに、セットインデックスを介してアドレス指定可能なデータアレイのエントリの第1の数を維持すること、およびセットインデックスの各値に関連するデータアレイのエントリの第2の数を維持することによって、キャッシュを、第2のデータ領域サイズを有する第2の構成から第3のデータ領域サイズを有する第3の構成に変更することをさらに含む。例えば、図2の構成可能なキャッシュ206は、キャッシュライン212の既存のキャッシュラインセクタまたはキャッシュラインセグメントにさらなるキャッシュラインセクタまたはキャッシュラインセグメントを追加することによって、データ領域210を第2のサイズから第3のサイズに変更させることが可能である。方法700は、データアレイに関連するタグ状態アレイにインデックスを付けるメモリアドレスのビットの範囲を移すことをさらに含むことが可能であり、ただし、タグ状態アレイにインデックスを付けるビットの範囲は、キャッシュを第2の構成から第3の構成に変更することに応答して、移される。例えば、図3のセットインデックス312は、キャッシュのサイズを128キロビットから256キロビットに変更することに応答して、矢印322で示されるとおり、セットインデックス320のロケーションに移されることが可能であり、ただし、セットインデックス312とセットインデックス320の両方が、データ領域210に関連する図2のタグ状態アレイ208などの、データアレイに関連するタグ状態アレイにインデックスを付ける。
【００４７】
図5〜図7の方法に従って、または本明細書で説明される他の実施形態に従って動作する構成可能なキャッシュは、移動電話機、セットトップボックス、コンピュータ、携帯情報端末(PDA)、音楽プレーヤ、ビデオプレーヤ、データもしくはコンピュータ命令を格納する、もしくは取得する他の任意のデバイス、または以上の任意の組合せなどの、様々な電子デバイスに組み込まれることが可能である。
【００４８】
図8は、構成可能なキャッシュモジュール864を含むシステム800の特定の実施形態のブロック図である。システム800は、ポータブル電子デバイスにおいて実施されることが可能であり、メモリ832に接続されたデジタルシグナルプロセッサ(DSP)などのシグナルプロセッサ810を含む。システム800は、構成可能なキャッシュモジュール864を含む。例示的な実施例において、構成可能なキャッシュモジュール864は、図1〜図4のシステムのいずれかを含み、図5〜図7の実施形態のいずれか、またはそのような実施形態の任意の組合せに従って動作する。構成可能なキャッシュモジュール864は、シグナルプロセッサ810内にあることが可能であり、あるいは別個のデバイスまたは回路(図示せず)であってもよい。或る特定の実施形態において、図1の構成可能なキャッシュ106には、デジタルシグナルプロセッサがアクセス可能である。例えば、図8に示されるとおり、構成可能なキャッシュモジュール864に、デジタルシグナルプロセッサ(DSP)810がアクセス可能であり、デジタルシグナルプロセッサ810は、構成可能なキャッシュモジュール864に格納されたデータまたはプログラム命令にアクセスするように構成される。図1の少なくとも1つの共通ビット104は、デジタルシグナルプロセッサ810において実行されるキャッシュルックアップ動作に関連して構成可能なキャッシュ106で受信される、アドレス102などのメモリアドレスの所定のビットに対応することが可能である。
【００４９】
カメラインタフェース868が、シグナルプロセッサ810に接続され、さらにビデオカメラ870などのカメラにも接続される。ディスプレイコントローラ826が、シグナルプロセッサ810およびディスプレイデバイス828に接続される。また、符号器/復号器(CODEC)834が、シグナルプロセッサ810に接続されることも可能である。スピーカ836およびマイクロフォン838が、CODEC834に接続され得る。無線インタフェース840が、無線アンテナ842および無線インタフェース840を介して受信される無線データがシグナルプロセッサ810に供給され得るように、プロセッサ810およびアンテナ842に接続され得る。
【００５０】
シグナルプロセッサ810は、プロセッサ810などのコンピュータが、構成可能なキャッシュモジュール864に、キャッシュのデータアレイの各エントリに関連するデータの量を増やすとともに、セットインデックスを介してアドレス指定可能なデータアレイのエントリの第1の数を維持すること、およびセットインデックスの各値に関連するデータアレイのエントリの第2の数を維持することによって、キャッシュを、第1のデータ領域サイズを有する第1の構成から第2のデータ領域サイズを有する第2の構成に変更させることをもたらすように実行可能である、メモリ832などのコンピュータ可読媒体に格納されたコンピュータ実行可能命令866を実行するように構成されることが可能である。これらのコンピュータ実行可能命令は、構成可能なキャッシュモジュール864に、データアレイに関連するタグ状態アレイにインデックス付けするメモリアドレスのビットの範囲を移させるようにさらに実行可能であり、ただし、タグ状態アレイにインデックス付けするビットの範囲は、キャッシュを第1の構成から第2の構成に変更することに基づいて、移される。
【００５１】
或る特定の実施形態において、シグナルプロセッサ810、ディスプレイコントローラ826、メモリ832、CODEC834、無線インタフェース840、およびカメラインタフェース868は、システムインパッケージデバイスまたはシステムオンチップデバイス822の中に含められる。或る特定の実施形態において、入力デバイス830および電源装置844が、システムオンチップデバイス822に接続される。さらに、或る特定の実施形態において、図8に示されるとおり、ディスプレイデバイス828、入力デバイス830、スピーカ836、マイクロフォン838、無線アンテナ842、ビデオカメラ870、および電源装置844は、システムオンチップデバイス822の外部にある。しかし、ディスプレイデバイス828、入力デバイス830、スピーカ836、マイクロフォン838、無線アンテナ842、ビデオカメラ870、および電源装置844のそれぞれは、インタフェースまたはコントローラなどの、システムオンチップデバイス822の構成要素に接続され得る。
【００５２】
以上の開示されるデバイスおよび機能は、設計情報を提供することによって実施されることが可能であり、さらにコンピュータ可読媒体上に格納されたコンピュータファイル(例えば、RTL、GDSII、GERBERなど)になるように構成されることが可能である。一部、またはすべてのそのようなファイルは、そのようなファイルに基づいてデバイスを製造する製造業者に提供されることが可能である。もたらされる製品は、その後、切り離されて半導体ダイにされ、半導体チップにパッケージングされる半導体ウェーハを含む。これらのチップが、その後、前述したデバイスにおいて使用される。図9は、電子デバイス製造工程900の特定の例示的な実施形態を示す。
【００５３】
物理的デバイス情報902が、研究コンピュータ906においてなど、製造工程900において受信される。物理的デバイス情報902は、図1の構成可能なキャッシュの構成要素、図2の構成可能なキャッシュの構成要素、または以上の任意の組合せなどの、半導体デバイスの少なくとも1つの物理的特性を表す設計情報を含むことが可能である。例えば、物理的デバイス情報902は、研究コンピュータ906に接続されたユーザインタフェース904を介して入力される物理的パラメータ、材料特性、および構造情報を含むことが可能である。研究コンピュータ906は、メモリ910などのコンピュータ可読媒体に接続された、1つまたは複数の処理コアなどのプロセッサ908を含む。メモリ910は、プロセッサ908に、ファイルフォーマットに適合するように、さらにライブラリファイル912を生成するように物理的デバイス情報902を変換させるように実行可能であるコンピュータ可読命令を格納することが可能である。
【００５４】
或る特定の実施形態において、ライブラリファイル912は、変換された設計情報を含む少なくとも1つのデータファイルを含む。例えば、ライブラリファイル912は、電子設計自動化(EDA)ツール920で使用するために提供される、図1の構成可能なキャッシュの構成要素、図2の構成可能なキャッシュの構成要素、または以上の任意の組合せを含む半導体デバイスに対応するデータファイルのライブラリを含むことが可能である。
【００５５】
ライブラリファイル912は、メモリ918に接続された、1つまたは複数の処理コアなどのプロセッサ916を含む設計コンピュータ914において、EDAツール920と併せて使用されることが可能である。EDAツール920は、設計コンピュータ914のユーザが、ライブラリファイル912の、図1の構成可能なキャッシュの構成要素、図2の構成可能なキャッシュの構成要素、または以上の任意の組合せを使用して回路を設計することを可能にするプロセッサ実行可能命令としてメモリ918に格納されることが可能である。例えば、設計コンピュータ914のユーザは、設計コンピュータ914に接続されたユーザインタフェース924を介して回路設計情報922を入力することが可能である。回路設計情報922は、図1の構成可能なキャッシュの構成要素、図2の構成可能なキャッシュの構成要素、または以上の任意の組合せなどの、半導体デバイスの少なくとも1つの物理的特性を表す設計情報を含むことが可能である。例示すると、回路設計特性は、特定の回路の識別、および回路設計における他の要素に対する関係、位置付け情報、フィーチャサイズ情報、相互接続情報、あるいは半導体デバイスの物理的特性を表す他の情報を含むことが可能である。
【００５６】
設計コンピュータ914は、回路設計情報922を含む設計情報を、ファイルフォーマットに適合するように変換するように構成されることが可能である。例示すると、ファイルフォーマットは、平面幾何形状を表すデータベースバイナリファイルフォーマット、テキストラベル、ならびにグラフィックデータシステム(GDSII)ファイルフォーマットなどの階層フォーマットにおける回路レイアウトについての他の情報を含むことが可能である。設計コンピュータ914は、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、または以上の任意の組合せを記述する情報を、他の回路または情報に加えて含む、GDSIIファイル926などの変換された設計情報を含むデータファイルを生成するように構成されることが可能である。例示すると、データファイルは、図1の構成可能なキャッシュを含み、さらにシステムオンチップ(SOC)内のさらなる電子回路および構成要素も含む、SOCに対応する情報を含むことが可能である。
【００５７】
GDSIIファイル926は、GDSIIファイル926の中の変換された情報に従って、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、SOC、または以上の任意の組合せを製造するように製造工程928において受信されることが可能である。例えば、デバイス製造工程は、代表的なマスク932として例示される、フォトリソグラフィプロセスのために使用されるべきマスクなどの、1つまたは複数のマスクを作製するようにマスク製造業者930にGDSIIファイル926を提供することを含むことが可能である。マスク932は、試験されて、代表的なダイ936などのダイに分離されることが可能な1つまたは複数のウェーハ934を生む製造工程中に使用されることが可能である。ダイ936は、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、または以上の任意の組合せを含む回路を含む。
【００５８】
ダイ936は、ダイ936が代表的なパッケージ940に組み込まれるパッケージング工程938に供給されることが可能である。例えば、パッケージ940は、単一のダイ936、あるいはシステムインパッケージ(SiP)構成などの複数のダイを含むことが可能である。パッケージ940は、電子機器技術評議会(JEDEC)標準などの、1つまたは複数の標準または規格に準拠するように構成されることが可能である。
【００５９】
パッケージ940に関する情報は、コンピュータ946に格納された構成要素ライブラリを介するなどして、様々な製品設計者に配布されることが可能である。コンピュータ946は、メモリ950に接続された、1つまたは複数の処理コアなどのプロセッサ948を含むことが可能である。プリント回路基板(PCB)ツールが、ユーザインタフェース944を介してコンピュータ946のユーザから受信されるPCB設計情報942を処理するようにメモリ950にプロセッサ実行可能命令として格納されることが可能である。PCB設計情報942は、回路基板上のパッケージングされた半導体デバイスの物理的位置付け情報を含むことが可能であり、このパッケージングされた半導体デバイスは、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、または以上の任意の組合せを含むパッケージ940に対応する。
【００６０】
コンピュータ946は、回路基板上のパッケージングされた半導体デバイスの物理的位置付け情報、ならびにトレースやバイアなどの電気的接続のレイアウトを含むデータを有するGERBERファイル952などのデータファイルを生成するようにPCB設計情報942を変換するように構成されることが可能であり、ただし、このパッケージングされた半導体デバイスは、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、または以上の任意の組合せを含むパッケージ940に対応する。他の実施形態において、変換されたPCB設計情報によって生成されるデータファイルは、GERBERフォーマット以外のフォーマットを有してもよい。
【００６１】
GERBERファイル952は、基板組立工程954において受信されて、GERBERファイル952内に格納された設計情報に従って製造される、代表的なPCB956などのPCBを作製するのに使用されることが可能である。例えば、GERBERファイル952は、PCB製造工程の様々なステップを実行するために1つまたは複数のマシンにアップロードされることが可能である。PCB956には、代表的なプリント回路アセンブリ(PCA)958を形成するようにパッケージ940を含む電子構成要素を装着することが可能である。
【００６２】
PCA958は、製品製造工程960において受信され、第1の代表的な電子デバイス962および第2の代表的な電子デバイス964などの、1つまたは複数の電子デバイスに組み込まれることが可能である。例示的な、限定的でない例として、第1の代表的な電子デバイス962、第2の代表的な電子デバイス964、またはその両方が、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータのグループから選択されることが可能である。別の例示的な、限定的でない例として、電子デバイス962および964の1つまたは複数は、移動電話機、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、グローバルポジショニングシステム(GPS)対応のデバイス、ナビゲーションデバイス、メータ読み取り機器などの固定ロケーションデータユニット、データまたはコンピュータ命令を格納する、または取得する他の任意のデバイス、あるいは以上の任意の組合せなどの、遠隔ユニットであることが可能である。図1〜図8の1つまたは複数は、本開示の教示による遠隔ユニットを例示することが可能であるものの、本開示は、これらの例示的な説明されるユニットに限定されない。本開示の実施形態は、メモリおよびオンチップ回路を含む能動集積回路を含む任意のデバイスにおいて適切に使用されることが可能である。
【００６３】
このため、図1の構成可能なキャッシュ、図2の構成可能なキャッシュ、または以上の任意の組合せが、例示的な工程900で説明されるとおり、製造され、処理され、電子デバイスに組み込まれることが可能である。図1〜図8に関連して開示される実施形態の1つまたは複数の態様は、ライブラリファイル912内、GDSIIファイル926内、およびGERBERファイル952内になど、様々な処理段階において含められることが可能であるとともに、研究コンピュータ906のメモリ910に、設計コンピュータ914のメモリ918に、コンピュータ946のメモリ950に、基板組立工程954においてなど、様々な段階において使用される他の1つまたは複数のコンピュータまたはプロセッサ(図示せず)のメモリに格納されることが可能であり、さらにマスク932、ダイ936、パッケージ940、PCA958、プロトタイプ回路もしくはプロトタイプデバイス(図示せず)などの他の製品、または以上の任意の組合せなどの、他の1つまたは複数の物理的実施形態に組み込まれることも可能である。物理的デバイス設計から最終製品までの製造の様々な代表的な段階が示されるものの、他の実施形態において、より少ない段階が使用されることが可能であり、あるいはさらなる段階が含められることが可能である。同様に、工程900は、単一のエンティティによって実行されても、工程900の様々な段階を実行する1つまたは複数のエンティティによって実行されてもよい。
【００６４】
当業者は、本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施され得ることをさらに認識するであろう。ハードウェアとソフトウェアの、この互換性を明確に示すのに、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップが、概ね、機能の点で説明されてきた。そのような機能がハードウェアとして実施されるか、ソフトウェアとして実施されるかは、全体的なシステムに課される特定の応用上、および設計上の制約に依存する。当業者は、それぞれの特定の用途のために、説明される機能を様々な仕方で実施することができるが、そのような実施上の決定が、本開示の範囲からの逸脱を生じさせるものと解釈されるべきではない。
【００６５】
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェアで直接に、プロセッサによって実行されるソフトウェアモジュールで、あるいはハードウェアとそのようなソフトウェアモジュールの組合せで実施されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、または当技術分野で知られている他の任意の形態の記憶媒体の中に存在することが可能である。例示的な記憶媒体が、プロセッサがその記憶媒体から情報を読み取ることができるとともに、その記憶媒体に情報を書き込むことができるように、プロセッサに接続される。代替として、記憶媒体は、プロセッサと一体化していてもよい。プロセッサと記憶媒体は、特定用途向け集積回路(ASIC)内に存在してもよい。このASICは、コンピューティングデバイスまたはユーザ端末装置の中に存在することが可能である。代替として、プロセッサと記憶媒体は、コンピューティングデバイスまたはユーザ端末装置の中のディスクリートの構成要素として存在してもよい。
【００６６】
開示される実施形態の以上の説明は、当業者が開示される実施形態を作成する、または使用することを可能にするように与えられる。これらの実施形態の様々な変更が、当業者には直ちに明白となり、本明細書で規定される一般的な原理は、本開示の趣旨または範囲を逸脱することなく、他の実施形態に適用されることも可能である。このため、本開示は、本明細書で示される実施形態に限定されることは意図されず、添付の特許請求の範囲によって規定される原理および新規な特徴と合致する可能な最も広い範囲を与えられるべきである。
【符号の説明】
【００６７】
102  アドレス
104  共通ビット
106  キャッシュ
108  タグ状態アレイ
110  キャッシュデータ領域
112  キャッシュライン
116  タグ領域
118  状態領域
120  経路
122、124  セットインデックス
126  状態アドレス
128  タグ
【図１】
0005650821.tif 000002
【図２】
0005650821.tif 000003
【図３】
0005650821.tif 000004
【図４】
0005650821.tif 000005
【図５】
0005650821.tif 000006
【図６】
0005650821.tif 000007
【図７】
0005650821.tif 000008
【図８】
0005650821.tif 000009
【図９】
0005650821.tif 000010