JP2010539598A - n−ウェイキャッシュを用いるシステムおよび方法 - Google Patents

n−ウェイキャッシュを用いるシステムおよび方法 Download PDF

Info

Publication number
JP2010539598A
JP2010539598A JP2010524953A JP2010524953A JP2010539598A JP 2010539598 A JP2010539598 A JP 2010539598A JP 2010524953 A JP2010524953 A JP 2010524953A JP 2010524953 A JP2010524953 A JP 2010524953A JP 2010539598 A JP2010539598 A JP 2010539598A
Authority
JP
Japan
Prior art keywords
way
cache
instruction
loop
value
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
JP2010524953A
Other languages
English (en)
Other versions
JP5254342B2 (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 JP2010539598A publication Critical patent/JP2010539598A/ja
Application granted granted Critical
Publication of JP5254342B2 publication Critical patent/JP5254342B2/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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • 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/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

n−ウェイキャッシュを用いるシステムおよび方法が開示される。一実施例において、方法は、キャッシュに格納された第1の命令の第1のウェイを決定することと、第1のウェイをウェイリストに格納することとを含む。また、本方法は前記キャッシュに格納された第2の命令の第2のウェイを決定することと、第2のウェイをウェイの前記リストに格納することとを含む。一実施例において、第1のウェイは、第1の命令を含む第1のキャッシュラインにアクセスするために用いられ、第2のウェイは、第2の命令を含む第2のキャッシュラインにアクセスするために用いられる。

Description

本開示は、一般に、n−ウェイキャッシュを用いるシステムおよび方法に関する。
科学技術の進展により、より小さくより強力なパーソナル計算機器が生まれてきた。例えば、現在、小型軽量で携帯容易な携帯無線電話機、携帯情報端末(PDA)、ページング機器のような、無線計算機器を含む携帯パーソナル計算機器が存在する。より詳細には、携帯電話およびIP電話のような携帯無線電話機は、無線ネットワーク上で音声およびデータパケットを伝達できる。さらに、多くのそのような無線電話機はそこに組み込まれる他の形式の機器を含む。例えば、無線電話機はディジタルスチルカメラ、ディジタルビデオカメラ、ディジタルレコーダ、およびオーディオファイルプレーヤも含むかもしれない。また、そのような無線電話機はインターネットにアクセスするために用いられるウェブインタフェースを含むかもしれない。したがって、これらの無線電話機には優れた計算能力がある。
通常、これらの機器は、より小さくより強力になるとともに、ますます資源が制約されることになる。例えば、画面サイズ、利用可能なメモリーおよびファイルシステム空間の量、並びに入出力容量は機器が小型であることによる制約を受けるかもしれない。さらに、バッテリー形状、バッテリーが供給する電力量、およびバッテリーの寿命も制限される。機器のバッテリー寿命を延ばす1つの方法は、機器内のプロセッサによって実行されるデータ操作で消費される電力を減少させることである。
通常、プロセッサは記憶容量は小さいが、高速アクセス時間を提供するメモリーキャッシュを含む。通常、このメモリーキャッシュは要求されるメモリーアドレスの一部を用いてインデックスをつけられる。メモリーキャッシュの一例は、各インデックス値に関係づけられた複数のキャッシュラインを格納するn−ウェイキャッシュである。n−ウェイキャッシュを用いて、要求されたデータが、特定のインデックス値に対するn−ウェイキャッシュの特定のウェイに格納されているかどうかを判定するために、通常、複数の比較が実行される。複数の比較は電力および限られた処理資源を消費する。
従って、n−ウェイキャッシュを用いる改良されたシステムおよび方法を提供することは有益であるだろう。
特定の実施例において、マルチウェイキャッシュに格納された第1の命令の第1のウェイを決定することを含む方法が開示される。本方法は、ウェイリスト内に第1のウェイを格納することを含む。本方法は、マルチウェイキャッシュに格納された第2の命令の第2のウェイを決定することも含む。本方法は、前記ウェイリスト内に第2のウェイを格納することをさらに含む。
別の実施例において、ウェイテーブルにウェイ値を格納することを含む一方法が開示される。このウェイ値はn−ウェイキャッシュからの順次データ読み出し操作に関連している。前記順次データ読み出し操作は処理ループの第1の反復に対応する。本方法は、処理ループの次の反復操作の間にウェイテーブルからの順次データ読み出し操作に対するウェイ値を順次検索することも含む。
別の実施例において、複数のウェイを含むエントリーテーブルを含む機器が開示される。前記エントリーテーブルの各エントリーはn−ウェイキャッシュのウェイを特定する。本機器は、インデックスを有するアドレスを提供するためのプログラムカウンタも含む。前記インデックスおよびウェイはn−ウェイキャッシュ内の1つの命令の位置を特定する。
別の実施例において、アンテナおよびそのアンテナに接続された送受信機を含む無線機器が開示される。本無線機器は前記送受信機に接続されたプロセッサも含む。このプロセッサは、複数のウェイを含むエントリーテーブルを含むプロセッサ可読メモリーを有する。前記エントリーテーブルの各エントリーはn−ウェイキャッシュのウェイを特定する。前記プロセッサは、インデックスを有するプロセッサ命令のアドレスを提供するためのプログラムカウンタも含む。前記インデックスおよびウェイはn−ウェイキャッシュ内の1つのプロセッサ実行可能命令の位置を特定する。
n−ウェイキャッシュを用いるシステムおよび方法の複数の実施例によって提供される1つの特定の利点は、消電力操作、より速いキャッシュアクセス、またはその双方が得られるということである。
本開示の他の態様、利点、および特徴は以下の章、すなわち図面の簡単な説明、発明を実施するための形態、および特許請求の範囲、を含む出願全体を概観することによって明らかになるだろう。
本発明の、n−ウェイキャッシュを用いるためのシステムの一実施例のブロック図。 本発明の、n−ウェイキャッシュを用いる方法の一実施例のフロー図。 本発明の、n−ウェイキャッシュと共に用いられるデータ構造の図。 本発明の、n−ウェイキャッシュを用いる方法の別の実施例のフロー図。 本発明の、n−ウェイキャッシュを用いるためのシステムの別の実施例のブロック図。
詳細な説明
図1を参照して、例えばプロセッサの一部である機器100を示す。機器100はシステムオンチップ部分および外部メモリー110を含む。このシステムオンチップはキャッシュメモリー102およびプログラムカウンタ106を含む。キャッシュメモリー102は、ウェイトレース論理回路104、タグアレイ120、およびデータキャッシュアレイ130を含むマルチウェイキャッシュである。特定の実施例において、データキャッシュアレイ130は命令キャッシュアレイであるかもしれない。
ウェイトレース論理回路104は、プログラムカウンタ106から入力するアドレスに応答する。プログラムカウンタ106からの各アドレスはタグ部分112およびインデックス部分114を含む。図1に示すような特定の例示的実施例において、プログラムカウンタアドレスは32ビットを有する。
ウェイトレース論理回路104はタグ迂回論理回路140および先入れ先出し(FIFO)メモリーアレイのようなウェイトレースバッファメモリー150を含む。タグ迂回論理回路140は制御信号118をタグアレイ120に出力する。特定の実施例において、前記制御信号118はインデックス値Ixとタグ値Txを含む。制御信号118のインデックス値およびタグ値がタグアレイの入力として提供され、その入力インデックス値に基づいて複数のタグ値を検索する。タグアレイ120から検索されたタグ値の各々は、複数のウェイの異なる1つに対応する。特定の実施例において、n−ウェイキャッシュはキャッシュの各インデックス値に関係づけられたn個のメモリー位置を含む。したがって、n−ウェイキャッシュに格納されたデータ値は、このインデックスおよびデータ値に関係づけられたウェイを特定する番号を用いることによって位置が決定される。特定の実施例において、タグアレイ120はn−ウェイキャッシュ102の一部である。
入力タグ値(Tx)は、ウェイトレース論理回路104において、タグアレイ120からの複数のタグの各々とインデックス値に基づいて比較され、合致するタグおよび関係する特定されたウェイを決定する。図1の特定の例示的例において、タグ値TxはウェイW2に対応する。この例において、特定されたウェイW2はタグアレイ120の出力122で出力され、そのウェイ出力122はウェイトレース論理回路104およびデータキャッシュアレイ130へ出力される。タグアレイ120が入力インデックス値(Ix)に関係づけられるいずれのウェイにおいてもタグ値Txに合致するタグを含まない場合、キャッシュミスが起こっており、命令を検索する要求は外部メモリー110に対してなされる。
ウェイトレース論理回路104は、特定されたウェイ値を入力した後に、出力132でインデックス値を出力する。これはデータキャッシュアレイ130の入力端に供給される。さらに、ウェイトレース論理回路104は、ウェイトレースバッファメモリー150から読み込まれる予め定められたウェイ値116も出力する。
データキャッシュアレイ130は複数の異なるウェイに従って特定される複数の計算機実行可能命令を含む。例えば、図1に示すように、4つの異なるウェイが示され、各ウェイは計算機実行可能命令のセットに対応する。したがって、データキャッシュアレイ130がインデックス値およびウェイ値を受けると、特定された計算機実行可能命令Dxがデータキャッシュアレイ130から検索され、出力134で出力される。インデックス値およびウェイ値に基づいて特定された計算機実行可能命令がデータキャッシュアレイ130で見つからない場合、キャッシュミスが起っており、命令を検索する要求が外部メモリー110に対してなされる。
いったん計算機実行可能命令134(Dx)がデータキャッシュアレイ130から出力されると、その計算機実行可能命令のウェイ値はトレースされ、ウェイトレース論理回路104内のエントリーテーブルに格納される。特定の実施例において、エントリーテーブルはウェイトレースFIFOバッファ150に格納され、図3に示すウェイテーブル304のように構成される。別の実施例において、ウェイトレースデータは計算機可読メモリー内にテーブルとしてもしくは単純なアレイとして、または専用レジスタ内に格納されるかもしれない。命令134がキャッシュメモリー102から出力されると、その命令は、ウェイトレース論理回路104への入力へも提供され、タグアレイ120から出力される関係するウェイ情報122と相互に関連され配列される。その結果そのような情報はウェイトレースFIFOバッファ150に格納される。この格納されたウェイトレース情報は後続の処理で用いられ、ウェイトレース論理回路104からデータキャッシュアレイ130へ特定のウェイ情報を送ることで、タグアレイから多数の値を検索することおよび関係するウェイを決定するための多数の照合操作を実行することに伴う付加的な計算を避けることにより、電力および処理資源を保存する。特定の実施例において、特定のウェイ情報はウェイ番号を含む。
特定の例示的実施例において、プログラムカウンタ106はインデックス114を有するアドレスを出力する。インデックス114およびn−ウェイキャッシュのウェイは、共同してデータキャッシュアレイ130内の特定の命令の位置を特定する。特定の実施例において、タグアレイ120は、インデックス値114に応答する入力118も有する。
さらに、ウェイトレース論理回路104は、例えばウェイトレースFIFOバッファ150を用いて、格納されたウェイ値を含むエントリーテーブルにアクセスできる。ウェイトレース論理回路104は、命令Dxに関係するウェイを決定するために、タグアレイ120から検索したタグ値112をプログラムカウンタ106から検索した対応するタグ値と比較する論理回路を含む。この照合論理回路を用いて、ウェイトレース論理回路104はタグアレイ120から検索したタグを検証し、認証できる。ウェイトレース論理回路104はタグアレイ120からのタグ値がプログラムカウンタ106からのタグ値に合致していることを判定した後、インデックス132およびウェイ116をデータキャッシュアレイ130へ出力する。
特定の例示的実施例において、ウェイのエントリーテーブル(例えばウェイトレースFIFOバッファ150)に格納された複数のウェイの各々は、n−ウェイデータキャッシュアレイ130内に格納された対応する複数の計算機実行可能命令に関係づけられた順に格納される。特定の実施例において、エントリーテーブルの最初のエントリーは命令のループの開始に対応する。命令のループの一例は、ディジタル信号プロセッサによって実行される処理ループである。そのような処理ループは多くの種々の用途においてディジタル信号プロセッサ機器によって用いられる。別の例において、計算機実行可能命令の1つはループに入ることに関係している。このように、ウェイトレースFIFOバッファ150は、特定のループ内の命令の各々を格納でき、また格納された情報を第1のパスからループを通じて用いることができ、これにより処理ループを通じて後続のパスの命令に対するウェイ値を検索することにより電力および処理資源を保存する。したがって、このような処理をより低い電力と低減されたコストで実行できる。
特定の実施例において、ウェイトレースFIFOバッファ150のエントリーテーブルは、n−ウェイデータキャッシュアレイ130に格納されたデータとは独立のメモリーとして実施される。ウェイトレースFIFOバッファ150に格納されたエントリーテーブルは、ウェイ値W2のようなウェイ値を含むが、ウェイトレースFIFOバッファ150はデータキャッシュアレイ130内にある計算機実行可能命令を含まない。
例えば、閉処理ループの開始へのジャンプを指示するループ終了パケットが検出された場合、ウェイトレース論理回路104は、ウェイトレースFIFOバッファ150に格納されたエントリーテーブルへの追加を開始する。ウェイトレースFIFOバッファ150に書き込まれる最初のエントリーは、検出されたループ終了パケットによって指示されるループ開始のアドレスである。ループの各命令がデータキャッシュアレイ130から順次検索される故、ウェイトレース論理回路104は、ウェイトレースFIFOバッファ150に、命令に関係づけられたウェイ値を格納する。
ループの間、ウェイ値がウェイトレースFIFOバッファ150に格納されている故に、ウェイトレース論理回路140は要求された命令のアドレスをウェイトレースFIFOバッファ150に格納されたループ開始アドレスと比較する。現在のループの反復が完了し次のループの反復が始まることを示すループ開始アドレスが検出されると、ウェイトレースFIFOバッファ150は、プロセッサによって要求される順に、ループ命令に関係づけられたウェイ値を追加されるだろう。ウェイトレース論理回路104はウェイトレースFIFOバッファ150からのウェイ値を読み出し始め、したがって後続するループの反復の間、タグアレイ120から操作の読み出しを実行することが少なくなる。
データキャッシュアレイ130の各ウェイは単一の命令を格納するとして述べているが、データキャッシュアレイ130の各ウェイが、キャッシュラインと呼ばれるデータのユニットに複数のデータワードまたは命令を格納しても良いことは明確に理解されるべきである。データキャッシュアレイ130における各データ読み出し操作では、複数の命令を含むキャッシュラインをリターンしても良い。このキャッシュラインから、要求される命令が検索される
図2を参照して、マルチウェイキャッシュに関する操作方法を例示する。この方法は、202に示すように、キャッシュに格納された第1の命令の第1のウェイを決定することを含む。この方法は、204に示すように、図1のウェイトレースFIFOバッファ150への格納のような、ウェイリストに前記第1のウェイを格納することをさらに含む。この方法は、206において、キャッシュに格納された第2の命令の第2のウェイを決定すること、および208において、ウェイリストに第2のウェイを格納することとをさらに含む。
特定の実施例において、本方法は、210に示すように、ループ終了パケットを検出することをさらに含む。ループ終了パケットは、命令の処理ループのパスまたは反復の終了を表すジャンプ命令のような特定の命令を検出することによって判定される。212において、本方法はループ終了パケットに関係づけられた特有アドレスを格納することをさらに含む。ループ終了パケットの検出後、本方法は214に示すようにウェイリストから検索した少なくとも1つのウェイにアクセスすることを含む。例えば、プロセッサがループの開始を参照している場合、図1のウェイトレース論理回路104のような論理回路は、ループの開始に関係づけられた格納されたウェイ情報をウェイリストから検索する。
216において、キャッシュ内の命令は検索された少なくとも1つのウェイに基づいてアクセスされる。例えば、検索されたウェイ値は、タグアレイ120のようなタグアレイの単一読み出しを実行するために用いられ、その命令が命令アレイに格納されておりキャッシュミスにならないことを確認する。次に、その命令を含む命令アレイのキャッシュラインを検索するために、検索されたウェイ値が用いられる。
特定の実施例において、本方法は、218において、命令に対するウェイ情報に加え、もしくは代わりに同一ライン(sameline)ビットまたは他の識別子を格納することを選択的に含むかもしれない。これにより、同じキャッシュラインがアクセスされた場合、タグアレイ内のエントリーは評価されない。同一ラインビットは、特定の命令が直前の先行命令と同じ命令アレイのキャッシュラインにあることを識別する。したがって、先行命令の検索が成功すると、同一ラインビットは、タグアレイを介してキャッシュミスに対する最初の検査をすることなしに、キャッシュからの後続命令を検索することを可能にする。例示的実施例において、同一ラインビットは、図4に示すような同一ラインビットアレイ406のような独立したビットアレイに格納される。
特定の実施例において、第1のウェイはタグアレイから検索したウェイ値に対応する。さらに、第2のウェイはタグアレイからのウェイ値として検索される。キャッシュはマルチウェイキャッシュとして説明されているが、キャッシュは、nが1より大きい値であるn−ウェイキャッシュとして説明されても良い。特定の実施例においてnは4である。さらに、ループ終了パケットに関係づけられた特有アドレスがアクセスされウェイリスト内に格納されることが理解されるべきである。このループ終了パケットに関係づけられた特有アドレスは、後続の処理に対してループ終了を特定する命令を特定するために用いられる。説明した方法を用いることによって、タグアレイの複数のタグを評価する代わりに、あらかじめ格納されたウェイリストからのウェイに応じてキャッシュ内の命令がアクセスされる。
特定の実施例において、開示されたシステムは、ディジタル信号プロセッサループを実行するためのタグアレイアクセスおよびタグ照合に起因する電力消費を抑圧するための低コストな方法を提供する。開示されたシステムおよび方法は、アクセスされたウェイのトレースは格納するがn−ウェイキャッシュからの特定の計算機実行可能命令は格納しないことにより、低電力操作をもたらす。ウェイリストに関連するハードウェア構造は所要面積および電力要求において低コストである。また、この構造は大きいプログラミングループのトレースを格納するためのキャッシュラインにアクセスする能力を提供する。さらに、FIFOについて言及してきたが、いかなる他の類似のハードウェア構造をウェイトレースデータの格納に用いてもよい。DSPループを通じて後続の処理をするためのウェイトレースデータを格納することによって、本方法はタグアレイのただ1つのウェイを読み出すだけでよく、したがって消費電力を低くする。また、システムがアクセス毎にキャッシュラインの部分を読み出すキャッシュにおいて、システムはタグアレイへのアクセスを必要としないように、キャッシュラインに対する同一ラインビットを格納しても良い。
図3を参照して、n−ウェイキャッシュと共に用いられるデータ構造の特定の例示的実施例を示し、一般的に、300で表す。システム300は例示的命令リスト302およびウェイテーブル304を含む。特定の実施例において、ウェイテーブル304は図1に示すウェイトレースFIFOバッファ150のようなFIFOバッファに格納される。
特定の実施例において、例示的命令リスト302は、DSPのようなプロセッサによって図1のキャッシュ102のようなキャッシュに要求された命令に対応するデータを表す。例示的命令リスト302は、命令アドレスの第1の列、ウェイ値の第2の列、および命令語の第3の列を含む。命令に関係づけられた命令アドレスおよびウェイは、キャッシュから要求された命令を含む対応するキャッシュラインにアクセスするために用いられる。例えば、例示的命令リスト302の最初のデータ行はウェイ3にある第1のアドレスA1を含み、対応する命令INSTR1はアドレスA1とウェイ3とに関係づけられたキャッシュラインの計算機命令語である。ウェイテーブル304での操作を例示するために、例示的命令リスト302が順次キャッシュ要求に関連したデータを示していることが理解されるべきである。例示的命令リスト302は、n−ウェイキャッシュと共に用いられる実際のテーブルまたはデータ構造に対応している必要はない。
図3の例示的実施例における例示的命令リスト302は、アドレスA1およびデータキャッシュアレイのウェイ3にある命令語INSTR1で始まり、アドレスA9、ウェイ1にある命令に続く9個の命令語を含む。
図3に示す特定の実施例のアドレスA9、ウェイ1にある命令は、ループ終了を示す特有パケットである。さらに、アドレスA9、ウェイ1にある命令は、アドレスA4へのジャンプコマンドを含む。特定の実施例において、アドレスA9にあるループ終了の特有パケットは、プロセッサループの各反復がアドレスA4にある命令で始まりアドレスA9にある命令で終了することを示す。
ウェイテーブル304はプロセッサで実行されるループにおいて順次アクセスされるキャッシュラインに対応する各ウェイ値に関係づけられたデータを含む。ウェイテーブル304の最初のエントリーはループ終了の特有パケットから検索されたアドレスA4である。ウェイテーブル304の以下の順次データの要素は、処理ループにおいてプロセッサによってキャッシュメモリーに要求された各順次キャッシュラインに関係づけられたウェイ値を示す。
例えば、アドレスA4にある命令に関係づけられたウェイ値は、命令リスト302に示すように、2である。同様に、ウェイテーブル304の最初のウェイデータ要素は数字2である。例示的命令リスト302に示す順次キャッシュライン検索を続けると、アドレスA5にあるキャッシュアクセスを引き起こす次の命令は、関連するウェイ0を有する。同様に、ウェイテーブル304の2番目のウェイデータ要素も0である。ウェイテーブル304は、アドレスA9、ウェイ1の命令で終了する処理ループ終了までの、プロセッサの順次キャッシュライン要求に対するウェイ値を含む。
特定の実施例において、命令の処理において例えばループ終了の特有パケットを介してループが検出されると、ウェイテーブル304は処理ループの次の反復の最初の命令のアドレスを取り込む。図3の例示的実施例において、最初の命令のアドレスはA4である。ウェイテーブル304は、データキャッシュアレイ130のようなキャッシュから検索される各順次キャッシュラインに対するウェイデータに対応するデータ値を続けて書き込まれる。また、ウェイテーブル304は、図1のタグアレイ120のようなタグアレイを介して決定される。
いったんウェイテーブル304が処理ループに対応するデータ値で生成されると、各検索されたキャッシュラインに対するウェイ値を決定するためのタグアレイへの付加的アクセスを必要とせずに、その処理ループの付加的反復が実行される。したがって、処理速度、電力消費量、および他の利益が得られる。
例示的命令リスト302およびウェイテーブル304を図3に示すが、例示的命令リスト302もウェイテーブル304も個別のテーブルまたはアレイとして実施される必要がないことが理解されるべきである。例えば、ウェイテーブル304は先入れ先出し(FIFO)バッファで実施されてもよい。別の例として、例示的命令リスト302に関係づけられているデータは任意の他のデータ構造もしくは複数の構造にも格納されるかもしれないし、または、プロセッサが要求される命令を要求し受け取ることができる限り、全く格納されないかもしれない。
図4を参照して、n−ウェイキャッシュと共に用いられるデータ構造の別の例示的実施例を示し、一般的に、400で表す。システム400は例示的命令リスト402、ウェイテーブル404、および同一ラインビットアレイ406を含む。一般に、例示的命令リスト402は図3に示す例示的命令リスト302に対応し、ウェイテーブル404は図3に示すウェイテーブル304に対応する。
特定の実施例において、同一ラインビットアレイ406は処理ループの各命令がそのループの先行する命令と同じキャッシュラインにあるかどうかを示すデータを格納する。図4の例において、処理ループは、アドレスA4、A5、A6、A7、A8にある命令、およびA9にあるループ終了命令を含む。アドレスA5、A6、およびA7にある命令は、命令キャッシュの同じキャッシュラインに格納される。これは、各命令を検索するために同じインデックスおよびウェイを命令キャッシュから用いることを意味する。
特定の実施例において、命令の処理においてループが検出されると、同一ラインビットアレイ406は、各命令に対してその命令が先行命令と同じキャッシュラインに格納されているかどうかを指示するデータ値を順次的に追加する。ループの各命令は、同一ラインビットアレイ406に、対応するビットを有する。これは論理的高レベル「1」または論理的低レベル「0」に設定される。命令が先行命令と異なるキャッシュラインに格納されると、同一ラインビットアレイ406に「0」が格納され、ウェイ値がウェイテーブル404に格納される。しかし、命令が先行命令と同じキャッシュラインに格納されると、同一ラインビットアレイ406に「1」が格納され、その命令に対してウェイテーブル404にエントリーがなされない。したがって、同一ラインビットアレイ406は処理ループの各命令に対するデータ値を含むが、ウェイテーブル404はループ内の命令の数より少ないウェイ値を含む。
例えば、アドレスA4にある最初のループ命令は同一ラインビットアレイ406に、この命令が先行キャッシュラインにはないことを示す「0」の対応エントリーを有する。タグアレイを介して検索されたA4にある命令に対するウェイ値「2」がウェイテーブル404の最初のウェイ格納位置に格納される。A5にある次の命令は、同一ラインビットアレイ406に、この命令がA4にある命令と異なるキャッシュラインにあることを示す「0」のエントリーを有する。この対応するウェイ値「0」がウェイテーブル404の2番目のウェイエントリーに格納される。以下のA6およびA7にある命令は、同一ラインビットアレイ406に「1」で示されるため、A5にある命令と同じキャッシュラインにあり、したがってウェイテーブル404内に対応するエントリーを有しない。A8およびA9にある最後の2つの命令は各々が別々のキャッシュラインにあり、ウェイテーブル404の対応する「2」および「1」のエントリーと共に同一ラインビットアレイ406の「0」エントリーによって示される。したがって、ループが6つの命令を含むにも拘わらず、僅か4個のウェイ値がウェイテーブル404に格納される。
いったんウェイテーブル404が処理ループに対応するデータ値を追加されると、その処理ループの付加的反復が、各検索されたキャッシュラインに対するウェイ値を決定するためのタグアレイへの付加的アクセスを必要とせずに、実行される。命令が検索される前に、命令がキャッシュに上書きされていないことを確実にするために、1つのインデックスおよびウェイ値がタグアレイに送られる。しかし、同一ラインビットアレイ406が、この命令が先行命令と同一キャッシュラインにあることを示す場合、タグアレイにおいてそのようなチェックが実行される必要はない。したがって複数の順次命令が同一のキャッシュラインにある場合、同一ラインビットアレイ406およびウェイテーブル404を用いるシステムは、同一ライン情報を記録しないシステムに較べ、メモリーの使用がより少なく、タグアレイ読み出し操作の実行がより少なくなる。
別の実施例において、同一ラインビットアレイ406の同一ラインデータおよびウェイテーブル404のウェイデータは単一のデータ構造に組み合わされても良い。例えば、ウェイテーブル404のようなテーブルは先行する命令と同じキャッシュラインにある各命令に対するウェイ値に加えて、もしくは代わりに「同一ライン」指標を格納しても良い。
図5を参照して、ウェイトレース情報を用いる方法の特定の例示的実施例を示し、一般的に、500で表す。502において、命令のアドレスが入力される。特定の実施例において、命令のアドレスはn−ウェイキャッシュへの入力端で入力される。特定の実施例において、504において、そのアドレスに関連づけられた1つのウェイが決定される。例えば、このウェイは図1のタグアレイ120のようなタグアレイから決定される。506において、命令が検索される。506において、命令は、図1のデータキャッシュアレイ130のようなデータキャッシュアレイから、命令アドレスおよび命令アドレスに関係づけられたウェイを用いて検索される。
本方法は判定ステップ508に続く。ステップ508において、処理ループに入っていることを命令が示すかどうかの判定がなされる。特定の実施例において、処理ループに入ることは、処理ループの最初の命令のアドレスを含む特有パケットによって示される。処理ループへ入ったことを命令が示さない場合、方法は502へ戻る。処理ループへ入ったことを命令が示す場合、方法は510へ続く。510において、処理ループの最初の命令のアドレスが入力される。
512に進み、要求された命令に対するウェイがタグアレイから決定され、次に516において対応するウェイがウェイテーブルに保存される。例示的一実施例において、ウェイテーブルは図3のウェイテーブル304である。別の例示的実施例において、ウェイテーブルはウェイ値に対するデータ格納部品、例えば図1のウェイトレースFIFOバッファ150、を含む。
処理は518へ続く。518において、要求された命令が検索される。520において、命令が処理ループの最初の反復の終了を示すかどうかの判定がなされる。命令が処理ループの最初の反復の終了を示さない場合、方法は510へ戻る。510において、ループの次の命令のアドレスが入力される。上記と異なり、命令が処理ループの最初の反復の終了を示す場合、処理ループの第2の反復が522で始まる。522において命令アドレスが入力される。
特定の実施例において、522で要求された命令は、処理ループの最初の反復の間に予め検索されており、したがって、ウェイテーブルに格納された対応するウェイを既に有している。524において、要求された命令に対応するウェイはウェイテーブルから決定される。
特定の実施例において、ウェイは526においてタグアレイを用いて確認される。例えば、1つ以上の他の処理は命令に上書きするキャッシュにデータ記入を実行する。要求された命令のインデックスおよびウェイに関係づけられたタグアレイからタグ値のみを検索することにより、その検索されたタグは、命令が上書きされていないことを確認するために、要求された命令のタグと比較される。特定の実施例において、特定の命令に対するキャッシュラインが直前の命令に対するものと同一である場合を示すために、同一ラインビットが用いられる。その場合、タグアレイを用いる確認ステップは、先行命令に対して実行されるだけでよい。
528において、アドレスからのインデックスとウェイテーブルからのウェイを用いて命令が検索される。530において、命令がプロセッサにループを出る論理処理分岐を実行させるかどうかの判定がなされる。命令がループ終了を引き起こさないという判定がなされる場合、方法は522へ戻る。上記と異なり、530において命令がループ終了を引き起こす場合、方法は502へ戻る。
図6はn−ウェイキャッシュを用いるシステムの一実施例のブロック図であり、携帯通信機器600として例示される。携帯通信機器600はウェイトレース論理回路670に接続されたn−ウェイキャッシュ660を含む。特定の実施例において、ウェイトレース論理回路670およびn−ウェイキャッシュ660は図1のキャッシュ102およびウェイトレース論理回路104を含む。また、例えば図3のウェイテーブル304のようなテーブルを用いてウェイトレースデータを格納し更新することによって、図2および図4に示す1つ以上の方法の少なくとも一部分を実行する。携帯通信機器600はディジタル信号プロセッサ610のようなプロセッサを含むオンチップシステム622を含む。このディジタル信号プロセッサ610は、図1乃至図5に関連して説明したように、ウェイトレース論理回路670に接続されたn−ウェイキャッシュ660を含む。特定の例示的一実施例において、ウェイトレース論理回路670が、ディジタル信号プロセッサ610のようなプロセッサおよびオンチップシステム622のようなシステムオンチップ機器の電力消費量を抑圧するため、処理速度を向上させるため、またはその双方のために用いられるかもしれない。
特定の実施例において、処理操作ループの間ディジタル信号プロセッサ610によって要求される各命令に対するウェイ情報を格納し検索することにより、処理の間、電力消費量が抑圧される。その結果、n−ウェイキャッシュ660から各命令を検索することに関係する多くのタグアレイアクセスおよび比較を減少させる。多くのタグアレイアクセスおよび比較を減少させることは、命令検索に関係する電力消費量を減少させる。同様に、各命令に対する多くのタグアレイアクセスおよび比較を減少させることは、n−ウェイキャッシュ660からの個々のまたは全体の命令検索時間を減少させる。
図6は、ディジタル信号プロセッサ610およびディスプレイ628に接続されたディスプレイ制御器626も示す。さらに、入力機器630がディジタル信号プロセッサ610に接続される。さらに、メモリー632がディジタル信号プロセッサ610に接続される。符号器/復号器(コーデック)634もディジタル信号プロセッサ610に接続されても良い。スピーカ636およびマイクロホン638がコーデック634に接続されても良い。
また、図6は、無線制御器640がディジタル信号プロセッサ610および無線アンテナ642に接続されても良いことを示す。特定の実施例において、電源644がオンチップシステム622に接続される。さらに、特定の実施例において、図6に示すように、ディスプレイ628、入力機器630、スピーカ636、マイクロホン638、無線アンテナ642、および電源644はオンチップシステム622の外部にある。しかし、各々はオンチップシステム622の部品に接続される。
特定の例示的実施例において、ウェイトレース論理回路670は携帯通信機器600の全体の性能を向上させるために用いられる。特に、ウェイトレース論理回路670は、処理ループの間、各検索された命令に関係する複数のキャッシュ読み出しおよび比較を行わない。その結果、バッテリーの寿命を延ばし、全体の電力効率を改善し、処理時間および資源利用を減少し、機器600の性能を向上させる。
n−ウェイキャッシュ660およびウェイトレース論理回路670をディジタル信号プロセッサ610の別々の部品として示したが、そうではなくn−ウェイキャッシュ660およびウェイトレース論理回路670は、図1のキャッシュ102のような単一のキャッシュユニットに集積されても良い、ということが理解されるべきである。同様に、複数のウェイトレース論理部品が、例えば単一処理ループの複数の処理パスに対して含まれても良い、ということが理解されるべきである。別の例において、ディジタル信号プロセッサ610の複数のキャッシュ、例えば専用命令キャッシュおよび専用データキャッシュ、に対して複数のウェイトレース論理部品が含まれても良い。また別の例として、マルチスレッド処理操作の1つ以上のスレッドに対する性能を向上させるために複数のウェイトレース論理部品が含まれても良い。
当業者は、ここに開示された実施例に関連して説明された種々の例示的論理ブロック、構成、モジュール、回路およびアルゴリズムのステップは、電子的ハードウェア、計算機ソフトウェア、またはその双方の組み合わせとして実施されるかもしれないことをさらに認識するだろう。ハードウェアとソフトウェアのこの互換性を明確に例示するために、種々の例示的部品、ブロック、構成、モジュール、回路、およびステップは、ここまで、それらの機能の面から一般的に説明してきた。そのような機能がハードウェアまたはソフトウェアとして実施されるかどうかは、全体のシステムに課せられた特定の用途および設計制約に依存する。当業者は、説明した機能を各特定の用途に対して異なる方法で実施するかもしれないが、そのような実施の決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
ここに開示された実施例に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサで実行されるソフトウェアモジュールで、またはその2つの組合せで具体化されるかもしれない。ソフトウェアモジュールはRAMメモリー、フラッシュメモリ、ROMメモリー、PROMメモリー、EPROMメモリー、EEPROMメモリー、レジスタ、ハードディスク、可搬形ディスク、CD−ROM、または当業者に既知の任意の他の形式の記憶媒体の中にあるかもしれない。代表的記憶媒体は、プロセッサが情報を記憶媒体から読み出しおよび情報を記憶媒体に書き込むことができるようにプロセッサに接続される。代替的には、記憶媒体はプロセッサの構成部品であるかもしれない。プロセッサおよび記憶媒体はASIC内にあるかもしれない。ASICは計算機器またはユーザ端末内にあるかもしれない。代替的に、プロセッサおよび記憶媒体は個別部品として計算機器またはユーザ端末内にあるかもしれない。
開示された実施例のこれまでの説明は、いかなる当業者も開示された実施例を製造しまたは使用することを可能にするように提供されている。これらの実施例への種々の変形は当業者に容易に明らかになるだろう。また、ここに定義した一般的原理は本開示の精神または範囲から逸脱することなく他の実施例に適用されるかもしれない。したがって、本開示は、ここに示した実施例に限定されることを意図されていず、以下の特許請求範囲によって定義される原理および新規な特徴に矛盾しない最も広い範囲に一致されるということである。

Claims (30)

  1. マルチウェイキャッシュ内に格納された第1の命令の第1のウェイを決定することと、
    ウェイリスト内に第1のウェイを格納することと、
    前記マルチウェイキャッシュ内に格納された第2の命令の第2のウェイを決定することと、
    前記ウェイリスト内に第2のウェイを格納すること、
    とを含む方法。
  2. 第1のウェイが、タグアレイから検索されたウェイ値を含む、請求項1に記載の方法。
  3. ループ終了パケットを検出することをさらに含む、請求項1に記載の方法。
  4. ループ終了パケットを検出した後に、ウェイリストからの少なくとも1つの検索されたウェイにアクセスすることをさらに含む、請求項3に記載の方法。
  5. 少なくとも1つの検索されたウェイに基づいてマルチウェイキャッシュ内の命令にアクセスすることをさらに含む、請求項4に記載の方法。
  6. マルチウェイキャッシュが、n−ウェイキャッシュであり、nが2より大きい、請求項5に記載の方法。
  7. nが4である請求項6に記載の方法。
  8. 第1のウェイおよび第2のウェイが、タグアレイから検索される、請求項7に記載の方法。
  9. マルチウェイキャッシュ内の命令が、タグアレイの複数のタグを評価することなく、少なくとも1つの検索されたウェイに応答してアクセスされる、請求項5に記載の方法。
  10. キャッシュラインの一部が読み出され、かつ同一キャッシュラインがアクセスされる場合にタグアレイ内のエントリーが評価されないように同一ラインビットを格納することをさらに含む、請求項9に記載の方法。
  11. ループ終了パケットに関係づけられた特有アドレスを格納することをさらに含む、請求項3に記載の方法。
  12. 複数のウェイを含むエントリーのテーブルであって、前記エントリーのテーブル内の各エントリーがn−ウェイキャッシュのウェイを特定する、テーブルと、
    インデックスを有するアドレスを提供するためのプログラムカウンタとを含み、
    前記インデックスおよび前記ウェイが前記n−ウェイキャッシュ内の命令の位置を特定する、
    機器。
  13. n−ウェイキャッシュが、インデックスに応答する入力を有するタグアレイを含む、請求項12に記載の機器。
  14. エントリーのテーブルへアクセスできるウェイトレース論理回路をさらに含む、請求項12に記載の機器。
  15. ウェイトレース論理回路が、n−ウェイキャッシュへの出力を提供する、請求項14に記載の機器。
  16. ウェイトレース論理回路が、タグアレイへウェイ項目およびインデックスを出力し、ウェイトレース論理回路が、タグアレイから検索されたタグ値をプログラムカウンタからの対応するタグ値と比較するための論理を含む、請求項15に記載の機器。
  17. ウェイトレース論理回路が、タグアレイから検索したタグ値がプログラムカウンタからの対応するタグ値と合致する判定をした後、ウェイ項目をn−ウェイキャッシュへ出力する、請求項16に記載の機器。
  18. 複数のウェイが、n−ウェイキャッシュ内に格納された対応する複数の計算機実行可能命令に関係づけられた順に格納される、請求項12に記載の機器。
  19. エントリーのテーブル内の第1のエントリーが、命令のループの開始に対応する、請求項18に記載の機器。
  20. 複数の計算機実行可能命令の1つが、命令のループの終了に関係づけられている、請求項19に記載の機器。
  21. エントリーのテーブルが、n−ウェイキャッシュ内に格納されたデータとは独立しており、エントリーのテーブルが、ウェイ値を格納するが計算機実行可能命令を格納しない、請求項12に記載の機器。
  22. エントリーのテーブルが、複数のウェイトレースを格納するための先入れ先出しバッファを含む、請求項12に記載の機器。
  23. ウェイテーブルにウェイ値を格納することであって、前記ウェイ値がn−ウェイキャッシュから順次データ読み出し操作に関係づけられ、前記順次データ読み出し操作が処理ループの第1の反復に対応する、ウェイ値を格納することと、
    前記処理ループの次の反復の間に、前記ウェイテーブルから前記順次データ読み出し操作に対するウェイ値を順次検索すること、
    とを含む方法。
  24. 処理ループの第1の反復の開始が、n−ウェイキャッシュからのループ終了命令の第1の検索に関係づけられ、処理ループの第1の反復の終了が、n−ウェイキャッシュからのループ終了命令の次の検索に関係づけられる、請求項23に記載の方法。
  25. n−ウェイのタグアレイからただ1つのキャッシュラインにアクセスするために少なくとも1つのウェイ値を用いることをさらに含む、請求項23に記載の方法。
  26. ウェイテーブルからの少なくとも1つのウェイ値を用いてn−ウェイキャッシュに格納されたデータにアクセスすることをさらに含む、請求項23に記載の方法。
  27. アンテナと、
    前記アンテナに接続された送受信機と、
    前記送受信機に接続されたプロセッサとを含み、
    前記プロセッサが、
    複数のウェイを含むエントリーのテーブルを含むプロセッサ可読メモリーであって、前記エントリーのテーブルの各エントリーがn−ウェイキャッシュのウェイを特定する、プロセッサ可読メモリーと、
    インデックスを有するプロセッサ命令アドレスを出力するプログラムカウンタとを含み、
    前記インデックスおよび前記ウェイが、n−ウェイキャッシュ内の処理実行可能命令のアドレスを特定する、
    無線機器。
  28. プロセッサが、ディジタル信号プロセッサである、請求項27に記載の無線機器。
  29. 音響データを符号化および復号するための手段と、
    画像情報を提供するための手段、
    とをさらに含む請求項27に記載の無線機器。
  30. 音響データを符号化および復号するための手段が、プロセッサに接続されマイクロホンおよびスピーカにさらに接続されたコーデックを含み、かつ画像情報を提供するための手段が、プロセッサに接続されディスプレイにさらに接続されたディスプレイ制御器を含む、請求項29に記載の無線機器。
JP2010524953A 2007-09-10 2008-09-10 n−ウェイキャッシュを用いるシステムおよび方法 Expired - Fee Related JP5254342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/852,348 US7827356B2 (en) 2007-09-10 2007-09-10 System and method of using an N-way cache
US11/852,348 2007-09-10
PCT/US2008/075822 WO2009036038A1 (en) 2007-09-10 2008-09-10 System and method of using an n-way cache

Publications (2)

Publication Number Publication Date
JP2010539598A true JP2010539598A (ja) 2010-12-16
JP5254342B2 JP5254342B2 (ja) 2013-08-07

Family

ID=40091877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010524953A Expired - Fee Related JP5254342B2 (ja) 2007-09-10 2008-09-10 n−ウェイキャッシュを用いるシステムおよび方法

Country Status (6)

Country Link
US (1) US7827356B2 (ja)
EP (2) EP2034415A1 (ja)
JP (1) JP5254342B2 (ja)
KR (1) KR101128160B1 (ja)
CN (2) CN102937936B (ja)
WO (1) WO2009036038A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015720B2 (en) * 2008-04-30 2015-04-21 Advanced Micro Devices, Inc. Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program
US8327198B2 (en) * 2009-08-14 2012-12-04 Intel Corporation On-die logic analyzer for semiconductor die
US8762644B2 (en) 2010-10-15 2014-06-24 Qualcomm Incorporated Low-power audio decoding and playback using cached images
US8635408B2 (en) * 2011-01-04 2014-01-21 International Business Machines Corporation Controlling power of a cache based on predicting the instruction cache way for high power applications
CN102637149B (zh) * 2012-03-23 2015-07-01 山东极芯电子科技有限公司 一种处理器及其运行方法
US9367468B2 (en) 2013-01-15 2016-06-14 Qualcomm Incorporated Data cache way prediction
TWI514145B (zh) * 2013-10-21 2015-12-21 Univ Nat Sun Yat Sen 可儲存除錯資料的處理器、其快取及控制方法
KR101502827B1 (ko) * 2014-03-20 2015-03-17 주식회사 에이디칩스 컴퓨터 시스템에서의 캐시 무효화 방법
US11176051B2 (en) * 2020-03-13 2021-11-16 Shenzhen GOODIX Technology Co., Ltd. Multi-way cache memory access
CA3200086A1 (en) 2020-11-25 2022-06-02 Identigen Limited A system and method for tracing members of an animal population

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001384A2 (en) * 2001-06-22 2003-01-03 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
US20040073749A1 (en) * 2002-10-15 2004-04-15 Stmicroelectronics, Inc. Method to improve DSP kernel's performance/power ratio
US20060047884A1 (en) * 2004-08-30 2006-03-02 Texas Instruments Incorporated System and method for power efficent memory caching
US20070113057A1 (en) * 2005-11-15 2007-05-17 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
WO2007096572A1 (en) * 2006-02-22 2007-08-30 Arm Limited Cache management within a data processing apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803095A1 (en) * 1994-10-14 1997-10-29 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
US20060090034A1 (en) * 2004-10-22 2006-04-27 Fujitsu Limited System and method for providing a way memoization in a processing environment
US20090055589A1 (en) * 2007-08-24 2009-02-26 Arm Limited Cache memory system for a data processing apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001384A2 (en) * 2001-06-22 2003-01-03 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
US20040073749A1 (en) * 2002-10-15 2004-04-15 Stmicroelectronics, Inc. Method to improve DSP kernel's performance/power ratio
US20060047884A1 (en) * 2004-08-30 2006-03-02 Texas Instruments Incorporated System and method for power efficent memory caching
US20070113057A1 (en) * 2005-11-15 2007-05-17 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
WO2007096572A1 (en) * 2006-02-22 2007-08-30 Arm Limited Cache management within a data processing apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN5010011478; Nicolaescu D.: '"Reducing Power Consumption for High-Associativity Data Caches in Embedded Processors"' PROCEEDINGS OF THE DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION (DATE'03) , 20030303, P. 1-5, IEEE COMPUTER SOCIETY *

Also Published As

Publication number Publication date
WO2009036038A1 (en) 2009-03-19
US7827356B2 (en) 2010-11-02
KR101128160B1 (ko) 2012-03-23
KR20100057683A (ko) 2010-05-31
EP2034415A1 (en) 2009-03-11
US20090070531A1 (en) 2009-03-12
EP2437176B1 (en) 2019-04-17
EP2437176A3 (en) 2012-08-01
CN102937936A (zh) 2013-02-20
CN101809547A (zh) 2010-08-18
CN101809547B (zh) 2013-11-13
JP5254342B2 (ja) 2013-08-07
CN102937936B (zh) 2015-09-16
EP2437176A2 (en) 2012-04-04

Similar Documents

Publication Publication Date Title
JP5254342B2 (ja) n−ウェイキャッシュを用いるシステムおよび方法
US8140823B2 (en) Multithreaded processor with lock indicator
JP5722389B2 (ja) キャッシュライン置換のためのシステムおよび方法
KR101132484B1 (ko) 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법
KR101503623B1 (ko) 캐싱된 이미지들을 이용하는 저전력 오디오 디코딩 및 재생
US20150143045A1 (en) Cache control apparatus and method
KR20100090703A (ko) 구성 가능한 전환 색인 버퍼
KR101095204B1 (ko) 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치
US10007613B2 (en) Reconfigurable fetch pipeline
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
US20130145097A1 (en) Selective Access of a Store Buffer Based on Cache State

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130417

R150 Certificate of patent or registration of utility model

Ref document number: 5254342

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

Year of fee payment: 3

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