JP4173192B2 - メモリバンクを動的に管理する方法及び装置 - Google Patents

メモリバンクを動的に管理する方法及び装置 Download PDF

Info

Publication number
JP4173192B2
JP4173192B2 JP2007552267A JP2007552267A JP4173192B2 JP 4173192 B2 JP4173192 B2 JP 4173192B2 JP 2007552267 A JP2007552267 A JP 2007552267A JP 2007552267 A JP2007552267 A JP 2007552267A JP 4173192 B2 JP4173192 B2 JP 4173192B2
Authority
JP
Japan
Prior art keywords
bank
memory
cache
banks
cache memory
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.)
Expired - Fee Related
Application number
JP2007552267A
Other languages
English (en)
Other versions
JP2008529132A (ja
Inventor
スピアー、トマス・フィリプ
ディーフェンダーファー、ジェイムス・ノリス
ラジャゴパラン、ラビ
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 JP2008529132A publication Critical patent/JP2008529132A/ja
Application granted granted Critical
Publication of JP4173192B2 publication Critical patent/JP4173192B2/ja
Expired - Fee Related 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Underground Structures, Protecting, Testing And Restoring Foundations (AREA)

Description

本発明は、一般に、多くのキャッシュメモリバンクを割り当てる技術に関し、特に、キャッシュメモリとして利用されるメモリバンク数を変えるとともに、与えられたアプリケーションのために、非キャッシュメモリ又はローカルメモリとして1又は複数のメモリバンクを適用する技術に関する。
デジタルシグナルプロセッサ(DSP)を含む中央処理装置(CPU)の電力消費及び動作速度の制約は、モバイルデバイスの全体パフォーマンスを制限しうる。処理ユニットは、処理ユニットと同じ集積回路上に共に存在するか、あるいは、処理ユニットからさらに遠くに格納されうるデータへのアクセス時間を改善するために、メモリバンクを利用し、これによって、データ長、及び、データに対する命令経路を短縮する。そのようなアプローチでは、メモリバンクにおけるバンク数は、設計時に固定されうる。メモリバンクは、最近使用された命令、データ、あるいはそれら両方をキャッシュするために使用されうる。あるいは、メモリバンクはまた、例えば、キャッシュのような高速なローカルメモリアクセスのために使用されうる。しかしながら、一旦メモリバンクの機能が設計時に選択されると、この選択されたメモリバンクの機能は固定される。
バンクキャッシュメモリに対する幾つかの従来のアプローチは、キャッシュメモリのために確保されたバンク数が、一般に、2の累乗に等しいという点で制限されている。メモリバンク内のキャッシュタグに対して比較されるために使用されるアドレスタグは、一般に、到来アドレスフィールドから抽出されるビットから構成される。したがって、タグが選択できる入力数、すなわち、タグ空間は2の累乗である。例えば、1つの従来のアプローチは、そのキャッシュメモリのために8つのメモリバンクを利用する。これら8つのバンクは、8ウェイの関連キャッシュとして設定される。これは、到来アドレスが、各バンク内に1つずつ存在する8つのキャッシュタグに対して、到来アドレスで運ばれたアドレスタグと比較されるようにすることを意味する。そして、各バンクのデータ出力は、一致するキャッシュタグを有するバンクに基づいて、正しいバンクを選択するために多重化される。
この従来のアプローチでは、各キャッシュアクセスは、コンパレータが、8つのバンクの各々においてイネーブルされるようにし、タグ空間は、キャッシュメモリ内の全てのキャッシュラインを特定することができる。そのようなアプローチでは、8つのバンクのうちの1つを他の目的のために再使用することは、一般にはなされてない。なぜなら、タグ空間は、関連するキャッシュラインに対して完全にはマップしないので、結果として、キャッシュミスになる可能性があるからである。従って、キャッシュに割り当てられるバンク数を単に低減し、残りのバンクを、他のタイプの利用のために再マップすることは、電力消費を増やし、キャッシュ効率を低減しうる。
バンクキャッシュメモリに対する他の従来のアプローチは、特定のバンクを選択するために、到来するタグから1又は複数のビットを抽出することを含みうる。特定のバンクを選択するために使用される抽出されたビットによって、このアプローチはまた、一般に、キャッシュ内のバンク数を、2の累乗に定める。例えば、4つのバンクが使用されると、特定のバンクを特定するために、到来するタグから2ビットが抽出される。例えば、ビット値00はバンクIを示し、ビット値01はバンクIIを示し、ビット値10はバンクIIIを示し、ビット値11はバンクIVを示すかもしれない。到来するタグから2ビットが抽出されると、キャッシュアクセスのための特定のバンクが選択される。
このアプローチが3つのバンクで使用されるように適応される場合、特定のバンクを特定するために2ビットが未だに必要とされ、4つの値のうち2つが、同じバンクを示すだろう。その結果、同じバンクに対し2つの値をマッピングすることになり、一般に、同じバンクが、他の2つのバンクと同じ頻度で2度選択される。この結果、キャッシュコンフリクトになり、メモリバンク内でキャッシュデータが不均等に分布されうる。
メモリバンクがバンクキャッシュとして使用される場合、バンクキャッシュのワーキングサイズ、すなわち、バンクキャッシュ内に格納されうる入力数は、処理ユニット上で動作するソフトウェアアプリケーションに依存して変わりうる。幾つかの局面では、本発明の第1の実施形態は、処理ユニット上で実行する異なるソフトウェアアプリケーションに依存してキャッシュ技術を変化させるメカニズムを提供するためのニーズが存在することを認識する。この目的のために、本実施形態は、後述するように、追加ローカルメモリとして用いるようなメモリバンクの一部を、別の一部が別の非キャッシュ目的で利用されている一方、キャッシュメモリとして動作するように設定するコンフィギュレーショントラッカを含む。この実施形態は更にバンクセレクタを含む。バンクセレクタは、1又は複数のバンク分散機能を適切に適用しうる。設定されたキャッシュバンクの数に依存して、バンクセレクタは、キャッシュメモリとして設定されたバンクを介して、バランスされるようにキャッシュアドレスを分散するための適切なバンク分散機能を選択する。
そのようなアプローチの1つの長所は、特定のアプリケーションのために必要とされないメモリバンクが、例えば高速ローカルメモリのような他の目的のために利用されるように、メモリバンク内のキャッシュサイズを変える能力を含む。他の長所は、ソフトウェア制御の下、キャッシュメモリに割り当てられるバンクの数を変える能力を含む。キャッシュメモリに割り当てられるバンク数を動的に変えることによって、製造欠陥を含むバンクが使用されることを防いだり、特定のソフトウェアアプリケーションに適合するようにキャッシュメモリのサイズを調整したりするなど多くの利点が得られる。他の長所は、各キャッシュアクセスにつき1つのキャッシュバンクをイネーブルすることによって、電力消費を低減する能力を含む。更に、全てよりも少ないメモリバンクがキャッシュメモリとして割り当てられる場合、キャッシュバンクの各々に対するキャッシュアクセスが実質的に等しくなるように、キャッシュアクセスのバランスをとる技術が提供される。
本発明のより完全な理解は、本発明の更なる特徴及び利点とともに、以下に示す詳細説明及び添付図面から明らかになるであろう。
本発明は、本発明の幾つかの実施形態が図示される添付図面を参照してより完全に説明される。しかしながら、本発明は、様々な形態で具体化され、本明細書で記載された実施形態に限定されるように解釈されるべきではない。むしろ、これらの実施形態は、本開示が十分かつ完全になるように、かつ、本発明の範囲を当業者に対して十分に伝えるように提供される。
図1は、本発明の実施形態が有利に適用されうる典型的な無線通信システム100の例示である。例示目的のために、図1は、3つの遠隔ユニット120,130,150と、2つの基地局140とを示している。典型的な無線通信システムは、より多くの遠隔ユニットおよび基地局を有していることが認識されるだろう。遠隔ユニット120,130,150は、ハードウェアコンポーネント125A,125B,125Cをそれぞれ含んでいる。これらのハードウェアコンポーネントは、更に以下に示すように、メモリバンク割当回路を含んでいる。図1は、基地局140から遠隔ユニット120,130,150への順方向リンク信号180と、遠隔ユニット120,130,150から基地局140への逆方向リンク信号190とを示す。
図1では、遠隔ユニット120はモバイル電話として示され、遠隔ユニット130はポータブルコンピュータとして示され、遠隔ユニット150は、ワイヤレスローカルループシステム内の固定位置遠隔ユニットとして示される。例えば、遠隔ユニットは、セル電話、携帯型パーソナル通信システム(PCS)ユニット、パーソナルデジタルアシスタントのようなポータブルデータユニット、あるいはメータ読取機器のような固定位置データユニットでありうる。図1は、本発明の教示に従った遠隔ユニットを例示しているが、本発明は、これら典型的に例示されたユニットに限定されない。本発明は、バンクに細分割されたキャッシュメモリが利用され、与えられたソフトウェアアプリケーションのキャッシュ格納のために、これらバンクの全てが必要とされる訳ではない任意の処理環境において適切に適用されうる。
図2は、本発明の実施形態が有利に適用されるプロセッサ複合体200を例示する。プロセッサ複合体200は、上述されたコンポーネント125A〜Cにおいて適切に適用されうる。プロセッサ複合体200は、中央処理装置(CPU)240、レベル1(L1)データキャッシュ230、L1命令キャッシュ220、レベル2(L2)命令及びデータキャッシュ210を含んでおり、一般的なチップに配置されうる。CPU240は、レベル1データキャッシュ230、レベル1命令キャッシュ220、及びレベル2キャッシュ210に結合される。CPU240は、階層的方法でキャッシュから命令及びデータを検索する。例えば、CPU240が、命令を取得する必要がある場合、CPU240は、アドレス一致に基づいて命令が存在するかを判定するために、レベル1命令キャッシュ220にアクセスする。レベル1命令キャッシュ220にアドレス一致がなければ、CPU240は、レベル2命令及びデータキャッシュ210にアクセスするだろう。同様に、CPU240がデータを取得する必要がある場合、CPU240は、アドレス一致に基づいてデータが存在するかを判定するために、レベル1データキャッシュ230にアクセスするだろう。レベル1データキャッシュ230にアドレス一致がなければ、CPU240は、レベル2命令及びデータキャッシュ210にアクセスするだろう。一般に、CPU240、L1データキャッシュ230、L1命令キャッシュ220、及びL2キャッシュ210は、一般的なチップに組み込まれうる。命令又はデータがチップ上で利用可能ではない場合、オフチップメモリ250へのアクセスが生じるだろう。
次の説明は、主にL2キャッシュ210に関し、本発明の実施形態は、キャッシュ210、220、及び230のうちの何れか又は全てで適用されうることが認識されるだろう。本発明の実施形態は、例示するプロセッサ複合体200に限定されず、本明細書に更に説明するように、キャッシュメモリを利用する他のプロセッサ複合体にも適用可能である。
図3は、本発明の教示に従ったキャッシュ複合体300の1つの実施形態を例示する。キャッシュ複合体300は、キャッシュ210、220、及び230の1又は複数として適切に適用されうる。キャッシュ複合体300は、バンクセレクタ310、コンフィギュレーショントラッカ320、アドレスレンジセレクタ322、4つのメモリバンク330A〜D、マルチプレクサ340,350を含んでいる。一例であるが、4つのメモリバンク330A〜Dは各々、64キロバイトのメモリを含み、集合的に、256キロバイトのL2キャッシュ220を備える。更なる例として、多くのセル電話アプリケーションにおいて、256キロバイトのL2キャッシュは必要とされないかもしれないが、より高速なオンチップローカルデータメモリを有することがより高く望まれるかもしれない。例えば、本発明の技術を利用するマルチメディア処理を行う際に、パケットは、追加ローカルメモリにストリームされ、もって、オフチップ動作を行う必要性を排除、あるいは実質的に低減する。
図3に戻って示すように、キャッシュ複合体300は2つのモードで動作するかもしれないし、例えばCPU240のような対応するプロセッサ上で実行するソフトウェアに依存して、動作モード間で変化しうる。第1モードでは、キャッシュ複合体300は、もっぱらキャッシュとして動作しうる。このモードでは、キャッシュデータを検索又は格納するために、キャッシュタグを比較することによって、全てのメモリバンクがアクセスされる。第2モードでは、キャッシュ複合体300は、コンビネーションキャッシュ及びローカルメモリレポジトリとして動作する。ここでは、2以上のメモリバンク330A〜Dがキャッシュメモリとしてアクセスされ、残りのメモリバンクが、例えばローカルメモリのような非キャッシュメモリとしてアクセスされる。キャッシュメモリとしてアクセスされているメモリバンクの数は、例えばCPU240のように、メモリバンクに結合されたプロセッサ上で現在実行しているソフトウェアアプリケーションの必要性に依存して変わりうる。
コンフィギュレーショントラッカ320は、どのメモリバンクがキャッシュメモリとしてアクセスされることになっているか、また、どのメモリバンクがローカルメモリとしてアクセスされることになっているかを示す値を格納する。コンフィグレーションライン305は、どのメモリバンクがキャッシュとして利用され、また、もしあれば、どのメモリバンクがローカルメモリとして利用されるのかを設定するために、コンフィギュレーショントラッカ320に接続され、コンフィギュレーショントラッカ320の値を設定するための値が運ばれる。ソフトウェアアプリケーションを起動するか、あるいは命令を起動させることによって、コンフィグレーションライン305を設定し、ソフトウェアアプリケーションが、自身の必要性に従って、メモリバンクのサイズ及び動作を調整できるようになる。コンフィギュレーショントラッカ320は、ハードウェアレジスタ又はその他のメモリデバイスを含む。これらは、各メモリバンクがどのように設定されるのかを示すデータを保持することができる。
コンフィギュレーショントラッカ320に格納された値を検索するために、バンクセレクタ310は、コンフィギュレーショントラッカ320に接続される。バンクセレクタ310は、更に、アドレスライン303を介して、到来アドレスを受信する。図4に関して更に説明するように、バンクセレクタ310は、どのメモリバンクがキャッシュ比較のために選択されるのかを判定するために、到来アドレスから1又は複数のビットを抽出する。バンクセレクタ310は、到来アドレスで運ばれた情報を、制御ライン325A〜Dを介して、メモリバンク330A〜Dのうちの何れか1つ又は全てに通信する。例示を簡素化するために、制御ライン325A〜Dのみを図示する。しかしながら、キャッシュアクセス上で選択されたメモリバンクを個々にイネーブルするために、バンクセレクタ310は更に各メモリバンクに接続される。
図3に例示する実施形態では、メモリバンク330A〜Dは、コンテンツアドレス可能メモリ(CAM)バンクかもしれない。例えば、CAMバンクはそれぞれ、64キロバイトのデータ又は命令を含み、4ウェイセット結合(associative)である。これは、各キャッシュアクセスが、CAMバンク内の4つのキャッシュタグ比較の結果になることを意味する。本説明はCAMバンクに注目しているが、キャッシュ技術によってアクセス可能な他のタイプのメモリバンクもまた利用されうることが注目されるべきである。
図示する実施形態では、4つのバンク330A〜Dを全てキャッシュとして利用することができる。あるいは、バンク330C及びバンク330Dのうちの一方又は両方を、アプリケーション用の追加ローカルメモリとして利用することができる。ここでは、以下に説明するように、4未満のキャッシュメモリバンクが必要である。メモリバンク330A〜Dは、出力ライン380A〜Dを介して、それぞれマルチプレクサ340に接続されている出力ポートを有している。メモリバンク330C及び330Dはまた、出力ライン385A及び385Bを介して、それぞれマルチプレクサ350に接続されている出力ポートをも有している。バンクセレクタ310は、制御ライン360を介して選択信号を送ることによって、バンク出力のうちのどれが、キャッシュ複合体300から出力されるのかを選択する。バンクセレクタ310は、信号ライン370を介して、どのバンクが現在キャッシュバンクとして使用されているのかを読み取る。メモリバンク330C,330Dは更に、ローカルメモリアドレスライン307を介して入力を受信する。
アドレスセレクタ322は、ローカルメモリアドレスライン307およびメモリバンク330C,330Dに接続されている。オプションとして、アドレスセレクタ322は、信号ライン324によって、コンフィギュレーショントラッカ320に接続されうる。この実施形態では、アドレスセレクタは、メモリバンク330C,330Dがキャッシュメモリとして使用されているとシグナルされると、ローカルメモリアドレスライン307を介した到来アドレスを無視する。しかしながら、メモリバンク330C,330Dがローカルメモリとして設定される場合、アドレスレンジセレクタ322は、ローカルメモリアドレスライン307を介した到来アドレスを受信する。アドレスレンジセレクタ322は、このアドレス値に基づいて、メモリバンク330C又はメモリバンク340Dを選択及び起動するかを決定する。アドレスレンジセレクタ322は、アドレスを受信し、このアドレスを、選択されたバンクへ転送する。更に、アドレスレンジセレクタ322は、イネーブルライン387を介してマルチプレクサ350へイネーブル信号を送ることによって、出力ライン385Aか出力ライン385Bかを選択する。図3は、4ウェイセット結合である64キロバイトメモリバンクに関連して説明されているが、本発明の教示は、他のサイズのメモリバンク及び他のセット結合も同様に考慮していることが注目されるべきである。一例として、最大3つのバンクまでを追加ローカルメモリとして利用することができる8つのメモリバンクが適用されうる。
キャッシュ複合体300は、他のメモリバンクがキャッシュアクセスモードで動作している一方、1又は2つのメモリバンクが非キャッシュアクセスモードで動作することを可能にすることが注目されるべきである。コンフィギュレーショントラッカ320は、バンク330A〜Cがキャッシュメモリバンクとして使用され、バンク330Dがローカルメモリとして使用されることを示すと仮定する。到来アドレスが、アドレスライン303を介してバンクセレクタ310に到着した場合、バンクセレクタ310は、コンフィギュレーショントラッカ320を読み、バンク330A、330B、又は330Cを起動すべきかを判定する。デュアルモードの例では、2の累乗に等しくないメモリバンク数が存在する場合、本発明のこの実施形態は、バランスされるようにキャッシュアクセスを分散させるために、バンク分散機能を実行することによって、メモリバンク間で実質的に等しい分散を達成する。図示する例では、アドレスタグフィールド内のビットに対する動作は、アドレスタグ内の特定のビットを直接利用するのではなく、適切なメモリバンクを選択するために適用される。そのような動作は、排他的論理和(XOR)回路又はモジュロ3リダクション回路を利用して行われ、図5に関して更に説明するような3つのメモリバンクのうちの1つを選択するために、アドレスタグフィールド内から、2ビット位置へビット数が低減される。
ローカルメモリアドレスライン307は、周知の方法で、メモリバンク330D内のエントリに直接アクセスするために使用される。例えば、非キャッシュメモリバンクはそれぞれ、メモリアドレスの範囲を表わす。到来アドレス値は、どの非キャッシュメモリバンクが選択されるかを決定する。例えば、到来アドレス値が、メモリバンク330Cによって表わされる範囲内にある場合、メモリバンク330Cが選択される。キャッシュ複合体300は、全キャッシュモードで、ローカルメモリモードで、あるいは、キャッシュモードとローカルメモリモードとの組み合わせで動作しうる。キャッシュ複合体300は、単に、コンフィギュレーショントラッカ320の値を変えることによって、動作モードを変えうる。この柔軟性によって、異なるキャッシュニーズを有するソフトウェアアプリケーションが、キャッシュバンクであるメモリバンクの数を適応させることによって達成される。
図4は、本発明に従ったキャッシュ複合体の1つの典型的な動作の更なる詳細を例示するブロック図400を示す。このブロック図400は、到来アドレス405、バンクセレクタ410、コンフィギュレーショントラッカ420、及びメモリバンク430A〜Dを示す。例示を簡略にするために、メモリバンク430Aの内容のみを示す。各メモリバンクは、4ウェイセット結合である。メモリバンク430Aに示すように、4ウェイのうちの2ウェイ、すなわち、ウェイ440A,440Dのみが例示されている。各キャッシュラインエントリ0、1、2、…127は、キャッシュタグ470及びキャッシュデータ480を有している。図4に示すように、キャッシュデータ480は、128のアドレス可能なバイトに分割される。
到来アドレス405は32ビットを有する。最上位の18ビットであるビット31〜14は、2つの目的に使用される。1つの目的は、どのメモリバンクがアクセスされるかを選択することである。バンクセレクタ410の更なる詳細が、図5を用いて説明される。もう1つの目的は、キャッシュタグ470が比較されるアドレスタグを提供することである。次の7ビットであるビット13〜7は、どのキャッシュラインエントリ0、1、2、…127が選択されるかを示す。オプションとして、最終の7ビットであるビット6〜0は、どのバイトがキャッシュデータ480内で選択されているかを示す。図4は、32ビットの到来アドレスを例示しているが、本発明の教示は、他のサイズのアドレスもまた考慮しうることが注目されるべきである。
一例として、32ビットの到来アドレスは、16進法のフォーマットで0xEFEF2102として表される値を有すると仮定する。バンクセレクタ410は、コンフィギュレーショントラッカ420を読み取ることにより、メモリバンクの設定を検索する。例えば、コンフィギュレーショントラッカ420は、8ビットレジスタでありうる。ここでは、ビット3〜0が、メモリバンク430A〜Dにそれぞれ対応する。例えば、ビット位置0のビット値が1である場合、対応するメモリバンクであるメモリバンク430Dが、キャッシュに用いられる。ビット値が0である場合、対応するメモリバンクがローカルメモリに使用される。コンフィギュレーショントラッカ420は、4つ全てのメモリバンク440A〜Dが現在、キャッシュのために動作可能であることを示しており、すなわち、4つのビット3〜0が全て1であると仮定する。コンフィギュレーショントラッカ420を読み取ることによって、バンクセレクタ410はまた、キャッシュ比較のためにどのメモリバンクが選択されるべきかを示すために、到来アドレス405のうちのビット15,14が考慮されるべきであると判定する。16進法のアドレス0xEFEF2102であるビット15,14は00であるので、メモリバンク430Aが選択され、イネーブルされる。
本発明の1つの実施形態では、コンフィギュレーショントラッカ420は、アドレスフィールド内のどのビット組み合わせが、バンク選択のため直接的あるいは間接的に使用されるべきかを特定するために、例えば4ビット、すなわちビット位置7〜4を含みうる。アドレスビットが直接的に使用される場合、到来アドレスから抽出されるビット値は、キャッシュアクセスに適切なメモリバンクを選択するために使用される。
一例として、コンフィギュレーショントラッカ420は、到来アドレスから直接的にビット組合せを選択するための技術として、ストライドパターンを指定しうる。ストライドパターンでは、連続する到来アドレスが、次のように、互いに関連している。連続するアドレスは、到来アドレス間の既知の量までインクリメントする独特のビットフィールドを持っている。従って、バンクセレクタ410は、連続したメモリアクセスを、4つのメモリバンクのうちのそれぞれに等しく分散するために、変化するビットフィールドを利用しうる。例えば、ストライドパターンが128バイトであり、キャッシュとして使用されるバンク数が4である場合、バンクセレクタ410は、キャッシュルックアップのための適切なバンクを選択するために、到来アドレス内のビット位置8及び7を利用するだろう。ストライドは2の累乗であり、メモリバンクの数は4であるので、バンクセレクタ410が、どのバンクにアクセスするのかに関する決定の根拠とするために、到来アドレスにおける2つのビット位置が使用される。ストライドパターンは、一般に、多くのMPEGビデオ規格のうちの1つに従ってデータを処理するソフトウェアアプリケーションが利用される場合に生じる。
この実施形態では、コンフィギュレーショントラッカ420のビット位置7〜4が符号化され、到来アドレス内の特定のビット位置に対応するストライドサイズが示されうる。コンフィギュレーショントラッカ420からの値に基づいて、バンクセレクタ410は、キャッシュアクセスを等しく分散するために、ストライドパターンに相当する到来アドレスから、適切なビット位置を選択する。要約すると、バンクセレクタ410は、どのメモリバンクをキャッシュとして読み書きするのかを決定するために、入力として、コンフィギュレーショントラッカ420の値に加えて、到来アドレスを採用する。
アドレスビットが間接的に使用される場合、バンクセレクタ410は、キャッシュアドレスのための適切なバンクを選択し、イネーブルするために、特定のビットに関する排他的論理和(XOR)リダクションロジック又はモジュロリダクション等のような、予め定めたバンク分散機能を実行する。更に図5について説明するように、バンクセレクタは、オプションとして、キャッシュメモリバンクとして現在設定されているバンクの数に基づいて、多くのバンク分散機能から選択する。
本発明の別の実施形態では、コンフィギュレーショントラッカ420は、バンクセレクタ410に、適切なメモリバンクを決定するためのバンク分散機能を選択させうる。コンフィギュレーショントラッカ420の値に依存して、バンクセレクタ410は、多くのバンク分散機能から1つを選択するだろう。バンクセレクタ内で、異なるバンク分散機能から選択する更なる詳細を、図5の説明と関連付けて以下に示す。
到来アドレス0xEFEF2102の例に戻って、バンク選択動作を説明する。到来アドレスのビット15及び14は、ビット値00を含んでいる。これらの値は、結果として、メモリバンク430Aを選択するバンクセレクタ410となる。到来アドレスのビット13〜7は、ウェイ440A〜D内のキャッシュライン2を選択するためのビット値0000010を含んでいる。到来アドレスのビット6〜0は、検索用のバイト2を指定するためのビット値0000010を含んでいる。ビット31〜14は、アドレスタグを構成し、一致があるか判定するために、各ウェイ440A〜Dのキャッシュライン2で見つかったキャッシュタグと比較される。一致がある場合には、一致したセットのキャッシュデータ480におけるバイト2が、出力用に検索される。このバイト選択は、選択されたキャッシュラインの全体のキャッシュデータ部が出力用に検索されるようには利用されないかもしれないことが注目されるべきである。
図5は、本発明の教示に従ったバンクセレクタの典型的な動作を例示するブロック図500である。ブロック図500は、到来アドレスを保持するアドレスレジスタ505と、バンクセレクタ310,410として適切に使用することができるバンクセレクタ510とを含むバンクセレクタ510は、マルチプレクサ550、モジュロ機能回路540、及び、結合論理回路530を含んでいる。マルチプレクサ550は、出力560に結合するための4つの入力525A〜Dを受け取る。各入力はそれぞれ、異なるバンク分散機能に対応する。メモリバンクの現在の設定に基づいて、結合論理回路530は、4つの入力のうちのどの1つが、出力560に経路付けられるべきかを決定する選択信号を生成する。出力560は、4つのメモリバンク330A〜Dのうちのどの1つがキャッシュアクセスのためにイネーブルされるかを示す2ビット値を含んでいる。この2ビット値は、選択信号360を生成するために使用される。更に、出力560はまた、イネーブルされたキャッシュバンク内で見つけられたタグと比較されるアドレスタグをも含みうる。イネーブルされたキャッシュバンクへのアクセス後、イネーブルされたキャッシュバンクの電源が落とされうる。
結合論理回路530は、信号ライン527を介して入力を受け取る。信号ライン527は、信号ライン370と適切に類似しうる。結合論理回路530は、アドレス入力505とは独立した選択信号533を生成する。図5に例示する実施形態では、信号ライン527は、どのバンクが現在キャッシュとして設定されているか、及び、どのバンクが現在ローカルメモリとして設定されているかを示す4つの入力を含みうる。4つのメモリバンクの場合には、結合論理回路530は、それぞれが特定のメモリバンクを表す4つの入力を、どの入力信号525A〜Dが出力560に結合されるかを選択する信号へ変換する。例えば、4つのバンクのうちの1つのバンクのみがキャッシュとして利用されることをコンフィギュレーショントラッカ320が示した場合、入力信号525Aに対応する直接選択可能な機能が選択され、入力信号525Aが出力560に接続される。
2つのバンクがキャッシュとして利用されることをコンフィギュレーショントラッカ320が示した場合、入力信号525Bに対応する直接選択可能な機能が選択され、もって、入力信号525Bが出力560に接続されるだろう。3つのバンクがキャッシュとして利用されることをコンフィギュレーショントラッカ320が示した場合、入力信号525Cに対応するバンク分散機能が選択され、もって、入力信号525Cが出力560に接続されるだろう。4つのバンクが全てキャッシュとして利用されることをコンフィギュレーショントラッカ320が示した場合、入力信号525Dに対応する直接選択可能な機能が選択され、もって、入力信号525Dが出力560に接続されるだろう。図5では示されていないが、選択されたキャッシュバンクをイネーブルするために、出力560の2ビット値は、一般に、各メモリバンクで見つけられたイネーブルなクロックに結合するイネーブル信号へ変換されうる。
入力525Aが選択された場合、唯一のバンクがキャッシュとして設定され、この入力525Aが、“00”からなる2ビット値へハードワイヤされる。この値は、バンクI、すなわち、例えばバンク330A又は430Aに相当するだろう。この直接選択可能な機能は、ハードワイヤ選択機能の例である。
入力525Bが選択された場合、2つのバンクがキャッシュとして設定される。この場合、ハードワイヤされた“0”値と結合する到来アドレスのビット14が、2つのキャッシュバンクのどれがイネーブルされるべきかを判定する。このバンク分散機能は、ビット選択可能な機能の例である。
入力525Cが選択された場合、3つのバンクがキャッシュとして設定される。キャッシュバンクの数が2の累乗でない場合、切迫したキャッシュアドレスのために、3つのキャッシュバンクのうちのどの1つをイネーブルするかを選択するために、モジュロ機能回路540が利用され、タグ値、すなわちビット31〜14を、値0,1,2を有する2ビットへのモジュロ3リダクションが実行される。このバンク分散機能は、モジュロバランス機能の例である。一般に、モジュロ機能回路540は、多くのメモリバンクから選択することができ、到来アドレス内の複数のビットを、ビット値に変換する任意の結合論理回路を備えうる。モジュロ機能540への入力として少なくとも5より多いビットを有しており、タグ値が等しく分散されたと仮定することは、キャッシュメモリとして設定されたバンク間のキャッシュアクセスの実質的に等しい分散になるべきである。例えば、モジュロ機能回路540への入力のために5ビットを用いて、25又は32のサンプルが可能である。モジュロ3回路を用いて3つのキャッシュバンクへ等しく分散する32のユニークなサンプルは、バンク0及びバンク1において34.4%の分散であり、バンク2において31.2%の分散である場合、11のアクセスを有するバンク0と、11のアクセスを有するバンク1と、10のアクセスを有するバンク2との結果になるであろう。
オプションの選択信号529は、モジュロ機能回路540内の複数のモジュロ変換演算のうちの1つを選択するために利用されうることが注目されるべきである。そして、オプションの選択信号529は、4を超えるメモリバンクが存在し、かつ、キャッシュとして現在設定されているメモリバンクの数が、2の累乗ではない状況で利用されるだろう。例えば、8つのメモリバンクがあり、それらのバンクのうちの6つだけがキャッシュとして利用される場合、オプションの選択信号529は、モジュロ機能回路540内のモジュロ6回路を選択するだろう。モジュロ機能回路540は、モジュロ3、モジュロ5、モジュロ6、及びモジュロ7を取り扱うための典型的な回路を含むだろう。しかしながら、8を越えるメモリバンクサイズのために、他のモジュロ機能がサポートされうる。
入力525Dが選択された場合、4つのバンクがキャッシュとして設定される。この例では、4つのキャッシュバンクのうち、次のキャッシュ一致演算をイネーブルする何れか1つのキャッシュを選択するために、到来アドレスのビット15及び14が利用される。この直接選択可能機能は、ビット選択可能な機能の別の例である。
図6は、本発明の教示に従ってキャッシュメモリとして割り当てられるメモリバンク数を操作する方法600を例示するフローチャートである。ステップ610では、この方法は、どのメモリバンクが現在キャッシュとして設定され、もしあれば、どのメモリバンクが現在ローカルメモリとして設定されているかを追跡する。ステップ620では、この方法は、例えばモジュロ機能回路540によって提供されるバンク分散機能のように、キャッシュアクセス用のメモリバンクを選択するために使用されるバンク分散機能を提供する。ステップ670では、2つの並列したメモリアクセス経路のうちの1つが起こりうる。第1のアクセス経路では、到来アドレスが、ローカルメモリアドレスライン307を介して到着し、メモリに対するキャッシュアクセスがないことを示す。この状況は、1又は複数のメモリバンクがローカルメモリとして設定されていると想定する。この場合、方法はステップ680に進む。ステップ680では、選択されるメモリバンクが、到来アドレスの値によって決定される。到来アドレスが、メモリバンクによって定められたアドレスの範囲内にある場合、メモリバンクが選択される。ローカルメモリバンクにアクセスした後、方法はステップ670に進み、アドレスライン307又は303を介した次の到来アドレスを待つ。
第2のアクセス経路では、到来アドレスが、アドレスライン303を介して到着し、キャッシュアクセスを示す。第2のアクセス経路では、ステップ670はステップ630に移る。ステップ630では、到来アドレスを受け取ると、方法600は、どのメモリバンクがキャッシュとして設定されるかを判定する。それを行っている間、キャッシュアクセス用の特定のキャッシュメモリバンクを選択するためのバンク分散機能も決定される。ステップ640では、適切なキャッシュバンクを選択しイネーブルするために、方法600は、到来アドレスに対してバンク分散機能を適用する。ステップ650では、方法600は、適切なキャッシュバンク内にキャッシュタグ及びキャッシュデータを有するキャッシュラインを選択するために、到来アドレスの第1の部分を利用する。ステップ660では、方法600は、キャッシュヒット又はキャッシュミスがあるかを判定するために、到来アドレスの第2の部分を、キャッシュタグと比較する。キャッシュアクセスを完了すると、方法はステップ670に進み、アドレスライン303又は307を介して次の到来アドレスを待つ。
本発明は実施形態に関して説明されているが、上記説明、及び特許請求の範囲と一貫した種々の広範な実施が、当業者によって適用されうることが認識されるだろう。
図1は、本発明の実施形態が有利に適用されうる典型的な無線通信システムの例示である。 図2は、本発明の実施形態が有利に適用されうるプロセッサ複合体の例示である。 図3は、本発明の実施形態に従ったキャッシュ複合体の例示である。 図4は、図3に示すキャッシュ複合体の典型的な動作を図示するブロック図である。 図5は、本発明の実施形態に従ったバンクセレクタの典型的な動作を図示するブロック図である。 図6は、本発明の実施形態に従ってキャッシュメモリとして割り当てられるメモリバンクの数を操作する方法を図示するフローチャートである。

Claims (24)

  1. 複数のメモリバンクのうち、一部のメモリバンクをキャッシュメモリとして割り当て、残りのメモリバンクを非キャッシュメモリとして割り当てる装置であって、
    前記メモリバンクの全数のうちの第1の部分をキャッシュメモリとして、前記メモリバンクの全数のうちの第2の部分を非キャッシュメモリとして設定するコンフィギュレーショントラッカと、
    到来するアドレスを受け取るバンクセレクタであって、前記第1の部分のメモリバンク数が2より大きく、かつ、2の累乗ではない場合に、前記第1の部分を構成するバンク数に基づいて、バンク分散機能を適用し、前記第1の部分のメモリバンクによるキャッシュアクセスを、バランスするように分散させるバンクセレクタと
    を備える装置。
  2. 前記コンフィギュレーショントラッカは更に、前記メモリバンクの全数のうちのどれが現在キャッシュメモリとして動作しているのかを表示する情報を受け取る入力部を備え、
    前記コンフィギュレーショントラッカは、前記コンフィギュレーショントラッカの入力部で表示を受け取ると、複数のメモリバンクを再設定する請求項1に記載の装置。
  3. 前記バンクセレクタは、前記到来するアドレスに対応する第1の部分のうちの1つのバンクのみをイネーブルする請求項1に記載の装置。
  4. 前記適用されたバンク分散機能は、ハードワイヤード選択機能である請求項1に記載の装置。
  5. 前記適用されたバンク分散機能は、ビット選択可能な機能である請求項1に記載の装置。
  6. 前記適用されたバンク分散機能は、ストライドパターンに基づく請求項1に記載の装置。
  7. 前記適用されたバンク分散機能は、排他的論理和(XOR)バンク分散機能である請求項1に記載の装置。
  8. 前記適用されたバンク分散機能は、モジュロバランス機能である請求項1に記載の装置。
  9. 集積回路チップ上に配置される請求項1に記載の装置。
  10. 前記バンクセレクタは、多数のバンク分散機能から選択する請求項1の装置。
  11. 前記バンクセレクタは、各メモリバンクを直接選択可能な第1のモード、及び、前記バンク分散機能が適用される第2のモードで動作する請求項1に記載の装置。
  12. N個のメモリバンクのうち、2を超えるメモリバンクをキャッシュメモリとして割り当て、残りのメモリバンクを非キャッシュメモリとして割り当てる方法であって、
    A個のメモリバンクがキャッシュメモリであり、B、ただしB≧1、のメモリバンクが非キャッシュメモリである適用を決定することと、
    前記A個のキャッシュメモリの各々に対するキャッシュアクセスがバランスされることを保証するバンク分散機能を適用することと
    を備える方法。
  13. 到来するアドレスを受け取ることを更に備え、
    前記適用するステップは、前記到来するアドレスのうちの1又は複数のビットを、前記バンク分散機能に適用する請求項12に記載の方法。
  14. 第2の数である、ただしC>A、のメモリバンクがキャッシュメモリとなるように、キャッシュされるメモリバンクの数を再設定することを更に備える請求項12に記載の方法。
  15. 第2の数である、ただしC<A、のメモリバンクがキャッシュメモリとなるように、キャッシュされるメモリバンクの数を再設定することを更に備える請求項12に記載の方法。
  16. 前記適用するステップは更に、前記キャッシュメモリにアクセスすることを備え、
    前記方法は更に、前記キャッシュメモリにアクセスする場合、前記キャッシュメモリ内の1つのバンクのみをイネーブルすることを備える請求項12に記載の方法。
  17. 第2の到来するアドレスを受け取ることと、
    前記第2の到来するアドレスからのビットを用いて、B個のメモリバンクからなる非キャッシュメモリにアクセスすることと
    を更に備える請求項13に記載の方法。
  18. 前記バンク分散機能は、排他的論理和(XOR)又はモジュロバランス機能である請求項12に記載の方法。
  19. N個のメモリバンクのうち、2を超えるメモリバンクをキャッシュメモリとして割り当て、残りのメモリバンクを非キャッシュメモリとして割り当てる装置であって、
    個のメモリバンクがキャッシュメモリであり、B、ただしB≧1、のメモリバンクが非キャッシュメモリである適用を決定する手段と、
    前記A個のキャッシュメモリの各々に対するキャッシュアクセスがバランスされることを保証するバンク分散機能を適用する手段と
    を備える装置。
  20. 到来するアドレスを受け取る手段を更に備え、
    前記適用する手段は、前記到来するアドレスのうちの1又は複数のビットを、前記バンク分散機能に適用する請求項19に記載の装置。
  21. キャッシュメモリのバンク数を再設定する手段を更に備える請求項19に記載の装置。
  22. 前記適用する手段は更に、前記キャッシュメモリにアクセスする手段を備え、
    前記装置は更に、前記キャッシュメモリにアクセスする場合、前記メモリバンク内の1つのバンクをイネーブルする手段を備える請求項19に記載の装置。
  23. 第2の到来するアドレスを受け取る手段と、
    前記第2の到来するアドレスからのビットを用いて、B個のメモリバンクからなる非キャッシュメモリにアクセスする手段と
    を更に備える請求項19に記載の装置。
  24. 前記バンク分散機能は、排他的論理和(XOR)又はモジュロバランス機能である請求項19に記載の装置。
JP2007552267A 2005-01-21 2006-01-20 メモリバンクを動的に管理する方法及び装置 Expired - Fee Related JP4173192B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/040,600 US8443162B2 (en) 2005-01-21 2005-01-21 Methods and apparatus for dynamically managing banked memory
PCT/US2006/001934 WO2006078837A2 (en) 2005-01-21 2006-01-20 Methods and apparatus for dynamically managing banked memory

Publications (2)

Publication Number Publication Date
JP2008529132A JP2008529132A (ja) 2008-07-31
JP4173192B2 true JP4173192B2 (ja) 2008-10-29

Family

ID=36423520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007552267A Expired - Fee Related JP4173192B2 (ja) 2005-01-21 2006-01-20 メモリバンクを動的に管理する方法及び装置

Country Status (11)

Country Link
US (1) US8443162B2 (ja)
EP (1) EP1849081B1 (ja)
JP (1) JP4173192B2 (ja)
KR (1) KR100890123B1 (ja)
CN (1) CN101137968A (ja)
AT (1) ATE479943T1 (ja)
DE (1) DE602006016558D1 (ja)
IL (1) IL184683A0 (ja)
MX (1) MX2007008823A (ja)
TW (1) TW200702992A (ja)
WO (1) WO2006078837A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7653070B2 (en) * 2005-06-07 2010-01-26 Broadcom Corporation Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置
US8407399B2 (en) * 2008-10-29 2013-03-26 Sandisk Il Ltd. Method and apparatus for enforcing a flash memory caching policy
US20120303897A1 (en) * 2011-05-28 2012-11-29 Sakthivel Komarasamy Pullagoundapatti Configurable set associative cache way architecture
US8843709B2 (en) * 2011-11-28 2014-09-23 Mediatek Inc. Method and apparatus for performing dynamic configuration
FR2985825B1 (fr) 2012-01-13 2014-12-05 Commissariat Energie Atomique Systeme et procede de gestion de correspondance entre une memoire cache et une memoire principale
US9734079B2 (en) * 2013-06-28 2017-08-15 Intel Corporation Hybrid exclusive multi-level memory architecture with memory management
US9465735B2 (en) * 2013-10-03 2016-10-11 Qualcomm Incorporated System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity
KR102219288B1 (ko) * 2013-12-09 2021-02-23 삼성전자 주식회사 캐시 모드 및 메모리 모드 동작을 지원하는 메모리 장치 및 이의 동작 방법
US9355038B2 (en) * 2014-09-11 2016-05-31 Qualcomm Incorporated Cache bank spreading for compression algorithms
US9720827B2 (en) * 2014-11-14 2017-08-01 Intel Corporation Providing multiple memory modes for a processor including internal memory
BR112019015681B1 (pt) 2017-01-31 2023-10-31 Hewlett-Packard Development Company, L.P Arranjo de memória para uma matriz de ejeção de fluido, matriz de ejeção de fluido e cartucho de fluido

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410669A (en) 1993-04-05 1995-04-25 Motorola, Inc. Data processor having a cache memory capable of being used as a linear ram bank
US5854761A (en) * 1997-06-26 1998-12-29 Sun Microsystems, Inc. Cache memory array which stores two-way set associative data
US6108745A (en) * 1997-10-31 2000-08-22 Hewlett-Packard Company Fast and compact address bit routing scheme that supports various DRAM bank sizes and multiple interleaving schemes
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038673A (en) 1998-11-03 2000-03-14 Intel Corporation Computer system with power management scheme for DRAM devices
US6606686B1 (en) * 1999-07-15 2003-08-12 Texas Instruments Incorporated Unified memory system architecture including cache and directly addressable static random access memory
DE60042640D1 (de) 1999-12-17 2009-09-10 Nxp Bv Datenprozessor mit cachespeicher
US6532185B2 (en) 2001-02-23 2003-03-11 International Business Machines Corporation Distribution of bank accesses in a multiple bank DRAM used as a data buffer
US7020762B2 (en) 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
US7643632B2 (en) * 2004-02-25 2010-01-05 Ternarylogic Llc Ternary and multi-value digital signal scramblers, descramblers and sequence generators

Also Published As

Publication number Publication date
KR20070101340A (ko) 2007-10-16
ATE479943T1 (de) 2010-09-15
CN101137968A (zh) 2008-03-05
TW200702992A (en) 2007-01-16
EP1849081A2 (en) 2007-10-31
EP1849081B1 (en) 2010-09-01
WO2006078837A3 (en) 2006-10-12
US20060168390A1 (en) 2006-07-27
IL184683A0 (en) 2007-12-03
US8443162B2 (en) 2013-05-14
KR100890123B1 (ko) 2009-03-24
WO2006078837A2 (en) 2006-07-27
DE602006016558D1 (de) 2010-10-14
MX2007008823A (es) 2007-09-07
JP2008529132A (ja) 2008-07-31

Similar Documents

Publication Publication Date Title
JP4173192B2 (ja) メモリバンクを動的に管理する方法及び装置
US9996466B2 (en) Apparatus, system and method for caching compressed data
US7409502B2 (en) Selective cache line allocation instruction execution and circuitry
US9239799B2 (en) Memory management unit directed access to system interfaces
US6430655B1 (en) Scratchpad RAM memory accessible in parallel to a primary cache
US7330936B2 (en) System and method for power efficient memory caching
JP4006436B2 (ja) 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ
US8819342B2 (en) Methods and apparatus for managing page crossing instructions with different cacheability
US9063860B2 (en) Method and system for optimizing prefetching of cache memory lines
US8954676B2 (en) Cache with scratch pad memory structure and processor including the cache
US11113145B2 (en) Memory device, semiconductor device, and semiconductor system
JP2013232210A (ja) キャッシュライン置換のためのシステムおよび方法
CN106030549A (zh) 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统
EP2524314B1 (en) System and method to access a portion of a level two memory and a level one memory
US6973540B2 (en) Method and apparatus for selecting cache ways available for replacement
US20040199723A1 (en) Low-power cache and method for operating same

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080630

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: 20080715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080812

R150 Certificate of patent or registration of utility model

Ref document number: 4173192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

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

LAPS Cancellation because of no payment of annual fees