(57)【要約】マルチポートキャッシュメモリ（２００）は、各々の少なくとも一部が複数の方向にインデックスを付ける複数のアドレスを入力する複数の入力ポート（２０１，２０３）と、前記複数のアドレスの各々に関連したデータを出力する複数の出力ポート（２２７，２９９）と、前記複数の方向を格納するとともに各々がシングル入力ポート（２１７ａ，２１７ｂ，２１７ｃ，２１７ｄ）を具える複数のメモリブロック（２１９ａ，２１９ｂ，２１９ｃ）と、前記複数の方向の一つを選択して、選択した方向のデータを前記キャッシュメモリ（２００）の関連の出力ポート（２２７，２２９）に出力する手段（２０９，２１５，２２３，２２５）と、複数の方向が前記複数のアドレスの各々によってインデックスが付けられることを予測する予測器（２１１）と、予測した方向に基づいて前記複数の方向にインデックスを付ける手段（２１３ａ，２１３ｂ，２１３ｃ，２１３ｄ）とを具える。
2008542945.tif 000002
【特許請求の範囲】
【請求項１】
各々の少なくとも一部が複数の方向にインデックスを付ける複数のアドレスを入力する複数の入力ポートと、
前記複数のアドレスの各々に関連したデータを出力する複数の出力ポートと、
前記複数の方向を格納するとともに各々がシングル入力ポートを具える複数のメモリブロックと、
複数の方向が前記複数のアドレスの各々によってインデックスが付けられることを予測する予測器と、
予測した方向に基づいて前記複数の方向にインデックスを付ける手段と、
前記複数の方向の一つを選択して、選択した方向のデータを前記キャッシュメモリの関連の出力ポートに出力する手段とを具えるマルチポートキャッシュメモリ。
【請求項２】
請求項１記載のマルチポートキャッシュメモリにおいて、前記選択手段が、前記複数の方向の検索と並行して関連のアドレスの各々のタグ部を検索する複数のタグメモリを具えることを特徴とするマルチポートキャッシュメモリ。
【請求項３】
請求項１又は２記載のマルチポートキャッシュメモリにおいて、前記予測器が、前記方向を予測するために前記アドレスのタグ部と以前のアドレスのタグ部とを比較することを特徴とするマルチポートキャッシュメモリ。
【請求項４】
請求項１又は２記載のマルチポートキャッシュメモリにおいて、前記予測器が、最近のｎ回のアクセスの履歴を維持し、次の方向を予測するために前記履歴の傾向を調べることを特徴とするマルチポートキャッシュメモリ。
【請求項５】
請求項１又は２記載のマルチポートキャッシュメモリにおいて、前記予測器が、異なるＮ方向まで予測するために最近のＮ回のアクセスをスペースごとに用いることを特徴とするマルチポートキャッシュメモリ。
【請求項６】
請求項５記載のマルチポートキャッシュメモリにおいて、Ｎを、アドレスポインタの個数に等しくすることを特徴とするマルチポートキャッシュメモリ。
【請求項７】
請求項１又は２記載のマルチポートキャッシュメモリにおいて、前記予測器が、アドレスポインタのセット内のどのアドレスポインタが要求を行うかを確立するとともにどのアドレスポインタが要求を行ったかに基づいて前記次の方向を予測する手段を更に有することを特徴とするマルチポートキャッシュメモリ。
【請求項８】
請求項１から７のうちのいずれか１項に記載のマルチポートキャッシュメモリを有するデジタル信号プロセッサ。
【請求項９】
請求項８記載のデジタル信号プロセッサにおいて、前記マルチポートキャッシュを、デュアルハーバードアーキテクチャ用のデュアルポートキャッシュとしたことを特徴とするデジタル信号プロセッサ。
【請求項１０】
請求項９記載のデジタル信号プロセッサにおいて、前記予測器がデュアルアクセスのみを追跡することを特徴とするデジタル信号プロセッサ。
【請求項１１】
請求項８から１０のうちのいずれか１項に記載のデジタル信号プロセッサを有する携帯電話機。
【請求項１２】
請求項８から１０のうちのいずれか１項に記載のデジタル信号プロセッサを有する電子ハンドヘルド情報装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチポートキャッシュメモリに関する。特に本発明は、Ｎ方向のセットアソシエーティブキャッシュメモリの方向予測に関する。
【背景技術】
【０００２】
現在のプロセッサ技術においては、キャッシュは、プロセッサパフォーマンスをメモリパフォーマンス（クロック速度）から切り離す周知の方法である。キャッシュパフォーマンスを向上するために、セットアソシエーティブキャッシュがしばしば利用される。セットアソシエーティブキャッシュにおいて、所定のアドレスは、当該アドレスによって支援されたキャッシュラインを記憶するのに用いることができる二つ以上のキャッシュラインメモリロケーションのセットを選択する。セット中のキャッシュラインメモリロケーションは、セットの方向と称され、Ｎ方向を有するキャッシュは、Ｎ方向のセットアソシエーティブと称される。要求されるキャッシュラインは、タグによって選択される。
【０００３】
現在のデジタル信号プロセッサ（ＤＳＰ）において、キャッシュが広く用いられている。しかしながら、メモリに対する複数の同時のインタフェース（例えば、プログラム命令に対する一つのインタフェース及びデータアクセスに対する二つのインタフェース）を有するＤＳＰの異なるアーキテクチャのために、キャッシュアーキテクチャは、従来のプロセッサアーキテクチャと異なる必要がある。常に、ＤＳＰに要求されるキャッシュアーキテクチャは、デュアル又は高次のハーバードメモリアクセスアーキテクチャである。通常、デュアルハーバードのアクセス動作のサイクルごとに２回の転送が行われるので、そのようなキャッシュは、デュアルポートメモリブロックを用いて実現される。
【０００４】
図１は、デュアルハーバードアーキテクチャを具えるＤＳＰ用の典型的なＮ方向セットアソシエーティブキャッシュアーキテクチャを示す。キャッシュメモリ１００は、メモリに同時にアクセスすることを要求するために例えば（ここに示さない）データバス及び命令バスに接続した二つの入力ポート１０１，１０３を具える。関連のデータ及び命令を検索するために、アドレスＸが入力ポート１０１に入力されるとともにアドレスＹが入力ポート１０３に入力される。各アドレスＸ及びＹは、タグ（上位ビット）及びインデックス（下位ビット）を具える。各アドレスＸ及びＹのタグ及びインデックスは、第１及び第２入力ポート１０１，１０３に対するタグメモリ１０５，１０７にそれぞれ入力される。タグメモリ１０５，１０７は、特定のタグの検索に従ってＸ方向セレクタ及びＹ方向セレクタをそれぞれ出力する。タグメモリの検索に並行して、Ｘアドレス及びＹアドレスの各インデックスは、複数のデュアルポートメモリブロック１０９ａ，１０９ｂ，１０９ｃ，１０９ｄの入力部に配置される。各デュアルポートメモリブロック１０９ａ，１０９ｂ，１０９ｃ，１０９ｄは、複数の方向にアクセスするためにＸ入力アドレスとＹアドレスのそれぞれのＸインデックス及びＹインデックスによってアクセスされる。各アドレスＸ及びＹに対する方向は、各メモリブロックの各出力ポートに出力される。Ｘアドレスのインデックスによってアクセスされる複数の方向は、Ｘ方向マルチプレクサ１１１に出力され、Ｙアドレスのインデックによってアクセスされる複数の方向は、Ｙ方向マルチプレクサ１１３に出力される。
【０００５】
タグメモリ１０５から出力されるＸ方向セレクタは、Ｘアドレスのインデックスによってアクセスされるとともに複数のデュアルポートメモリブロック１０９ａ，１０９ｂ，１０９ｃ，１０９ｄから出力される複数の方向の一つを選択するためにＸ方向マルチプレクサ１１１に入力される。選択した方向に関連したデータは、キャッシュメモリ１００の第１出力ポート１１５に配置される。同様にして、Ｙ方向は、Ｙ方向マルチプレクサ１１３によって選択され、それに関連するデータは、キャッシュメモリ１００の第２出力端子１１７に出力される。
【０００６】
そのような既知のＤＳＰによって要求される同時のアクセスを可能にするために、デュアルポートメモリブロックが要求される。しかしながら、そのようなデュアルポートメモリブロックは、領域、クロック速度及び電力消費に関して比較的高価である。
【０００７】
ディープサブミクロン技術において、配線遅延が遅延の増大のためにディープサブミクロンレベルで有害であるので、メモリをコアに近接して接続する必要がある。これは、現在のアプリケーションの増大するメモリ要求とコンフリクトが生じる。このようなコンフリクトを、キャッシュアーキテクチャによって解決することができ、この場合、小さいキャッシュメモリをコアに近接して配置し、遠方にある大きなメモリへのアクセスをバッファリングする。これは、一方がプログラム用で他方がデータ用の二つのメモリインタフェースを通じて結合した一つに統合されたメモリを利用することによって、現在のマイクロコントローラで解決される。しかしながら、ＤＳＰに対して、デュアルハーバードをキャッシュに組み合わせることによって、そのようなマイクロコントローラアーキテクチャで見つけられない複雑さ、すなわち、メモリスペース間のキャッシュのコヒーレンシーが生じる。そのようなマイクロコントローラにおいてコードとデータとの間の分離が良好に行われているので、両方のスペースに同時にアクセスを要求しないこと及びコヒーレンシーのないデータキャッシュ及びプログラムキャッシュを独立して実現できることは、重要でない。
【０００８】
同一のデータメモリに接続する二つ（以上）のデータバスを有するＤＳＰにおいて、キャッシュアーキテクチャは、メモリスペースに亘るデータの共有が更に強要されるためにインコヒーレンシーを更に有効な方法で解決する必要がある。これは、図１に示すようにサイクルと語に２回のアクセスを許容するためにデュアルポートメモリブロックを内部に有するデュアルポートキャッシュアーキテクチャを用いることによって達成される。これによって、データが一つのキャッシュメモリブロックにおいてのみ表されるようになり、したがって、コヒーレンシーが保証される。しかしながら、これは、デュアルポートメモリが通常のシングルポートメモリに比べて効率が良くないのでエリア及び速度に大きなオーバヘッドを有する。
【０００９】
代案として、並列なアクセスの代わりに、実際のメモリアクセス前にタグ検索を行うことができる。しかしながら、これは、実際のメモリブロック１０９ａ〜１０９ｄのアクセス前のタグメモリ１０５，０１７への追加のメモリアクセスを必要とする。この追加のメモリアクセスは、プロセッサの速度及びパフォーマンスに著しい影響を有する。
【発明の開示】
【００１０】
したがって、本発明は、デュアルポートメモリブロックの欠点を克服し、実際のメモリブロックアクセス前にタグメモリアクセスを行う追加のサイクルを必要とすることなくＤＳＰなどに適切なデュアル又はマルチポートキャッシュメモリでシングルポートメモリブロックなどを利用する。
【００１１】
これは、本発明の態様によれば、各々の少なくとも一部が複数の方向にインデックスを付ける複数のアドレスを入力する複数の入力ポートと、前記複数のアドレスの各々に関連したデータを出力する複数の出力ポートと、前記複数の方向を格納するとともに各々がシングル入力ポートを具える複数のメモリブロックと、複数の方向が前記複数のアドレスの各々によってインデックスが付けられることを予測する予測器と、予測した方向に基づいて前記複数の方向にインデックスを付ける手段と、前記複数の方向の一つを選択して、選択した方向のデータを前記キャッシュメモリの関連の出力ポートに出力する手段とを具えるマルチポートキャッシュメモリによって達成される。
【００１２】
このようにして、シングルポートメモリブロックをマルチポートキャッシュで利用することができる。これは、メモリのエリアを減少し、クロック速度を増大し、かつ、電力消費を減少する。シングルポートメモリブロックが用いられているので、メモリブロックごとに１回のアクセスのみがサイクルごとに許容され、すなわち、二つの同時のアクセスは、異なるメモリブロックを言及する必要がある。メモリを、複数の小ブロックに分割することができる。一つ以上の小ブロックのみがサイクルごとに有効になり、これによって、消費電力が更に減少する。
【００１３】
実際のタグメモリ検索の代わりに予測を用いることによって、アクセスすべき正確なメモリブロックの迅速な選択が可能になる。しかしながら、誤った予測の場合には、ペナルティの発生とコストの両方が制限される。実現に際し、これを１クロックサイクルにすることができる。
【００１４】
多くの場合、アプリケーションソフトウェアが、二つのデータチャネルを通じたアクセスに関して完全に「ランダムな」動作を有するので、方向予測が有効である。データアクセスが多かれ少なかれ時間的に構成される（時間的な位置基準）ように、データスペースに亘るアクセスが構成される（空間的な位置形態）。
【００１５】
さらに、多くの場合、二つの同時のアクセスに対して、これらが異なる「方向」に配置されていると仮定することができ、したがって、どの「方向」を指定するか知られている場合、メモリアクセスのアドレスを、特定の方向に対するコンフリクト（コンフリクトを、同一方向に対するアドレスを有する二つのスペースとする。）を有することなく正確な方向（及び関連のメモリブロック）に送り出すことができる。
【００１６】
好適には、前記選択手段が、前記複数の方向の検索と並行して関連のアドレスの各々のタグ部を検索する複数のタグメモリを具える。
【００１７】
タグメモリアクセスが並行に、すなわち、実際の方向のメモリアクセスと同一サイクルで行われるので、アクセスサイクルの終了時にのみ全てのキャッシュ方向メモリの正確なデータを選択することは、アドレスコンフリクトを防止できることを意味する。
【００１８】
データスペースごとに位置基準が存在するという事実を用いることによって、最も簡単な方法において、次のメモリアクセスが以前のメモリアクセスと同一方向のアクセスである可能性が高いと仮定することができる。これは、アクセスしたアドレスのタグ部と以前のアドレスとの比較や、アドレス及びメモリブロックの最もあり得る組合せを選択する結果の使用のような最も簡単な形態の予測を利用できることを意味する。これは、例えばメモリアクセスを含まない比較的低コストの動作である。この予測に基づいて、アクセスを以前のアクセスと同一の方向に従って処理することができる。誤った予測の場合、もう一度アクセスを実行することができ、もう一度のアクセスは、追加のアクセスを実行するための追加のサイクルを必要とする。
【００１９】
予測を、複数の異なる方法で行うことができ、例えば、前記予測器が、最近のｎ回のアクセスの履歴を維持し、次の方向を予測するために前記履歴の傾向を調べ、又は、前記予測器が、異なるＮ方向まで予測するために最近のＮ回のアクセスをスペースごとに使用し、この場合、Ｎを、アドレスポインタの個数に等しくする。また、前記予測器が、アドレスポインタのセット内のどのアドレスポインタが要求を行うかを確立するとともにどのアドレスポインタが要求を行ったかに基づいて前記次の方向を予測する手段を更に有してもよい。
【００２０】
また、ＤＳＰプログラムの規則的な構造のために、シングルアクセスが異なって用いられると仮定すると、デュアルアクセスを追跡するだけで十分であり（例えば、デュアルアクセスがデータ及びコフィーシエントフェッチを行い、シングルアクセスを結果書込みとする。）、コンフリクト状態の予測に加えられない。これによって、予測ユニットに保持される履歴の量が従来の最適化に比べて減少する。
【００２１】
本発明のマルチポートキャッシュメモリを、携帯電話機、電子ハンドヘルド情報装置（パーソナルデジタルアシスタント、ＰＤＡ）、ラップトップ等の多数の種々の装置のデジタル信号プロセッサに組み込むことができる。
【００２２】
本発明を更に理解知るために、添付図面を参照しながら詳細に説明する。
【発明を実施するための最良の形態】
【００２３】
本発明の好適な実施の形態を、図２を参照して説明する。マルチポートキャッシュメモリ２００を、デュアルポート（デュアルハーバード）アーキテクチャとする。ここではデュアルポートメモリを示すが、任意の個数のポートを実現することができる。簡単のために、好適な実施の形態によるキャッシュの動作を、キャッシュの読出しを参照して説明する。
【００２４】
書込みを、他の方法でバッファリングし又はキューすることがでできる。
【００２５】
本発明を、最近のＤＳＰアーキテクチャに対して典型的であるように、キャッシュメモリを有する（デュアルハーバードに基づく）ＤＳＰを含む全てのアプリケーションで実現することができる。これらの例は、携帯電話、オーディオ装置（ＭＰ３プレーヤ）等を含む。
【００２６】
本発明の好適な実施の形態のマルチポート（デュアルポート）キャッシュメモリ２００は、第１入力ポート２０１及び第２入力ポート２０２を具える。各入力ポート２０１，２０３は、各アドレスデコーダ２０５，２０７に接続される。
【００２７】
第１アドレスデコーダ２０５の一方の出力端子は、第１タグメモリ２０９の入力部及び予測論理回路２１１の入力部に接続される。第１アドレスデコーダ２０５の他方の出力端子は、第１タグメモリ２０９の他の入力部及び複数のマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの第１入力部に接続される。
【００２８】
第２アドレスでコーダ２０７の一方の出力端子は、第２タグメモリ２１５の入力部及び予測論理回路２１１の他の入力端子に接続される。第２デコーダ２０７の他の出力端子は、第２タグメモリ２１５の他の入力部及び複数のマルチプレクサマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの第２入力部に接続される。
【００２９】
予測論理回路２１１の出力部は、複数のマルチプレクサマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの各々に接続される。各マルチプレクサマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの出力部は、複数のシングルポートメモリブロック２１９ａ，２１９ｂ，２１９ｃ及び２１９ｄの各入力ポート２１７ａ，２１７ｂ，２１７ｃ及び２１７ｄに接続される。各シングルポートメモリブロック２１９ａ，２１９ｂ，２１９ｃ及び２１９ｄの出力ポート２２１ａ，２２１ｂ，２２１ｃ及び２２１ｄは、第１及び第２方向マルチプレクサ２２３，２２５の各入力部に接続される。
【００３０】
第１タグメモリ２０９の出力部は、第１方向マルチプレクサ２２３に接続され、第２タグメモリ２１５の出力部は、第２方向マルチプレクサ２２５に接続される。第１方向マルチプレクサ２２３の出力部は、キャッシュメモリ２００の第１出力ポート２２７に接続される。第２方向マルチプレクサ２２５の出力部は、キャッシュメモリ２００の第２出力ポート２２９に接続される。
【００３１】
図１を参照して既に説明した従来のキャッシュメモリの動作と同様に、各アドレスＸ及びＹは、第１入力ポート２０１及び第２入力ポート２０３にそれぞれ配置される。アドレスは、各デコーダ２０５，２０７によりタグ部（上位ビット）及びインデックス（下位ビット）に分割される。タグ部は、各デコーダの一方の出力端子に配置され、各タグメモリ２０９，２１５に入力される。各アドレスＸ及びＹのインデックスは、各タグメモリ２０９，２１５にも入力される。検索がタグに従って実行され、各Ｘ方向セレクタ及びＹ方向セレクタが、各Ｘ方向マルチプレクサ２２３及びＹ方向マルチプレクサ２２５に出力される。各アドレスＸ及びＹのタグは、次の方向の予測を助けるために予測論理回路にも入力される。各入力アドレスＸ，Ｙの各インデックスは、複数のマルチプレクサマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの各々の各入力部に配置される。予測論理回路２１１の出力部は、どのインデックスを複数のマルチプレクサマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ及び２１３ｄの各々の出力部に配置するかを選択する。選択されたインデックスは、各メモリブロック２１９ａ，２１９ｂ，２１９ｃ，２１９ｄの各入力ポート２１７ａ，２１７ｂ，２１７ｃ，２１７ｄに配置される。
【００３２】
選択されたインデックスは、キャッシュラインメモリロケーション、すなわち、各メモリブロック２１９ａ，２１９ｂ，２１９ｃ，２１９ｄから出力される各メモリブロック２１９ａ，２１９ｂ，２１９ｃ，２１９ｄの方向にアクセスする。各メモリブロック２１９ａ，２１９ｂ，２１９ｃ，２１９ｄの出力部は、第１及び第２方向マルチプレクサ２２３，２２５によるＸ方向セレクタ及びＹ方向セレクタによって選択され、アドレス指定されたデータが第１出力ポート２２７又は第２出力ポート２２９に出力される。
【００３３】
好適な実施の形態によれば、タグメモリ検索は、検索の出力と同時に実行され、Ｘ方向セレクタ及びＹ方向セレクタは、メモリアクセスの終了時に正確な出力を選択する。
【００３４】
予測論理２１１は、選択の正確さを確認するためにアクセスサイクルの終了時にタグメモリアクセスに起因する実際の値をモニタする。誤った予測の場合、誤ったアドレスが特定のメモリブロックに送信され、例えば、Ｙ値を含むメモリブロックがＸアドレスによってアドレス指定される。この場合、メモリアクセスを、従来のキャッシュアクセスによるマルチプレクサ２１３ａ，２１３ｂ，２１３ｃ，２１３ｄの代わりにタグメモリ（２０９，２１５）から決定されるような正確なアドレスで再び行う必要がある。
【００３５】
予測を多数の方法で行うことができる。最も簡単な形態では、次のアクセスが以前のアクセスと同一であると仮定することによって次のアクセスを予測することである。他の方法は、タグ／方向対の履歴を保持するとともに履歴の傾向を調べることによって次の方向を予測する。この方法は、前者の方法に比べて誤った予測を行う可能性が低い。しかしながら、広大な履歴を維持することは、タグメモリを重複させるメモリを必要とする。したがって、好適な方法は、更に正確かつ迅速な予測を行うために高速レジスタにおいて最近の数回のアクセスの記録を維持することであり、これは、高価で低速になる大きなメモリリソースを有しない。
【００３６】
更に複雑な予測形態は、異なるＮ（Ｎを、ＤＳＰアドレスポインタの個数に等しくする。）の方向まで予測するために最近のＮ回のアクセスをスペースごとに用いる。
【００３７】
ＩＳＡ及びコンパイラ技術を、方向の誤った予測を減少し又は除去するために方向の割当てを案内するのに用いることができる。したがって、予測は、タグ／方向の組合せが更に構造化された予測可能な方法で用いられることを確認することによって更に信頼性のあるものとなる。
【００３８】
予測を、方向メモリのフラグメンテーションを防止するためにキャッシュビクチム選択アルゴリズムに情報を追加することによって行うこともできる。次に予測されるキャッシュラインは、現在のラインと同一の物理メモリブロックである可能性が最も高くなる。
【００３９】
一般に、方向ロッキングは、ＸメモリスペースとＹメモリスペースの両方を設定可能な個数の区分にほぼ動的に分割する機構となる。各区分に対して、複数の方法を割り当てることができ、この区分が両方のアクセスポートに亘って共有されているか否かのフラグをたてることができる。
【００４０】
アクセスの情報を更に多く有することによって、例えば、ポインタのセットのどのポインタが要求を行っているかを知ることによって、予測精度を向上することができる。これは、プロセッサからの追加の情報を予測器に送出する必要がある。
【００４１】
このようにして、シングルポートメモリブロックをマルチポートキャッシュで利用することができる。
【００４２】
本発明のシステムの好適な実施の形態を、添付図面を参照しながらこれまで説明してきたが、本発明は、開示した実施の形態に限定されるものでなく、特許請求の範囲に記載したような本発明の範囲を逸脱することなく種々の変更及び変形が可能である。
【図面の簡単な説明】
【００４３】
【図１】図１は、既知のＮ方向のセットアソシエーティブＤＳＰ用キャッシュアーキテクチャの簡単化したブロック図を示す。
【図２】図２は、本発明の実施の形態によるＤＳＰ用マルチポートキャッシュアーキテクチャの簡単化したブロック図を示す。
【図１】
2008542945.tif 000003
【図２】
2008542945.tif 000004
【国際調査報告】
2008542945.tif 000005
2008542945.tif 000006