JP2013257902A - 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法 - Google Patents

構成可能なキャッシュ、および構成可能なキャッシュを構成する方法 Download PDF

Info

Publication number
JP2013257902A
JP2013257902A JP2013176397A JP2013176397A JP2013257902A JP 2013257902 A JP2013257902 A JP 2013257902A JP 2013176397 A JP2013176397 A JP 2013176397A JP 2013176397 A JP2013176397 A JP 2013176397A JP 2013257902 A JP2013257902 A JP 2013257902A
Authority
JP
Japan
Prior art keywords
cache
size
address
tag
set index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013176397A
Other languages
English (en)
Other versions
JP5650821B2 (ja
Inventor
Edward Kube Christopher
クリストファー・エドワード・クーブ
Anant Ingle Ajay
アジャイ・アナント・イングレ
Codrescu Lucian
ルシアン・コドレスク
Jian Shen
ジアン・シェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013257902A publication Critical patent/JP2013257902A/ja
Application granted granted Critical
Publication of JP5650821B2 publication Critical patent/JP5650821B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】構成可能なキャッシュ、および構成可能なキャッシュを構成する方法を提供する。
【解決手段】キャッシュ106のタグ状態アレイ108においてアドレスを受信するステップを備える。キャッシュは、第1のサイズと、第1のサイズより大きい第2のサイズのいずれか一つを有するように構成可能である。アドレスの第1の部分をセットインデックスとして識別するステップと、タグ状態アレイのタグフィールドを探し出すためにセットインデックスを使用するステップと、タグフィールドに格納された値と比較するためにアドレスの第2の部分を識別するステップと、第2の部分と合致する特定のタグフィールドに関連するタグ状態アレイの状態フィールドを探し出すステップと、状態フィールドの2つのステータスビットに対するアドレスの第3の部分の比較に基づいて、キャッシュラインを識別するステップと、キャッシュラインを取得するステップとを備える。
【選択図】図1

Description

本開示は、一般に、構成可能なキャッシュ、および構成可能なキャッシュを構成する方法を対象とする。
技術の進歩が、より小型で、より強力なコンピューティングデバイスをもたらしている。例えば、ポータブル無線電話機、携帯情報端末(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 タグ

Claims (20)

  1. 第1のサイズと、前記第1のサイズより大きい第2のサイズのいずれか一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信するステップと、
    前記アドレスの第1の部分をセットインデックスとして識別するステップと、
    前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用するステップと、
    前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別するステップと、
    前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出すステップと、
    前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別するステップと、
    前記キャッシュラインを取得するステップとを備え、
    前記アドレスの前記第1の部分の第1のロケーション、および前記アドレスの前記第2の部分の第2のロケーションが、前記キャッシュが前記第1のサイズを有するように構成されるか、前記第2のサイズを有するように構成されるかに基づいて選択され、さらに前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有する場合に、前記キャッシュが前記第2のサイズを有する場合と同一の数のビットを有することを特徴とする方法。
  2. 前記キャッシュは、前記第2のサイズより大きい第3のサイズを有するようにさらに構成可能であることを特徴とする請求項1に記載の方法。
  3. 前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合い、前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合い、さらに前記アドレスの前記第1の部分は、前記キャッシュが前記第3のサイズを有するように構成される場合、前記アドレスの前記第3の部分のいずれのビットとも重なり合わないことを特徴とする請求項2に記載の方法。
  4. 前記キャッシュラインを取得するステップは、電子デバイスのプロセッサによって実行されることを特徴とする請求項2に記載の方法。
  5. 前記アドレスの前記第1の部分は、メモリアドレスレジスタ中に含められることを特徴する請求項1に記載の方法。
  6. 前記アドレスの前記第3の部分は、前記アドレスの状態アドレス部分であることを特徴する請求項1に記載の方法。
  7. 前記キャッシュの前記第1のサイズは64キロビットであるとともに、前記キャッシュの前記第2のサイズは128キロビットであることを特徴する請求項1に記載の方法。
  8. キャッシュは、256キロビットの第3のサイズを有するように構成可能であることを特徴とする請求項7に記載の方法。
  9. キャッシュと、
    前記キャッシュに接続されたプロセッサとを具備し、
    前記プロセッサは、
    第1のサイズと、前記第1のサイズより大きい第2のサイズのいずれか一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信し、
    前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記アドレスの第1の部分をセットインデックスとして使用し、
    前記少なくとも1つのタグフィールドの前記アドレスの第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出し、
    前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを取得するように構成されることを特徴とする装置。
  10. 前記アドレスの前記第1の部分の第1のロケーション、および前記アドレスの前記第2の部分の第2のロケーションが、前記キャッシュが前記第1のサイズを有するように構成されるか、前記第2のサイズを有するように構成されるかに基づいて選択されることを特徴とする請求項9に記載の装置。
  11. 前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有する場合に、前記キャッシュが前記第2のサイズを有する場合と同一の数のビットを有することを特徴とする請求項10に記載の装置。
  12. 前記キャッシュは、前記第2のサイズより大きい第3のサイズを有するようにさらに構成可能であることを特徴とする請求項10に記載の装置。
  13. 前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有するように構成される場合、前記アドレスの前記第3の部分の2つのビットと重なり合うことを特徴とする請求項12に記載の装置。
  14. 前記アドレスの前記第1の部分は、前記キャッシュが前記第2のサイズを有するように構成される場合、前記アドレスの前記第3の部分の単一のビットと重なり合うことを特徴とする請求項12に記載の装置。
  15. 前記アドレスの前記第1の部分は、前記キャッシュが前記第3のサイズを有するように構成される場合、前記アドレスの前記第3の部分のいずれのビットとも重なり合わないことを特徴とする請求項12に記載の装置。
  16. プロセッサによって実行されるとき、前記プロセッサに
    第1のサイズと、前記第1のサイズより大きい第2のサイズのいずれか一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信させ、
    前記アドレスの第1の部分をセットインデックスとして識別させ、
    前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用させ、
    前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別させ
    前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出させ、
    前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別させ、
    前記キャッシュラインを取得させる命令を有する非一時的コンピュータ可読媒体。
  17. 前記アドレスの前記第1の部分の第1のロケーション、および前記アドレスの前記第2の部分の第2のロケーションが、前記キャッシュが前記第1のサイズを有するように構成されるか、前記第2のサイズを有するように構成されるかに基づいて選択され、さらに前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有する場合に、前記キャッシュが前記第2のサイズを有する場合と同一の数のビットを有することを特徴とする請求項16に記載の非一時的コンピュータ可読媒体。
  18. 第1のサイズと、前記第1のサイズより大きい第2のサイズのいずれか一つを有するように構成可能なキャッシュのタグ状態アレイにおいてアドレスを受信する手段と、
    前記アドレスの第1の部分をセットインデックスとして識別する手段と、
    前記タグ状態アレイの少なくとも1つのタグフィールドを探し出すために前記セットインデックスを使用する手段と、
    前記少なくとも1つのタグフィールドに格納された値と比較するために前記アドレスの第2の部分を識別する手段と、
    前記第2の部分と合致する特定のタグフィールドに関連する前記タグ状態アレイの少なくとも1つの状態フィールドを探し出す手段と、
    前記少なくとも1つの状態フィールドの少なくとも2つのステータスビットに対する前記アドレスの第3の部分の比較に基づいて、キャッシュラインを識別する手段と、
    前記キャッシュラインを取得する手段とを備えることを特徴とする装置。
  19. 前記アドレスの前記第1の部分の第1のロケーション、および前記アドレスの前記第2の部分の第2のロケーションが、前記キャッシュが前記第1のサイズを有するように構成されるか、前記第2のサイズを有するように構成されるかに基づいて選択され、さらに前記アドレスの前記第1の部分は、前記キャッシュが前記第1のサイズを有する場合に、前記キャッシュが前記第2のサイズを有する場合と同一の数のビットを有することを特徴とする請求項18に記載の装置。
  20. 前記キャッシュは、前記第2のサイズより大きい第3のサイズを有するようにさらに構成可能であることを特徴とする請求項18に記載の装置。
JP2013176397A 2009-03-03 2013-08-28 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法 Active JP5650821B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/397,185 2009-03-03
US12/397,185 US8266409B2 (en) 2009-03-03 2009-03-03 Configurable cache and method to configure same

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011552230A Division JP5357277B2 (ja) 2009-03-03 2010-03-03 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法

Publications (2)

Publication Number Publication Date
JP2013257902A true JP2013257902A (ja) 2013-12-26
JP5650821B2 JP5650821B2 (ja) 2015-01-07

Family

ID=42112122

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011552230A Active JP5357277B2 (ja) 2009-03-03 2010-03-03 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法
JP2013176397A Active JP5650821B2 (ja) 2009-03-03 2013-08-28 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011552230A Active JP5357277B2 (ja) 2009-03-03 2010-03-03 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法

Country Status (8)

Country Link
US (3) US8266409B2 (ja)
EP (1) EP2404241A1 (ja)
JP (2) JP5357277B2 (ja)
KR (2) KR101293623B1 (ja)
CN (3) CN104572503B (ja)
BR (1) BRPI1009228B1 (ja)
TW (3) TWI516932B (ja)
WO (1) WO2010102048A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same
EP2261805B1 (en) * 2009-06-12 2013-07-31 Siemens Aktiengesellschaft Method for storing real time values
US8595441B1 (en) * 2010-01-04 2013-11-26 Marvell Israel (M.I.S.L) Ltd. Cache operations using transformed indexes
CN102541754A (zh) * 2010-12-27 2012-07-04 北京国睿中数科技股份有限公司 用于对存储器进行配置的系统和方法
US8890601B2 (en) * 2011-11-11 2014-11-18 Qualcomm Incorporated Method, system, and circuit with a driver output interface having a common mode connection coupled to a transistor bulk connection
US20130173881A1 (en) * 2011-12-29 2013-07-04 You-Chang Hsiao Circuit for setting a plurality of blocks as an in-system programming area and a data buffer area and method therefore
CN102541761B (zh) * 2012-01-17 2014-10-22 苏州国芯科技有限公司 应用于嵌入式芯片的只读高速缓冲存储器
US9058268B1 (en) * 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
US8886886B2 (en) * 2012-09-28 2014-11-11 Apple Inc. System cache with sticky removal engine
CN103019959B (zh) * 2012-11-21 2016-05-04 中国科学院声学研究所 一种指令高速缓冲存储器
US9087561B2 (en) * 2012-12-21 2015-07-21 Advanced Micro Devices, Inc. Hybrid cache
US9165650B2 (en) * 2013-02-07 2015-10-20 Qualcomm Incorporated Hybrid dynamic-static encoder with optional hit and/or multi-hit detection
CN103546802B (zh) * 2013-10-15 2017-07-25 深圳Tcl新技术有限公司 动态调整缓存的方法及显示终端
US9304929B2 (en) * 2013-10-24 2016-04-05 Mediatek Singapore Pte. Ltd. Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device
US9239788B2 (en) * 2013-10-24 2016-01-19 Qualcomm Incorporated Split write operation for resistive memory cache
US9398297B2 (en) 2013-11-04 2016-07-19 Intel Corporation Integral image coding
US9430394B2 (en) 2013-12-12 2016-08-30 Mediatek Singapore Pte. Ltd. Storage system having data storage lines with different data storage line sizes
CN104731519B (zh) * 2013-12-20 2018-03-09 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
KR102317248B1 (ko) * 2014-03-17 2021-10-26 한국전자통신연구원 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법
US9779025B2 (en) * 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
KR102354848B1 (ko) * 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US9916251B2 (en) 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
WO2016092345A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Logic analyzer for detecting hangs
US10528345B2 (en) * 2015-03-27 2020-01-07 Intel Corporation Instructions and logic to provide atomic range modification operations
US9916252B2 (en) * 2015-05-19 2018-03-13 Linear Algebra Technologies Limited Systems and methods for addressing a cache with split-indexes
US20170046167A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Predicting memory instruction punts in a computer processor using a punt avoidance table (pat)
CN106708747A (zh) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 一种存储器切换方法及装置
US9747041B2 (en) * 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
KR101780586B1 (ko) * 2016-03-16 2017-09-21 고려대학교 산학협력단 모놀리식 3d 집적 구조 기반 캐시메모리
CN105843360B (zh) * 2016-03-23 2018-06-12 中国电子科技集团公司第三十八研究所 一种降低指令高速缓冲存储器功耗的装置及方法
US10152276B2 (en) * 2016-07-18 2018-12-11 Winbond Electronics Corporation Memory device including data processor and program method of same
US20180088829A1 (en) * 2016-09-29 2018-03-29 Qualcomm Incorporated Area efficient architecture for multi way read on highly associative content addressable memory (cam) arrays
US10599566B2 (en) * 2016-11-29 2020-03-24 Qualcomm Incorporated Multi-mode cache invalidation
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
KR102465213B1 (ko) * 2018-03-31 2022-11-10 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 조건부 브랜칭 제어
CN109801655B (zh) * 2018-12-19 2020-10-13 成都海光集成电路设计有限公司 标签存储位读出比较电路以及标签数据读出比较电路
TWI706250B (zh) * 2019-02-26 2020-10-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
BR112021016106A2 (pt) 2019-03-15 2021-11-09 Intel Corp Processador gráfico de propósito geral, método e sistema de processamento de dados
US20220180467A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for updating memory side caches in a multi-gpu configuration
CN110147330B (zh) * 2019-05-23 2023-09-01 深圳市创维软件有限公司 一种字模数据的缓存方法、装置、设备和存储介质
US11507174B2 (en) * 2020-02-25 2022-11-22 Qualcomm Incorporated System physical address size aware cache memory
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
KR20230075914A (ko) * 2021-11-23 2023-05-31 삼성전자주식회사 프로세싱 장치 및 이의 동작 방법과 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857214A (en) * 1995-12-18 1999-01-05 Advanced Micro Devices, Inc. Microprocessor with a fixed cache size selected from a predesigned set of sizes
US20050270876A1 (en) * 2002-12-17 2005-12-08 International Business Machines Corporation Selectively changeable line width memory
JP2006510992A (ja) * 2002-12-17 2006-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ライン幅を選択的に変更することが可能なメモリ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US5257360A (en) * 1990-03-23 1993-10-26 Advanced Micro Devices,Inc. Re-configurable block length cache
US5586303A (en) * 1992-02-12 1996-12-17 Integrated Device Technology, Inc. Structure and method for providing a cache memory of selectable sizes
US5721874A (en) * 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6865646B2 (en) * 2001-12-31 2005-03-08 Intel Corporation Segmented distributed memory module cache
US7191320B2 (en) * 2003-02-11 2007-03-13 Via Technologies, Inc. Apparatus and method for performing a detached load operation in a pipeline microprocessor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7133997B2 (en) * 2003-12-22 2006-11-07 Intel Corporation Configurable cache
KR100714933B1 (ko) * 2005-05-17 2007-05-07 인터내셔널 비지네스 머신즈 코포레이션 선택성이 있는 가변 라인 폭 메모리
US7861055B2 (en) 2005-06-07 2010-12-28 Broadcom Corporation Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
JP4364166B2 (ja) * 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US7913003B2 (en) * 2006-02-24 2011-03-22 Intel Corporation Reclaim algorithm for fast edits in a nonvolatile file system
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US20090006754A1 (en) 2007-06-28 2009-01-01 Luick David A Design structure for l2 cache/nest address translation
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857214A (en) * 1995-12-18 1999-01-05 Advanced Micro Devices, Inc. Microprocessor with a fixed cache size selected from a predesigned set of sizes
US20050270876A1 (en) * 2002-12-17 2005-12-08 International Business Machines Corporation Selectively changeable line width memory
JP2006510992A (ja) * 2002-12-17 2006-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ライン幅を選択的に変更することが可能なメモリ

Also Published As

Publication number Publication date
KR20130080868A (ko) 2013-07-15
US20100228941A1 (en) 2010-09-09
WO2010102048A1 (en) 2010-09-10
US20140208027A1 (en) 2014-07-24
JP5650821B2 (ja) 2015-01-07
KR101293613B1 (ko) 2013-08-13
BRPI1009228A2 (pt) 2016-03-15
CN102341794A (zh) 2012-02-01
US8266409B2 (en) 2012-09-11
CN102341794B (zh) 2015-02-11
CN104598395B (zh) 2017-10-31
CN104572503B (zh) 2018-07-03
US8943293B2 (en) 2015-01-27
TWI418982B (zh) 2013-12-11
TW201106158A (en) 2011-02-16
KR20110127733A (ko) 2011-11-25
TWI516932B (zh) 2016-01-11
CN104572503A (zh) 2015-04-29
TWI548992B (zh) 2016-09-11
EP2404241A1 (en) 2012-01-11
JP5357277B2 (ja) 2013-12-04
JP2012519334A (ja) 2012-08-23
TW201415228A (zh) 2014-04-16
BRPI1009228B1 (pt) 2020-12-01
US20120265943A1 (en) 2012-10-18
KR101293623B1 (ko) 2013-08-13
CN104598395A (zh) 2015-05-06
TW201610681A (zh) 2016-03-16
US8719503B2 (en) 2014-05-06

Similar Documents

Publication Publication Date Title
JP5650821B2 (ja) 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法
US8195916B2 (en) Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode
EP2486488B1 (en) Accessing a multi-channel memory system having non-uniform page sizes
JP6254708B2 (ja) メモリをデフラグするシステムおよび方法
JP5509344B2 (ja) 参照セルを選択するためのシステムおよび方法
KR101650042B1 (ko) 메모리 디바이스의 타이밍 파라미터를 동적으로 결정하기 위한 시스템 및 방법
EP3080814B1 (en) System and method to perform low power memory operations
US9250998B2 (en) Cache structure with parity-protected clean data and ECC-protected dirty data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140728

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141014

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141113

R150 Certificate of patent or registration of utility model

Ref document number: 5650821

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250