(57)【要約】  ｎ−ウェイキャッシュを用いるシステムおよび方法が開示される。一実施例において、方法は、キャッシュに格納された第１の命令の第１のウェイを決定することと、第１のウェイをウェイリストに格納することとを含む。また、本方法は前記キャッシュに格納された第２の命令の第２のウェイを決定することと、第２のウェイをウェイの前記リストに格納することとを含む。一実施例において、第１のウェイは、第１の命令を含む第１のキャッシュラインにアクセスするために用いられ、第２のウェイは、第２の命令を含む第２のキャッシュラインにアクセスするために用いられる。
2010539598.tif 000002
【特許請求の範囲】
【請求項１】
マルチウェイキャッシュ内に格納された第１の命令の第１のウェイを決定することと、
ウェイリスト内に第１のウェイを格納することと、
前記マルチウェイキャッシュ内に格納された第２の命令の第２のウェイを決定することと、
前記ウェイリスト内に第２のウェイを格納すること、
とを含む方法。
【請求項２】
第１のウェイが、タグアレイから検索されたウェイ値を含む、請求項１に記載の方法。
【請求項３】
ループ終了パケットを検出することをさらに含む、請求項１に記載の方法。
【請求項４】
ループ終了パケットを検出した後に、ウェイリストからの少なくとも１つの検索されたウェイにアクセスすることをさらに含む、請求項３に記載の方法。
【請求項５】
少なくとも１つの検索されたウェイに基づいてマルチウェイキャッシュ内の命令にアクセスすることをさらに含む、請求項４に記載の方法。
【請求項６】
マルチウェイキャッシュが、ｎ−ウェイキャッシュであり、ｎが２より大きい、請求項５に記載の方法。
【請求項７】
ｎが４である請求項６に記載の方法。
【請求項８】
第１のウェイおよび第２のウェイが、タグアレイから検索される、請求項７に記載の方法。
【請求項９】
マルチウェイキャッシュ内の命令が、タグアレイの複数のタグを評価することなく、少なくとも１つの検索されたウェイに応答してアクセスされる、請求項５に記載の方法。
【請求項１０】
キャッシュラインの一部が読み出され、かつ同一キャッシュラインがアクセスされる場合にタグアレイ内のエントリーが評価されないように同一ラインビットを格納することをさらに含む、請求項９に記載の方法。
【請求項１１】
ループ終了パケットに関係づけられた特有アドレスを格納することをさらに含む、請求項３に記載の方法。
【請求項１２】
複数のウェイを含むエントリーのテーブルであって、前記エントリーのテーブル内の各エントリーがｎ−ウェイキャッシュのウェイを特定する、テーブルと、
インデックスを有するアドレスを提供するためのプログラムカウンタとを含み、
前記インデックスおよび前記ウェイが前記ｎ−ウェイキャッシュ内の命令の位置を特定する、
機器。
【請求項１３】
ｎ−ウェイキャッシュが、インデックスに応答する入力を有するタグアレイを含む、請求項１２に記載の機器。
【請求項１４】
エントリーのテーブルへアクセスできるウェイトレース論理回路をさらに含む、請求項１２に記載の機器。
【請求項１５】
ウェイトレース論理回路が、ｎ−ウェイキャッシュへの出力を提供する、請求項１４に記載の機器。
【請求項１６】
ウェイトレース論理回路が、タグアレイへウェイ項目およびインデックスを出力し、ウェイトレース論理回路が、タグアレイから検索されたタグ値をプログラムカウンタからの対応するタグ値と比較するための論理を含む、請求項１５に記載の機器。
【請求項１７】
ウェイトレース論理回路が、タグアレイから検索したタグ値がプログラムカウンタからの対応するタグ値と合致する判定をした後、ウェイ項目をｎ−ウェイキャッシュへ出力する、請求項１６に記載の機器。
【請求項１８】
複数のウェイが、ｎ−ウェイキャッシュ内に格納された対応する複数の計算機実行可能命令に関係づけられた順に格納される、請求項１２に記載の機器。
【請求項１９】
エントリーのテーブル内の第１のエントリーが、命令のループの開始に対応する、請求項１８に記載の機器。
【請求項２０】
複数の計算機実行可能命令の１つが、命令のループの終了に関係づけられている、請求項１９に記載の機器。
【請求項２１】
エントリーのテーブルが、ｎ−ウェイキャッシュ内に格納されたデータとは独立しており、エントリーのテーブルが、ウェイ値を格納するが計算機実行可能命令を格納しない、請求項１２に記載の機器。
【請求項２２】
エントリーのテーブルが、複数のウェイトレースを格納するための先入れ先出しバッファを含む、請求項１２に記載の機器。
【請求項２３】
ウェイテーブルにウェイ値を格納することであって、前記ウェイ値がｎ−ウェイキャッシュから順次データ読み出し操作に関係づけられ、前記順次データ読み出し操作が処理ループの第１の反復に対応する、ウェイ値を格納することと、
前記処理ループの次の反復の間に、前記ウェイテーブルから前記順次データ読み出し操作に対するウェイ値を順次検索すること、
とを含む方法。
【請求項２４】
処理ループの第１の反復の開始が、ｎ−ウェイキャッシュからのループ終了命令の第１の検索に関係づけられ、処理ループの第１の反復の終了が、ｎ−ウェイキャッシュからのループ終了命令の次の検索に関係づけられる、請求項２３に記載の方法。
【請求項２５】
ｎ−ウェイのタグアレイからただ１つのキャッシュラインにアクセスするために少なくとも１つのウェイ値を用いることをさらに含む、請求項２３に記載の方法。
【請求項２６】
ウェイテーブルからの少なくとも１つのウェイ値を用いてｎ−ウェイキャッシュに格納されたデータにアクセスすることをさらに含む、請求項２３に記載の方法。
【請求項２７】
アンテナと、
前記アンテナに接続された送受信機と、
前記送受信機に接続されたプロセッサとを含み、
前記プロセッサが、
複数のウェイを含むエントリーのテーブルを含むプロセッサ可読メモリーであって、前記エントリーのテーブルの各エントリーがｎ−ウェイキャッシュのウェイを特定する、プロセッサ可読メモリーと、
インデックスを有するプロセッサ命令アドレスを出力するプログラムカウンタとを含み、
前記インデックスおよび前記ウェイが、ｎ−ウェイキャッシュ内の処理実行可能命令のアドレスを特定する、
無線機器。
【請求項２８】
プロセッサが、ディジタル信号プロセッサである、請求項２７に記載の無線機器。
【請求項２９】
音響データを符号化および復号するための手段と、
画像情報を提供するための手段、
とをさらに含む請求項２７に記載の無線機器。
【請求項３０】
音響データを符号化および復号するための手段が、プロセッサに接続されマイクロホンおよびスピーカにさらに接続されたコーデックを含み、かつ画像情報を提供するための手段が、プロセッサに接続されディスプレイにさらに接続されたディスプレイ制御器を含む、請求項２９に記載の無線機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ｎ−ウェイキャッシュを用いるシステムおよび方法に関する。
【背景技術】
【０００２】
科学技術の進展により、より小さくより強力なパーソナル計算機器が生まれてきた。例えば、現在、小型軽量で携帯容易な携帯無線電話機、携帯情報端末（ＰＤＡ）、ページング機器のような、無線計算機器を含む携帯パーソナル計算機器が存在する。より詳細には、携帯電話およびＩＰ電話のような携帯無線電話機は、無線ネットワーク上で音声およびデータパケットを伝達できる。さらに、多くのそのような無線電話機はそこに組み込まれる他の形式の機器を含む。例えば、無線電話機はディジタルスチルカメラ、ディジタルビデオカメラ、ディジタルレコーダ、およびオーディオファイルプレーヤも含むかもしれない。また、そのような無線電話機はインターネットにアクセスするために用いられるウェブインタフェースを含むかもしれない。したがって、これらの無線電話機には優れた計算能力がある。
【０００３】
通常、これらの機器は、より小さくより強力になるとともに、ますます資源が制約されることになる。例えば、画面サイズ、利用可能なメモリーおよびファイルシステム空間の量、並びに入出力容量は機器が小型であることによる制約を受けるかもしれない。さらに、バッテリー形状、バッテリーが供給する電力量、およびバッテリーの寿命も制限される。機器のバッテリー寿命を延ばす１つの方法は、機器内のプロセッサによって実行されるデータ操作で消費される電力を減少させることである。
【０００４】
通常、プロセッサは記憶容量は小さいが、高速アクセス時間を提供するメモリーキャッシュを含む。通常、このメモリーキャッシュは要求されるメモリーアドレスの一部を用いてインデックスをつけられる。メモリーキャッシュの一例は、各インデックス値に関係づけられた複数のキャッシュラインを格納するｎ−ウェイキャッシュである。ｎ−ウェイキャッシュを用いて、要求されたデータが、特定のインデックス値に対するｎ−ウェイキャッシュの特定のウェイに格納されているかどうかを判定するために、通常、複数の比較が実行される。複数の比較は電力および限られた処理資源を消費する。
【０００５】
従って、ｎ−ウェイキャッシュを用いる改良されたシステムおよび方法を提供することは有益であるだろう。
【発明の概要】
【０００６】
特定の実施例において、マルチウェイキャッシュに格納された第１の命令の第１のウェイを決定することを含む方法が開示される。本方法は、ウェイリスト内に第１のウェイを格納することを含む。本方法は、マルチウェイキャッシュに格納された第２の命令の第２のウェイを決定することも含む。本方法は、前記ウェイリスト内に第２のウェイを格納することをさらに含む。
【０００７】
別の実施例において、ウェイテーブルにウェイ値を格納することを含む一方法が開示される。このウェイ値はｎ−ウェイキャッシュからの順次データ読み出し操作に関連している。前記順次データ読み出し操作は処理ループの第１の反復に対応する。本方法は、処理ループの次の反復操作の間にウェイテーブルからの順次データ読み出し操作に対するウェイ値を順次検索することも含む。
【０００８】
別の実施例において、複数のウェイを含むエントリーテーブルを含む機器が開示される。前記エントリーテーブルの各エントリーはｎ−ウェイキャッシュのウェイを特定する。本機器は、インデックスを有するアドレスを提供するためのプログラムカウンタも含む。前記インデックスおよびウェイはｎ−ウェイキャッシュ内の１つの命令の位置を特定する。
【０００９】
別の実施例において、アンテナおよびそのアンテナに接続された送受信機を含む無線機器が開示される。本無線機器は前記送受信機に接続されたプロセッサも含む。このプロセッサは、複数のウェイを含むエントリーテーブルを含むプロセッサ可読メモリーを有する。前記エントリーテーブルの各エントリーはｎ−ウェイキャッシュのウェイを特定する。前記プロセッサは、インデックスを有するプロセッサ命令のアドレスを提供するためのプログラムカウンタも含む。前記インデックスおよびウェイはｎ−ウェイキャッシュ内の１つのプロセッサ実行可能命令の位置を特定する。
【００１０】
ｎ−ウェイキャッシュを用いるシステムおよび方法の複数の実施例によって提供される１つの特定の利点は、消電力操作、より速いキャッシュアクセス、またはその双方が得られるということである。
【００１１】
本開示の他の態様、利点、および特徴は以下の章、すなわち図面の簡単な説明、発明を実施するための形態、および特許請求の範囲、を含む出願全体を概観することによって明らかになるだろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の、ｎ−ウェイキャッシュを用いるためのシステムの一実施例のブロック図。
【図２】本発明の、ｎ−ウェイキャッシュを用いる方法の一実施例のフロー図。
【図３】本発明の、ｎ−ウェイキャッシュと共に用いられるデータ構造の図。
【図４】本発明の、ｎ−ウェイキャッシュを用いる方法の別の実施例のフロー図。
【図５】本発明の、ｎ−ウェイキャッシュを用いるためのシステムの別の実施例のブロック図。
【詳細な説明】
【００１３】
図１を参照して、例えばプロセッサの一部である機器１００を示す。機器１００はシステムオンチップ部分および外部メモリー１１０を含む。このシステムオンチップはキャッシュメモリー１０２およびプログラムカウンタ１０６を含む。キャッシュメモリー１０２は、ウェイトレース論理回路１０４、タグアレイ１２０、およびデータキャッシュアレイ１３０を含むマルチウェイキャッシュである。特定の実施例において、データキャッシュアレイ１３０は命令キャッシュアレイであるかもしれない。
【００１４】
ウェイトレース論理回路１０４は、プログラムカウンタ１０６から入力するアドレスに応答する。プログラムカウンタ１０６からの各アドレスはタグ部分１１２およびインデックス部分１１４を含む。図１に示すような特定の例示的実施例において、プログラムカウンタアドレスは３２ビットを有する。
【００１５】
ウェイトレース論理回路１０４はタグ迂回論理回路１４０および先入れ先出し（ＦＩＦＯ）メモリーアレイのようなウェイトレースバッファメモリー１５０を含む。タグ迂回論理回路１４０は制御信号１１８をタグアレイ１２０に出力する。特定の実施例において、前記制御信号１１８はインデックス値Ｉｘとタグ値Ｔｘを含む。制御信号１１８のインデックス値およびタグ値がタグアレイの入力として提供され、その入力インデックス値に基づいて複数のタグ値を検索する。タグアレイ１２０から検索されたタグ値の各々は、複数のウェイの異なる１つに対応する。特定の実施例において、ｎ−ウェイキャッシュはキャッシュの各インデックス値に関係づけられたｎ個のメモリー位置を含む。したがって、ｎ−ウェイキャッシュに格納されたデータ値は、このインデックスおよびデータ値に関係づけられたウェイを特定する番号を用いることによって位置が決定される。特定の実施例において、タグアレイ１２０はｎ−ウェイキャッシュ１０２の一部である。
【００１６】
入力タグ値（Ｔｘ）は、ウェイトレース論理回路１０４において、タグアレイ１２０からの複数のタグの各々とインデックス値に基づいて比較され、合致するタグおよび関係する特定されたウェイを決定する。図１の特定の例示的例において、タグ値ＴｘはウェイＷ２に対応する。この例において、特定されたウェイＷ２はタグアレイ１２０の出力１２２で出力され、そのウェイ出力１２２はウェイトレース論理回路１０４およびデータキャッシュアレイ１３０へ出力される。タグアレイ１２０が入力インデックス値（Ｉｘ）に関係づけられるいずれのウェイにおいてもタグ値Ｔｘに合致するタグを含まない場合、キャッシュミスが起こっており、命令を検索する要求は外部メモリー１１０に対してなされる。
【００１７】
ウェイトレース論理回路１０４は、特定されたウェイ値を入力した後に、出力１３２でインデックス値を出力する。これはデータキャッシュアレイ１３０の入力端に供給される。さらに、ウェイトレース論理回路１０４は、ウェイトレースバッファメモリー１５０から読み込まれる予め定められたウェイ値１１６も出力する。
【００１８】
データキャッシュアレイ１３０は複数の異なるウェイに従って特定される複数の計算機実行可能命令を含む。例えば、図１に示すように、４つの異なるウェイが示され、各ウェイは計算機実行可能命令のセットに対応する。したがって、データキャッシュアレイ１３０がインデックス値およびウェイ値を受けると、特定された計算機実行可能命令Ｄｘがデータキャッシュアレイ１３０から検索され、出力１３４で出力される。インデックス値およびウェイ値に基づいて特定された計算機実行可能命令がデータキャッシュアレイ１３０で見つからない場合、キャッシュミスが起っており、命令を検索する要求が外部メモリー１１０に対してなされる。
【００１９】
いったん計算機実行可能命令１３４（Ｄｘ）がデータキャッシュアレイ１３０から出力されると、その計算機実行可能命令のウェイ値はトレースされ、ウェイトレース論理回路１０４内のエントリーテーブルに格納される。特定の実施例において、エントリーテーブルはウェイトレースＦＩＦＯバッファ１５０に格納され、図３に示すウェイテーブル３０４のように構成される。別の実施例において、ウェイトレースデータは計算機可読メモリー内にテーブルとしてもしくは単純なアレイとして、または専用レジスタ内に格納されるかもしれない。命令１３４がキャッシュメモリー１０２から出力されると、その命令は、ウェイトレース論理回路１０４への入力へも提供され、タグアレイ１２０から出力される関係するウェイ情報１２２と相互に関連され配列される。その結果そのような情報はウェイトレースＦＩＦＯバッファ１５０に格納される。この格納されたウェイトレース情報は後続の処理で用いられ、ウェイトレース論理回路１０４からデータキャッシュアレイ１３０へ特定のウェイ情報を送ることで、タグアレイから多数の値を検索することおよび関係するウェイを決定するための多数の照合操作を実行することに伴う付加的な計算を避けることにより、電力および処理資源を保存する。特定の実施例において、特定のウェイ情報はウェイ番号を含む。
【００２０】
特定の例示的実施例において、プログラムカウンタ１０６はインデックス１１４を有するアドレスを出力する。インデックス１１４およびｎ−ウェイキャッシュのウェイは、共同してデータキャッシュアレイ１３０内の特定の命令の位置を特定する。特定の実施例において、タグアレイ１２０は、インデックス値１１４に応答する入力１１８も有する。
【００２１】
さらに、ウェイトレース論理回路１０４は、例えばウェイトレースＦＩＦＯバッファ１５０を用いて、格納されたウェイ値を含むエントリーテーブルにアクセスできる。ウェイトレース論理回路１０４は、命令Ｄｘに関係するウェイを決定するために、タグアレイ１２０から検索したタグ値１１２をプログラムカウンタ１０６から検索した対応するタグ値と比較する論理回路を含む。この照合論理回路を用いて、ウェイトレース論理回路１０４はタグアレイ１２０から検索したタグを検証し、認証できる。ウェイトレース論理回路１０４はタグアレイ１２０からのタグ値がプログラムカウンタ１０６からのタグ値に合致していることを判定した後、インデックス１３２およびウェイ１１６をデータキャッシュアレイ１３０へ出力する。
【００２２】
特定の例示的実施例において、ウェイのエントリーテーブル（例えばウェイトレースＦＩＦＯバッファ１５０）に格納された複数のウェイの各々は、ｎ−ウェイデータキャッシュアレイ１３０内に格納された対応する複数の計算機実行可能命令に関係づけられた順に格納される。特定の実施例において、エントリーテーブルの最初のエントリーは命令のループの開始に対応する。命令のループの一例は、ディジタル信号プロセッサによって実行される処理ループである。そのような処理ループは多くの種々の用途においてディジタル信号プロセッサ機器によって用いられる。別の例において、計算機実行可能命令の１つはループに入ることに関係している。このように、ウェイトレースＦＩＦＯバッファ１５０は、特定のループ内の命令の各々を格納でき、また格納された情報を第１のパスからループを通じて用いることができ、これにより処理ループを通じて後続のパスの命令に対するウェイ値を検索することにより電力および処理資源を保存する。したがって、このような処理をより低い電力と低減されたコストで実行できる。
【００２３】
特定の実施例において、ウェイトレースＦＩＦＯバッファ１５０のエントリーテーブルは、ｎ−ウェイデータキャッシュアレイ１３０に格納されたデータとは独立のメモリーとして実施される。ウェイトレースＦＩＦＯバッファ１５０に格納されたエントリーテーブルは、ウェイ値Ｗ２のようなウェイ値を含むが、ウェイトレースＦＩＦＯバッファ１５０はデータキャッシュアレイ１３０内にある計算機実行可能命令を含まない。
【００２４】
例えば、閉処理ループの開始へのジャンプを指示するループ終了パケットが検出された場合、ウェイトレース論理回路１０４は、ウェイトレースＦＩＦＯバッファ１５０に格納されたエントリーテーブルへの追加を開始する。ウェイトレースＦＩＦＯバッファ１５０に書き込まれる最初のエントリーは、検出されたループ終了パケットによって指示されるループ開始のアドレスである。ループの各命令がデータキャッシュアレイ１３０から順次検索される故、ウェイトレース論理回路１０４は、ウェイトレースＦＩＦＯバッファ１５０に、命令に関係づけられたウェイ値を格納する。
【００２５】
ループの間、ウェイ値がウェイトレースＦＩＦＯバッファ１５０に格納されている故に、ウェイトレース論理回路１４０は要求された命令のアドレスをウェイトレースＦＩＦＯバッファ１５０に格納されたループ開始アドレスと比較する。現在のループの反復が完了し次のループの反復が始まることを示すループ開始アドレスが検出されると、ウェイトレースＦＩＦＯバッファ１５０は、プロセッサによって要求される順に、ループ命令に関係づけられたウェイ値を追加されるだろう。ウェイトレース論理回路１０４はウェイトレースＦＩＦＯバッファ１５０からのウェイ値を読み出し始め、したがって後続するループの反復の間、タグアレイ１２０から操作の読み出しを実行することが少なくなる。
【００２６】
データキャッシュアレイ１３０の各ウェイは単一の命令を格納するとして述べているが、データキャッシュアレイ１３０の各ウェイが、キャッシュラインと呼ばれるデータのユニットに複数のデータワードまたは命令を格納しても良いことは明確に理解されるべきである。データキャッシュアレイ１３０における各データ読み出し操作では、複数の命令を含むキャッシュラインをリターンしても良い。このキャッシュラインから、要求される命令が検索される
図２を参照して、マルチウェイキャッシュに関する操作方法を例示する。この方法は、２０２に示すように、キャッシュに格納された第１の命令の第１のウェイを決定することを含む。この方法は、２０４に示すように、図１のウェイトレースＦＩＦＯバッファ１５０への格納のような、ウェイリストに前記第１のウェイを格納することをさらに含む。この方法は、２０６において、キャッシュに格納された第２の命令の第２のウェイを決定すること、および２０８において、ウェイリストに第２のウェイを格納することとをさらに含む。
【００２７】
特定の実施例において、本方法は、２１０に示すように、ループ終了パケットを検出することをさらに含む。ループ終了パケットは、命令の処理ループのパスまたは反復の終了を表すジャンプ命令のような特定の命令を検出することによって判定される。２１２において、本方法はループ終了パケットに関係づけられた特有アドレスを格納することをさらに含む。ループ終了パケットの検出後、本方法は２１４に示すようにウェイリストから検索した少なくとも１つのウェイにアクセスすることを含む。例えば、プロセッサがループの開始を参照している場合、図１のウェイトレース論理回路１０４のような論理回路は、ループの開始に関係づけられた格納されたウェイ情報をウェイリストから検索する。
【００２８】
２１６において、キャッシュ内の命令は検索された少なくとも１つのウェイに基づいてアクセスされる。例えば、検索されたウェイ値は、タグアレイ１２０のようなタグアレイの単一読み出しを実行するために用いられ、その命令が命令アレイに格納されておりキャッシュミスにならないことを確認する。次に、その命令を含む命令アレイのキャッシュラインを検索するために、検索されたウェイ値が用いられる。
【００２９】
特定の実施例において、本方法は、２１８において、命令に対するウェイ情報に加え、もしくは代わりに同一ライン（ｓａｍｅｌｉｎｅ）ビットまたは他の識別子を格納することを選択的に含むかもしれない。これにより、同じキャッシュラインがアクセスされた場合、タグアレイ内のエントリーは評価されない。同一ラインビットは、特定の命令が直前の先行命令と同じ命令アレイのキャッシュラインにあることを識別する。したがって、先行命令の検索が成功すると、同一ラインビットは、タグアレイを介してキャッシュミスに対する最初の検査をすることなしに、キャッシュからの後続命令を検索することを可能にする。例示的実施例において、同一ラインビットは、図４に示すような同一ラインビットアレイ４０６のような独立したビットアレイに格納される。
【００３０】
特定の実施例において、第１のウェイはタグアレイから検索したウェイ値に対応する。さらに、第２のウェイはタグアレイからのウェイ値として検索される。キャッシュはマルチウェイキャッシュとして説明されているが、キャッシュは、ｎが１より大きい値であるｎ−ウェイキャッシュとして説明されても良い。特定の実施例においてｎは４である。さらに、ループ終了パケットに関係づけられた特有アドレスがアクセスされウェイリスト内に格納されることが理解されるべきである。このループ終了パケットに関係づけられた特有アドレスは、後続の処理に対してループ終了を特定する命令を特定するために用いられる。説明した方法を用いることによって、タグアレイの複数のタグを評価する代わりに、あらかじめ格納されたウェイリストからのウェイに応じてキャッシュ内の命令がアクセスされる。
【００３１】
特定の実施例において、開示されたシステムは、ディジタル信号プロセッサループを実行するためのタグアレイアクセスおよびタグ照合に起因する電力消費を抑圧するための低コストな方法を提供する。開示されたシステムおよび方法は、アクセスされたウェイのトレースは格納するがｎ−ウェイキャッシュからの特定の計算機実行可能命令は格納しないことにより、低電力操作をもたらす。ウェイリストに関連するハードウェア構造は所要面積および電力要求において低コストである。また、この構造は大きいプログラミングループのトレースを格納するためのキャッシュラインにアクセスする能力を提供する。さらに、ＦＩＦＯについて言及してきたが、いかなる他の類似のハードウェア構造をウェイトレースデータの格納に用いてもよい。ＤＳＰループを通じて後続の処理をするためのウェイトレースデータを格納することによって、本方法はタグアレイのただ１つのウェイを読み出すだけでよく、したがって消費電力を低くする。また、システムがアクセス毎にキャッシュラインの部分を読み出すキャッシュにおいて、システムはタグアレイへのアクセスを必要としないように、キャッシュラインに対する同一ラインビットを格納しても良い。
【００３２】
図３を参照して、ｎ−ウェイキャッシュと共に用いられるデータ構造の特定の例示的実施例を示し、一般的に、３００で表す。システム３００は例示的命令リスト３０２およびウェイテーブル３０４を含む。特定の実施例において、ウェイテーブル３０４は図１に示すウェイトレースＦＩＦＯバッファ１５０のようなＦＩＦＯバッファに格納される。
【００３３】
特定の実施例において、例示的命令リスト３０２は、ＤＳＰのようなプロセッサによって図１のキャッシュ１０２のようなキャッシュに要求された命令に対応するデータを表す。例示的命令リスト３０２は、命令アドレスの第１の列、ウェイ値の第２の列、および命令語の第３の列を含む。命令に関係づけられた命令アドレスおよびウェイは、キャッシュから要求された命令を含む対応するキャッシュラインにアクセスするために用いられる。例えば、例示的命令リスト３０２の最初のデータ行はウェイ３にある第１のアドレスＡ１を含み、対応する命令ＩＮＳＴＲ１はアドレスＡ１とウェイ３とに関係づけられたキャッシュラインの計算機命令語である。ウェイテーブル３０４での操作を例示するために、例示的命令リスト３０２が順次キャッシュ要求に関連したデータを示していることが理解されるべきである。例示的命令リスト３０２は、ｎ−ウェイキャッシュと共に用いられる実際のテーブルまたはデータ構造に対応している必要はない。
【００３４】
図３の例示的実施例における例示的命令リスト３０２は、アドレスＡ１およびデータキャッシュアレイのウェイ３にある命令語ＩＮＳＴＲ１で始まり、アドレスＡ９、ウェイ１にある命令に続く９個の命令語を含む。
【００３５】
図３に示す特定の実施例のアドレスＡ９、ウェイ１にある命令は、ループ終了を示す特有パケットである。さらに、アドレスＡ９、ウェイ１にある命令は、アドレスＡ４へのジャンプコマンドを含む。特定の実施例において、アドレスＡ９にあるループ終了の特有パケットは、プロセッサループの各反復がアドレスＡ４にある命令で始まりアドレスＡ９にある命令で終了することを示す。
【００３６】
ウェイテーブル３０４はプロセッサで実行されるループにおいて順次アクセスされるキャッシュラインに対応する各ウェイ値に関係づけられたデータを含む。ウェイテーブル３０４の最初のエントリーはループ終了の特有パケットから検索されたアドレスＡ４である。ウェイテーブル３０４の以下の順次データの要素は、処理ループにおいてプロセッサによってキャッシュメモリーに要求された各順次キャッシュラインに関係づけられたウェイ値を示す。
【００３７】
例えば、アドレスＡ４にある命令に関係づけられたウェイ値は、命令リスト３０２に示すように、２である。同様に、ウェイテーブル３０４の最初のウェイデータ要素は数字２である。例示的命令リスト３０２に示す順次キャッシュライン検索を続けると、アドレスＡ５にあるキャッシュアクセスを引き起こす次の命令は、関連するウェイ０を有する。同様に、ウェイテーブル３０４の２番目のウェイデータ要素も０である。ウェイテーブル３０４は、アドレスＡ９、ウェイ１の命令で終了する処理ループ終了までの、プロセッサの順次キャッシュライン要求に対するウェイ値を含む。
【００３８】
特定の実施例において、命令の処理において例えばループ終了の特有パケットを介してループが検出されると、ウェイテーブル３０４は処理ループの次の反復の最初の命令のアドレスを取り込む。図３の例示的実施例において、最初の命令のアドレスはＡ４である。ウェイテーブル３０４は、データキャッシュアレイ１３０のようなキャッシュから検索される各順次キャッシュラインに対するウェイデータに対応するデータ値を続けて書き込まれる。また、ウェイテーブル３０４は、図１のタグアレイ１２０のようなタグアレイを介して決定される。
【００３９】
いったんウェイテーブル３０４が処理ループに対応するデータ値で生成されると、各検索されたキャッシュラインに対するウェイ値を決定するためのタグアレイへの付加的アクセスを必要とせずに、その処理ループの付加的反復が実行される。したがって、処理速度、電力消費量、および他の利益が得られる。
【００４０】
例示的命令リスト３０２およびウェイテーブル３０４を図３に示すが、例示的命令リスト３０２もウェイテーブル３０４も個別のテーブルまたはアレイとして実施される必要がないことが理解されるべきである。例えば、ウェイテーブル３０４は先入れ先出し（ＦＩＦＯ）バッファで実施されてもよい。別の例として、例示的命令リスト３０２に関係づけられているデータは任意の他のデータ構造もしくは複数の構造にも格納されるかもしれないし、または、プロセッサが要求される命令を要求し受け取ることができる限り、全く格納されないかもしれない。
【００４１】
図４を参照して、ｎ−ウェイキャッシュと共に用いられるデータ構造の別の例示的実施例を示し、一般的に、４００で表す。システム４００は例示的命令リスト４０２、ウェイテーブル４０４、および同一ラインビットアレイ４０６を含む。一般に、例示的命令リスト４０２は図３に示す例示的命令リスト３０２に対応し、ウェイテーブル４０４は図３に示すウェイテーブル３０４に対応する。
【００４２】
特定の実施例において、同一ラインビットアレイ４０６は処理ループの各命令がそのループの先行する命令と同じキャッシュラインにあるかどうかを示すデータを格納する。図４の例において、処理ループは、アドレスＡ４、Ａ５、Ａ６、Ａ７、Ａ８にある命令、およびＡ９にあるループ終了命令を含む。アドレスＡ５、Ａ６、およびＡ７にある命令は、命令キャッシュの同じキャッシュラインに格納される。これは、各命令を検索するために同じインデックスおよびウェイを命令キャッシュから用いることを意味する。
【００４３】
特定の実施例において、命令の処理においてループが検出されると、同一ラインビットアレイ４０６は、各命令に対してその命令が先行命令と同じキャッシュラインに格納されているかどうかを指示するデータ値を順次的に追加する。ループの各命令は、同一ラインビットアレイ４０６に、対応するビットを有する。これは論理的高レベル「１」または論理的低レベル「０」に設定される。命令が先行命令と異なるキャッシュラインに格納されると、同一ラインビットアレイ４０６に「０」が格納され、ウェイ値がウェイテーブル４０４に格納される。しかし、命令が先行命令と同じキャッシュラインに格納されると、同一ラインビットアレイ４０６に「１」が格納され、その命令に対してウェイテーブル４０４にエントリーがなされない。したがって、同一ラインビットアレイ４０６は処理ループの各命令に対するデータ値を含むが、ウェイテーブル４０４はループ内の命令の数より少ないウェイ値を含む。
【００４４】
例えば、アドレスＡ４にある最初のループ命令は同一ラインビットアレイ４０６に、この命令が先行キャッシュラインにはないことを示す「０」の対応エントリーを有する。タグアレイを介して検索されたＡ４にある命令に対するウェイ値「２」がウェイテーブル４０４の最初のウェイ格納位置に格納される。Ａ５にある次の命令は、同一ラインビットアレイ４０６に、この命令がＡ４にある命令と異なるキャッシュラインにあることを示す「０」のエントリーを有する。この対応するウェイ値「０」がウェイテーブル４０４の２番目のウェイエントリーに格納される。以下のＡ６およびＡ７にある命令は、同一ラインビットアレイ４０６に「１」で示されるため、Ａ５にある命令と同じキャッシュラインにあり、したがってウェイテーブル４０４内に対応するエントリーを有しない。Ａ８およびＡ９にある最後の２つの命令は各々が別々のキャッシュラインにあり、ウェイテーブル４０４の対応する「２」および「１」のエントリーと共に同一ラインビットアレイ４０６の「０」エントリーによって示される。したがって、ループが６つの命令を含むにも拘わらず、僅か４個のウェイ値がウェイテーブル４０４に格納される。
【００４５】
いったんウェイテーブル４０４が処理ループに対応するデータ値を追加されると、その処理ループの付加的反復が、各検索されたキャッシュラインに対するウェイ値を決定するためのタグアレイへの付加的アクセスを必要とせずに、実行される。命令が検索される前に、命令がキャッシュに上書きされていないことを確実にするために、１つのインデックスおよびウェイ値がタグアレイに送られる。しかし、同一ラインビットアレイ４０６が、この命令が先行命令と同一キャッシュラインにあることを示す場合、タグアレイにおいてそのようなチェックが実行される必要はない。したがって複数の順次命令が同一のキャッシュラインにある場合、同一ラインビットアレイ４０６およびウェイテーブル４０４を用いるシステムは、同一ライン情報を記録しないシステムに較べ、メモリーの使用がより少なく、タグアレイ読み出し操作の実行がより少なくなる。
【００４６】
別の実施例において、同一ラインビットアレイ４０６の同一ラインデータおよびウェイテーブル４０４のウェイデータは単一のデータ構造に組み合わされても良い。例えば、ウェイテーブル４０４のようなテーブルは先行する命令と同じキャッシュラインにある各命令に対するウェイ値に加えて、もしくは代わりに「同一ライン」指標を格納しても良い。
【００４７】
図５を参照して、ウェイトレース情報を用いる方法の特定の例示的実施例を示し、一般的に、５００で表す。５０２において、命令のアドレスが入力される。特定の実施例において、命令のアドレスはｎ−ウェイキャッシュへの入力端で入力される。特定の実施例において、５０４において、そのアドレスに関連づけられた１つのウェイが決定される。例えば、このウェイは図１のタグアレイ１２０のようなタグアレイから決定される。５０６において、命令が検索される。５０６において、命令は、図１のデータキャッシュアレイ１３０のようなデータキャッシュアレイから、命令アドレスおよび命令アドレスに関係づけられたウェイを用いて検索される。
【００４８】
本方法は判定ステップ５０８に続く。ステップ５０８において、処理ループに入っていることを命令が示すかどうかの判定がなされる。特定の実施例において、処理ループに入ることは、処理ループの最初の命令のアドレスを含む特有パケットによって示される。処理ループへ入ったことを命令が示さない場合、方法は５０２へ戻る。処理ループへ入ったことを命令が示す場合、方法は５１０へ続く。５１０において、処理ループの最初の命令のアドレスが入力される。
【００４９】
５１２に進み、要求された命令に対するウェイがタグアレイから決定され、次に５１６において対応するウェイがウェイテーブルに保存される。例示的一実施例において、ウェイテーブルは図３のウェイテーブル３０４である。別の例示的実施例において、ウェイテーブルはウェイ値に対するデータ格納部品、例えば図１のウェイトレースＦＩＦＯバッファ１５０、を含む。
【００５０】
処理は５１８へ続く。５１８において、要求された命令が検索される。５２０において、命令が処理ループの最初の反復の終了を示すかどうかの判定がなされる。命令が処理ループの最初の反復の終了を示さない場合、方法は５１０へ戻る。５１０において、ループの次の命令のアドレスが入力される。上記と異なり、命令が処理ループの最初の反復の終了を示す場合、処理ループの第２の反復が５２２で始まる。５２２において命令アドレスが入力される。
【００５１】
特定の実施例において、５２２で要求された命令は、処理ループの最初の反復の間に予め検索されており、したがって、ウェイテーブルに格納された対応するウェイを既に有している。５２４において、要求された命令に対応するウェイはウェイテーブルから決定される。
【００５２】
特定の実施例において、ウェイは５２６においてタグアレイを用いて確認される。例えば、１つ以上の他の処理は命令に上書きするキャッシュにデータ記入を実行する。要求された命令のインデックスおよびウェイに関係づけられたタグアレイからタグ値のみを検索することにより、その検索されたタグは、命令が上書きされていないことを確認するために、要求された命令のタグと比較される。特定の実施例において、特定の命令に対するキャッシュラインが直前の命令に対するものと同一である場合を示すために、同一ラインビットが用いられる。その場合、タグアレイを用いる確認ステップは、先行命令に対して実行されるだけでよい。
【００５３】
５２８において、アドレスからのインデックスとウェイテーブルからのウェイを用いて命令が検索される。５３０において、命令がプロセッサにループを出る論理処理分岐を実行させるかどうかの判定がなされる。命令がループ終了を引き起こさないという判定がなされる場合、方法は５２２へ戻る。上記と異なり、５３０において命令がループ終了を引き起こす場合、方法は５０２へ戻る。
【００５４】
図６はｎ−ウェイキャッシュを用いるシステムの一実施例のブロック図であり、携帯通信機器６００として例示される。携帯通信機器６００はウェイトレース論理回路６７０に接続されたｎ−ウェイキャッシュ６６０を含む。特定の実施例において、ウェイトレース論理回路６７０およびｎ−ウェイキャッシュ６６０は図１のキャッシュ１０２およびウェイトレース論理回路１０４を含む。また、例えば図３のウェイテーブル３０４のようなテーブルを用いてウェイトレースデータを格納し更新することによって、図２および図４に示す１つ以上の方法の少なくとも一部分を実行する。携帯通信機器６００はディジタル信号プロセッサ６１０のようなプロセッサを含むオンチップシステム６２２を含む。このディジタル信号プロセッサ６１０は、図１乃至図５に関連して説明したように、ウェイトレース論理回路６７０に接続されたｎ−ウェイキャッシュ６６０を含む。特定の例示的一実施例において、ウェイトレース論理回路６７０が、ディジタル信号プロセッサ６１０のようなプロセッサおよびオンチップシステム６２２のようなシステムオンチップ機器の電力消費量を抑圧するため、処理速度を向上させるため、またはその双方のために用いられるかもしれない。
【００５５】
特定の実施例において、処理操作ループの間ディジタル信号プロセッサ６１０によって要求される各命令に対するウェイ情報を格納し検索することにより、処理の間、電力消費量が抑圧される。その結果、ｎ−ウェイキャッシュ６６０から各命令を検索することに関係する多くのタグアレイアクセスおよび比較を減少させる。多くのタグアレイアクセスおよび比較を減少させることは、命令検索に関係する電力消費量を減少させる。同様に、各命令に対する多くのタグアレイアクセスおよび比較を減少させることは、ｎ−ウェイキャッシュ６６０からの個々のまたは全体の命令検索時間を減少させる。
【００５６】
図６は、ディジタル信号プロセッサ６１０およびディスプレイ６２８に接続されたディスプレイ制御器６２６も示す。さらに、入力機器６３０がディジタル信号プロセッサ６１０に接続される。さらに、メモリー６３２がディジタル信号プロセッサ６１０に接続される。符号器／復号器（コーデック）６３４もディジタル信号プロセッサ６１０に接続されても良い。スピーカ６３６およびマイクロホン６３８がコーデック６３４に接続されても良い。
【００５７】
また、図６は、無線制御器６４０がディジタル信号プロセッサ６１０および無線アンテナ６４２に接続されても良いことを示す。特定の実施例において、電源６４４がオンチップシステム６２２に接続される。さらに、特定の実施例において、図６に示すように、ディスプレイ６２８、入力機器６３０、スピーカ６３６、マイクロホン６３８、無線アンテナ６４２、および電源６４４はオンチップシステム６２２の外部にある。しかし、各々はオンチップシステム６２２の部品に接続される。
【００５８】
特定の例示的実施例において、ウェイトレース論理回路６７０は携帯通信機器６００の全体の性能を向上させるために用いられる。特に、ウェイトレース論理回路６７０は、処理ループの間、各検索された命令に関係する複数のキャッシュ読み出しおよび比較を行わない。その結果、バッテリーの寿命を延ばし、全体の電力効率を改善し、処理時間および資源利用を減少し、機器６００の性能を向上させる。
【００５９】
ｎ−ウェイキャッシュ６６０およびウェイトレース論理回路６７０をディジタル信号プロセッサ６１０の別々の部品として示したが、そうではなくｎ−ウェイキャッシュ６６０およびウェイトレース論理回路６７０は、図１のキャッシュ１０２のような単一のキャッシュユニットに集積されても良い、ということが理解されるべきである。同様に、複数のウェイトレース論理部品が、例えば単一処理ループの複数の処理パスに対して含まれても良い、ということが理解されるべきである。別の例において、ディジタル信号プロセッサ６１０の複数のキャッシュ、例えば専用命令キャッシュおよび専用データキャッシュ、に対して複数のウェイトレース論理部品が含まれても良い。また別の例として、マルチスレッド処理操作の１つ以上のスレッドに対する性能を向上させるために複数のウェイトレース論理部品が含まれても良い。
【００６０】
当業者は、ここに開示された実施例に関連して説明された種々の例示的論理ブロック、構成、モジュール、回路およびアルゴリズムのステップは、電子的ハードウェア、計算機ソフトウェア、またはその双方の組み合わせとして実施されるかもしれないことをさらに認識するだろう。ハードウェアとソフトウェアのこの互換性を明確に例示するために、種々の例示的部品、ブロック、構成、モジュール、回路、およびステップは、ここまで、それらの機能の面から一般的に説明してきた。そのような機能がハードウェアまたはソフトウェアとして実施されるかどうかは、全体のシステムに課せられた特定の用途および設計制約に依存する。当業者は、説明した機能を各特定の用途に対して異なる方法で実施するかもしれないが、そのような実施の決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００６１】
ここに開示された実施例に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサで実行されるソフトウェアモジュールで、またはその２つの組合せで具体化されるかもしれない。ソフトウェアモジュールはＲＡＭメモリー、フラッシュメモリ、ＲＯＭメモリー、ＰＲＯＭメモリー、ＥＰＲＯＭメモリー、ＥＥＰＲＯＭメモリー、レジスタ、ハードディスク、可搬形ディスク、ＣＤ−ＲＯＭ、または当業者に既知の任意の他の形式の記憶媒体の中にあるかもしれない。代表的記憶媒体は、プロセッサが情報を記憶媒体から読み出しおよび情報を記憶媒体に書き込むことができるようにプロセッサに接続される。代替的には、記憶媒体はプロセッサの構成部品であるかもしれない。プロセッサおよび記憶媒体はＡＳＩＣ内にあるかもしれない。ＡＳＩＣは計算機器またはユーザ端末内にあるかもしれない。代替的に、プロセッサおよび記憶媒体は個別部品として計算機器またはユーザ端末内にあるかもしれない。
【００６２】
開示された実施例のこれまでの説明は、いかなる当業者も開示された実施例を製造しまたは使用することを可能にするように提供されている。これらの実施例への種々の変形は当業者に容易に明らかになるだろう。また、ここに定義した一般的原理は本開示の精神または範囲から逸脱することなく他の実施例に適用されるかもしれない。したがって、本開示は、ここに示した実施例に限定されることを意図されていず、以下の特許請求範囲によって定義される原理および新規な特徴に矛盾しない最も広い範囲に一致されるということである。
【図１】
2010539598.tif 000003
【図２】
2010539598.tif 000004
【図３】
2010539598.tif 000005
【図４】
2010539598.tif 000006
【図５】
2010539598.tif 000007
【図６】
2010539598.tif 000008
【国際調査報告】
2010539598.tif 000009
2010539598.tif 000010
2010539598.tif 000011