(57)【要約】複数のタグメモリを用いて、多数同時ストア動作をサポートするキャッシュメモリシステム及び方法を提供する。キャッシュデータシステムはさらに、ストア機能と同時の単一のキャッシュロード機能と共に、多数同時キャッシュストア機能を提供する。実施形態は、キャッシュ書込みバッファが、キャッシュメモリシステム又は装置への、データストア動作に対するボトルネックとして動作しない、キャッシュメモリを創出する。
2009512933.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュデータをストアするキャッシュデータメモリと；
ストア動作のアドレスを算出するスロット（０）のアドレス算出論理回路と；
前記スロット（０）のアドレス算出論理回路からアドレス情報を受信するスロット（０）のタグアービタと；
前記スロット（０）のタグアービタによってアクセスするスロット（０）のタグＳＲＡＭと；
前記キャッシュデータメモリ向けの、ペンディングストアデータを受信及びストアするのキャッシュ書込みバッファと；
ストア動作のアドレスを算出するスロット（１）のアドレス算出論理回路と；
前記スロット（１）のアドレス算出論理回路からアドレス情報を受信するスロット（１）のタグアービタと；
前記スロット（１）のタグアービタによってアクセスするスロット（１）のタグＳＲＡＭと；
を備え、
前記スロット（０）のタグＳＲＡＭ、前記スロット（１）のタグＳＲＡＭ、及び前記キャッシュ書込みバッファの組み合わせは、２つの同時ストア動作を行い、
前記キャッシュ書込みバッファからのスロット（０）のストアデータ及びスロット（１）のストアデータは、前記キャッシュデータメモリに供給される、
ことを特徴とするキャッシュシステム。
【請求項２】
前記スロット（０）のタグＳＲＡＭ、前記スロット（１）のタグＳＲＡＭ、及び前記キャッシュ書込みバッファの前記組み合わせは、スロット（０）のストア動作及びスロット（１）のロード動作を同時に行う、
請求項１記載のキャッシュシステム。
【請求項３】
前記キャッシュデータメモリは、複数のＳＲＡＭ装置を備え、
ストアデータを、メモリアドレスに基づくキャッシュデータのインターリーブを用いて、前記キャッシュデータメモリにストアする、
請求項１記載のキャッシュシステム。
【請求項４】
前記キャッシュ書込みバッファによる、前記キャッシュデータメモリへのアクセスを、前記キャッシュデータメモリへのロード動作と同時に行う、
請求項３記載のキャッシュシステム。
【請求項５】
前記キャッシュシステムは、マルチポートキャッシュシステムではない、
請求項１記載のキャッシュシステム。
【請求項６】
前記キャッシュシステムは、擬似マルチポートキャッシュシステムである、
請求項１記載のキャッシュシステム。
【請求項７】
前記キャッシュデータメモリにおけるＮ個の同時のストア動作をサポートするために接続される、Ｎ個までのスロットＮのタグＳＲＡＭ、
をさらに備える、
請求項１記載のキャッシュシステム。
【請求項８】
前記キャッシュシステムは、前記キャッシュデータメモリにおいて同時に、Ｎ−１個の同時ストア動作、及び、１個のロード動作を行う、
請求項７記載のキャッシュシステム。
【請求項９】
スロット（０）のストアデータを、スロット（０）のタグに基づくキャッシュデータメモリにストアするステップと、
スロット（１）のストアデータを、スロット（１）のタグに基づくキャッシュデータメモリに、前記スロット（０）のストアデータのストアステップと同時に、ストアするステップと、
を含むことを特徴とする、擬似マルチポートキャッシュシステムの利用方法。
【請求項１０】
１つ以上の前記ストアするステップと同時に、前記キャッシュデータメモリからのロード動作を行うステップをさらに含む、
請求項９記載の方法。
【請求項１１】
スロット（０）のからスロット（ｎ）のストアデータを、前記擬似マルチポートキャッシュメモリシステムに同時にストアするステップをさらに含む、
請求項９記載の方法。
【請求項１２】
前記キャッシュデータメモリは、複数の個別ＳＲＡＭを備え、前記ストアするステップを、インタリーブストレージ法を用いて行う、
請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ、及び該キャッシュメモリにデータをストア（格納）及びロードする方法に関する。特に、本発明は、多数のストア動作を同時にサポートできる、又はキャッシュデータメモリへのロード動作に加えて少なくとも１つのストア動作を同時にサポートできる、ビット書込み機能を備えるシングルポートのＳＲＡＭを利用する、キャッシュメモリ装置及びシステムアーキテクチャに関する。
【発明の開示】
【０００２】
本発明の実施形態は、キャッシュメモリシステムを含む。このキャッシュメモリシステムは、キャッシュデータをストアするキャッシュデータメモリと、キャッシュタグ及び有効（Ｖａｌｉｄ）ビットをストアする２つ以上のキャッシュタグメモリとを含む。スロット（０）のアドレス算出論理回路は、ストア動作のアドレスを算出する。スロット（０）のタグアービタは、このスロット（０）のアドレス算出論理回路からアドレス情報を受信して、この情報を用いて、スロット（０）のタグＳＲＡＭにアクセスする。キャッシュ書込みバッファは、キャッシュデータメモリ向けの、ペンディングストアデータを、受信してストアする。また、スロット（１）のアドレス算出論理回路を用いて、スロット（１）のタグＳＲＡＭに対するストア動作のアドレスと、キャッシュデータに対するロード動作アドレスを算出する。スロット（１）のタグアービタは、スロット（１）のアドレス算出論理回路からアドレス情報を受信し、スロット（１）のタグＳＲＡＭへのアクセスを試みる。スロット（０）のタグＳＲＡＭ、スロット（１）のタグＳＲＡＭ、及びキャッシュ書込みバッファの組み合わせを、キャッシュデータメモリへの、２つのほぼ同時のストア動作を行うために利用する。本発明の他の実施形態では、キャッシュデータメモリは、シングルポートＳＲＡＭメモリ装置を備える。また、本発明の他の実施形態は、スロット（１）及びスロット（０）のそれぞれにより、キャッシュデータメモリにデータを同時にロード及びストアすることを可能にする。また、本発明の他の実施形態は、複数のＳＲＡＭ装置を利用するキャッシュデータメモリを提供する。このキャッシュデータメモリ内の複数のＳＲＡＭ装置は、メモリアドレスに基づいてキャッシュデータをインタリーブする手段をもたらす。このようなインタリーブにより、キャッシュデータメモリ中で、多数の個別シングルポートＳＲＡＭメモリ装置を用いないキャッシュデータメモリが、データフローの帯域幅を増加することが可能になる。
【０００３】
さらに、本発明の他の実施形態は、擬似マルチポートキャッシュシステムとみなされる、キャッシュシステムを含む。このようなキャッシュシステムは、マルチポートＳＲＡＭメモリを備えて設計された類似のキャッシュシステムよりも、必要とするスペースがより小さい。
【０００４】
また、本発明の他の実施形態では、複数のタグＳＲＡＭメモリをこのキャッシュシステムに加えることにより、キャッシュメモリにおいて、付加的な同時ストア機能を可能にすることができる。つまり、２つ以上のタグＳＲＡＭメモリは、２つ以上のスロット（Ｎスロットまで；Ｎは正の整数）が、キャッシュメモリシステムのキャッシュデータメモリに、各スロットに対するストアデータを同時にストアすることを、可能にすることができる。
【０００５】
本発明のさらに他の実施形態は、スロット（１）のストアデータを同じキャッシュデータメモリに保存するのとほぼ同時に、スロット（０）のストアデータをキャッシュデータメモリにストアする、擬似マルチポートキャッシュシステムを利用する方法を提供する。
【０００６】
本発明の上記概要は、本発明の各実施形態又は全ての態様を表すものではない。
【０００７】
本発明の方法及び装置のより完全な理解は、以下の詳細な説明と、添付の図面とを併せて参照することにより得ることができる。
【発明を実施するための最良の形態】
【０００８】
キャッシュは何年にも渡って利用されている。さらに、メモリアドレス参照の、時間的及び空間的な局所性を活用するために、様々な設計技法が用いられている。キャッシュは、マイクロプロセッサ及び他のプロセッサ設計においてよく用いられる。今日では、プロセッサは、典型的には、１６、３２、又は６４ビットのメモリアドレス空間を有する。このようなメモリアドレス空間は、メモリ空間中に、２１６、２３２、又は２６４個の、個別にアドレス指定可能なデータ要素をもたらす。このような大量のアドレス空間に対処するため、メモリアドレス参照における局所性を活用するデータストア構体のメモリ階層は、典型的には、このようなプロセッサをサポートしている。通常、プロセッサの近くに位置するメモリストレージ構体は、構体内（即ちＬ１メモリ）にストアされた要素への高速アクセスを可能にする。このような、プロセッサの近くに位置するストア構体は、典型的には、比較的小さいストレージ容量を有する。このより小さいストレージ容量は、典型的には、プロセッサのアドレス空間における全ての個別にアドレス指定可能なストレージ要素を保存するには、十分大きくない。プロセッサからより離れて位置するストレージ構体（即ちＬ２メモリ）は、通常、プロセッサの近くに位置するストレージ構体よりも低速なアクセス時間を有する。プロセッサからより離れたストレージ構体は、通常、プロセッサの近くに位置するストレージ構体より、かなりより大きなストレージ容量を有する。バランスの取れたメモリ階層は、プロセッサによって必要とされる全てのストレージ要素への高速なアクセスをもたらし得る。キャッシュ構体はメモリアドレス参照における局所性を利用しようとするため、プロセッサによる高速アクセスは、プロセッサにより近いストレージ構体に、キャッシュ設計を適用することによって実現できる。
【０００９】
以下に、従来技術のダイレクトマップキャッシュ設計１０を手短に説明する（同様に連想キャッシュ設計もあるが、本発明の実施形態の範囲に関しては関係がない。）。
【００１０】
ここで図１を参照すると、従来技術のダイレクトマップキャッシュ設計１０が示されている。メモリアドレス空間は３２ビットとする。３２ビットのメモリアドレス空間によって、合計２３２又は４ギガのデータ要素を個別にアドレス指定することができる。説明を簡潔にするため、データ要素より、バイトにて説明を行う。さらに、例えば、キャッシュ装置１０は、６４Ｋバイト（２１６バイト）のストレージ容量、及び、３２バイトのキャッシュブロックサイズ（ラインサイズとしても知られる）を有するものとする。キャッシュブロック１２は、メモリ階層３０において、キャッシュ１０と他のストレージ構体との間を単一データエンティティとして転送される、連続するバイトグループである。メモリアドレスがアドレス空間におけるバイトを参照するために、メモリアドレスを３２ビットの値Ａ〔３１：０〕で表し、ここで、ビット３１はアドレスの最上位ビットであり、ビット０はアドレスの最下位ビットである。アドレスＡをキャッシュ１０へのアクセスに用いる。図１の例において、３２バイトのブロックサイズを備える６４Ｋバイトのキャッシュでは、ビット３１からビット１６をタグとして用いて、ビット１５からビット５をブロックアドレス（ライン又はセットアドレスとしても知られる）として用いて、且つ、ビット４からビット０をバイトインデックスとして用いる。ブロックアドレスを、キャッシュメモリ構体１６に含まれる、キャッシュタグメモリ２０と、データメモリ１８との双方にインデックスをつけるために用いる。タグメモリ２０から読み出されたタグを、アドレスＡの一部であるタグと比較する。これは、参照するブロックがキャッシュ１０に存在するか判定するために行う。データメモリ１８から読み出されたブロックを、参照するバイト要素を選択するために用いる。アドレスＡのバイトインデックス値を用いることによって、参照するバイト要素を選択する。
【００１１】
また、図１を参照すると、従来技術のキャッシュ設計１０は、ビット書込み機能を備えるシングルポートＳＲＡＭを用いる。換言すると、メモリは、ビットマスクによって識別されるように、メモリロケーション中の特定ビットの選択的な更新を可能にする。この機能は、選択的な更新を通じて、最初にロケーションのデータを読み出さずに、メモリロケーションのデータの選択的なマージを可能にする。
【００１２】
また、図１を参照すると、キャッシュパイプラインによるストア動作及びロード動作のフローを示している。ストア動作は、アドレス算出回路２２により、ステージＡにて動作用のアドレスを算出する。ステージＢでは、タグアービタ２６を介して、タグメモリ構体２０へのアクセスが要求される。タグメモリ構体へのアクセスは、ストア動作が関係するスロットに基づく。ストア動作の間にはキャッシュメモリ構体からデータを読み出す必要がないため、ストア動作は、データメモリ構体１８へアクセスする必要がないことに留意されたい。ステージＣでは、キャッシュメモリ構体１６のタグメモリ部２０にアクセスする。タグ比較論理回路３４は、他の制御情報と共に、キャッシュヒット信号（ヒットした場合）を得る。ステージＤでは、動作制御状態マシン３２は、タグ比較論理回路３４からもたらされる制御情報に基づいて動作する。キャッシュミスの場合には、キャッシュラインを割り当てる。キャッシュヒットの場合には、キャッシュメモリ構体１６の一部であるキャッシュメモリ１８にストアされるデータ（ストアデータ）を、キャッシュ書込みバッファ（ＣＷＢ）２８に送る。１サイクル後、ストアデータをＣＷＢ２８に与え、ＣＷＢ２８はデータメモリ構体１８へのアクセスを要求する。キャッシュデータメモリ構体１８へのアクセスが許可された場合、後続のサイクルにおいて、ストアデータをキャッシュデータメモリ構体１８に入れる。キャッシュデータメモリ構体１８へのアクセスが許可されない場合、メモリ構体１６、及び特にキャッシュデータメモリ構体１８への、ストアデータ２７の更新を、ＣＷＢ２８が構体へのアクセスが許可される時点まで延期する。その間、ストアデータ２７は、ＣＷＢ２８においてペンディングのままであり、ＣＷＢ２８は、６つまでのペンディングストアデータに対応したストレージ容量を備える。
【００１３】
ロード動作は、アドレス算出回路２２により、ステージＡにて動作用のアドレス算出する。ステージＢでは、それぞれアクセスアービタ２６及びデータメモリアクセスアービタ２４を介して、タグメモリ構体２０及びデータメモリ構体１８へのアクセスが要求される。ステージＣでは、メモリ構体１６にアクセスする。つまり、キャッシュデータ構体１８及びタグメモリ構体２０にアクセスする。キャッシュデータメモリ１８は、データ経路１２にデータを提供する。さらに、ステージＤの動作又はＣＷＢ２８のいずれかに属する、先行するストア動作と競合するロードアドレスを、ロードアライナ兼符号拡張回路３０において識別する。制御状態マシン３２は、タグ比較論理回路３４から取得した所与の制御情報に基づいて動作する。キャッシュミスの場合、リフィルユニットライン３６（リフィルユニットは特には図示せず）を介して、リフィルユニットにより、メモリからキャッシュラインを読み出す。先行するストア動作とアドレスが競合する場合、ストアデータをデータメモリ構体１６に入れ、ロード動作を再実行する。
【００１４】
図１と、従来技術のキャッシュパイプライン１０によるストア及びロード動作のフロー説明から理解されるように、データメモリ構体１６の即時利用可能性は、ロード動作に対してのみ必要であると結論付けることができる。ロード動作は通常、固定的な動作レイテンシーを有する（この模範的実施形態では４）。しかしながら、ストア動作は動作レイテンシーを有さず、そのデータ更新を、データメモリ構体１６が利用可能になる後の時点まで延期することができる。
【００１５】
従来技術のキャッシュパイプライン１０のシステムのタグ及びメモリ構体（１８，２０）は、典型的には、シングルポートＳＲＡＭメモリから構築される。つまり、データＳＲＡＭ１８及びタグＳＲＡＭ２０は、それぞれ、シングルポートＳＲＡＭメモリを利用して作られる。シングルポートＳＲＡＭは、高価ではなく、少量の回路領域しか必要とせず、そして、高速なメモリ回路とみなされているため、これらのシングルポートＳＲＡＭメモリが利用されている。しかしながら、それらのシングルポートという特性は、その使用に制限をかけている。今日では、マルチポートＳＲＡＭが利用可能であるが、マルチポートＳＲＡＭは比較的高価であり、シリコン上により大きなフットプリント又は領域を必要とすることは確かである。さらに、マルチポートＳＲＡＭは、対抗のシングルポートＳＲＡＭよりも低速である。従って、マルチポートＳＲＡＭ設計による多数の同時ロード及びストア動作のサポートは、必要となるシリコン領域の量や低速クロック周波数での動作からして、好ましいものではない。代替的なキャッシュメモリアプローチは、従来技術にて策定されている。これらのアプローチは、典型的には、“擬似デュアルポート”ＳＡＲＭ装置を用いる。擬似デュアルポートＳＲＡＭ装置から作られるこのようなキャッシュメモリシステムは、多数の同時ロード及びストア動作をサポートできるが、それらの“擬似”特性が、性能をロスすることなく同時動作をサポートすることができない場合には、性能の低下を被ることになる。このように、多数の同時ロード及び／又はストア動作を行う場合には、高い帯域幅で、性能の低下を被ることなく動作できるキャッシュメモリが必要である。
【００１６】
本発明の実施形態では、シリコン領域又はフットプリントに関するわずかな付加的なコストにより、多数の同時ストア動作及び一つのロード動作をサポートする、擬似マルチポートキャッシュを提供する。シングルポート又は擬似デュアルポートＳＲＡＭ構体を用いる、従来技術のキャッシュパイプラインによる、従来技術のストア及びロード動作の図１のフローを注意深く検討すると、データメモリ構体の即時利用可能性は、ロード動作に対してのみ必要となることに注目される。ロード動作は、コンパイラ動作スケジュールに対して加味される、４という固定的な動作レイテンシーを有する。しかしながら、ストア動作は動作レイテンシーを有さず、これらのデータ更新機能は、データメモリ構体が利用可能になる後の時点まで延期できる。
【００１７】
２つの無制限のストア動作をサポートするためには、本発明の実施形態は、従来技術の構体のタグメモリを単に二倍にすることにより十分とすることができる。２つの無制限のロード動作が望ましい場合には、データメモリは領域及びメモリサイズを二倍（図１の従来技術のキャッシュシステムと比較する場合）にする必要があるだろう。データメモリ構体におけるメモリを二倍にすることは、タグメモリ構体におけるメモリを二倍にするよりもより高価であり、キャッシュラインタグエントリが必要とするビットは、キャッシュデータライン構体よりかなり少ないため、タグメモリを二倍にすることは、本発明の実施形態にとって有利となることは明らかである。
【００１８】
ここで図２を参照すると、本発明の実施形態に従ったキャッシュ構体４０が示されている。この模範的な実施形態では、ストア動作をサポートする、各付加的な発行スロットに対する付加的なタグメモリ構体を追加している。つまり、図２は、２つの同時ストア動作、又は１つのロード動作と同時のストア動作をサポートする、模範的なキャッシュシステム４０の例を示す。この２つのストア動作は、スロット（０）４２及びスロット（１）４４の両発行スロットを用いることができる。これに対し、ロード動作は、第２の発行スロットであるスロット（１）４４のみを用いることができる。
【００１９】
まず、ストア動作では、ステージＡの、スロット（０）４２及びスロット（１）４４それぞれに対するアドレス算出部４６及び４８において、アドレスを算出する。ステージＢでは、タグメモリ構体５４及び５６それぞれにアクセスするための、アクセスアービタ５０及び５２によって、タグメモリへとアクセスを要求する。キャッシュメモリ構体５８から読み出すデータはないため、全てのストア動作は、データメモリ構体５８中のデータにアクセスする必要がないことに留意されたい。ステージＣでは、ストアデータへの適切なスロット（０又は１）に対するタグ構体にアクセスする。このように、スロット（０）に対しては、タグメモリ構体５４にアクセスし、タグ比較論理回路６０は、ヒットしている場合には、キャッシュヒット信号、及び、他の制御情報を取得する。キャッシュミスの場合には、キャッシュラインを割り当てる。キャッシュヒットの場合には、ストアすべきデータをキャッシュ書込みバッファ（ＣＷＢ）６４に送る。１サイクル後、このデータをＣＷＢ６４に与え、このバッファはデータメモリ構体５８へのアクセスを要求する。ＣＷＢ６４に対し、データメモリ構体へのアクセスが許可された場合、後続のサイクルにおいて、ストアデータをデータメモリ構体５８に入れる。データメモリ構体へのアクセスが許可されない場合、メモリ構体中のストアデータの更新を、ＣＷＢ６４がデータメモリ構体５８へのアクセスを許可される後の時点まで延期する。その間、ストアデータはペンディングのままである。ＣＷＢ６４は、６つまでのペンディングストアデータに対応したストレージ容量を備える。ＣＷＢは、ＣＷＢからデータメモリ構体への、２つのストアデータを同時に更新させることができる。この同時更新は、更新が、構体の必要とするＳＲＡＭメモリに関して競合しない場合に制限される。各サイクルでデータメモリ５８により多くのストアデータをストアできるため、同時ストレージ能力により、ＣＷＢ６４は、データメモリ５８にストアされるストアデータに対するボトルネックになりにくい。
【００２０】
同時に、他のストア機能をスロット（１）にて実行できる。ここでは、アドレス算出回路ブロック４８においてアドレス算出を実行してから、スロット（１）のタグアクセスアービタ５２を介してスロット（１）のタグメモリ５６にアクセスするために用いる。タグ比較はブロック６２にて行い、キャッシュヒット又はミスを判定し、この情報を、付加的な制御情報とともにスロット（１）の制御状態マシン７２に供給する。スロット（０）にてキャッシュヒットがもたらされる場合、キャッシュデータメモリ５８にストアされるデータをＣＷＢ６４に送る。１サイクル後、ストアすべきデータをＣＷＢ６４に与え、ＣＷＢ６４はデータメモリ構体５８へのアクセスを要求する。データメモリ構体５８へのアクセスが許可された場合、後続のサイクルにおいて、ストアすべきデータ（ストアデータ）をデータメモリ構体５８に入れる。アクセスが許可されない場合、メモリ構体５８中のストアデータの更新を、ＣＷＢ６４がメモリ構体５８へのアクセスを許可される後の時点まで延期する。その間、ストアデータはＣＷＢ６４にてペンディングのままである。上述の通り、この模範的実施形態では、ＣＷＢ６４は、約６つまでのペンディングストアデータに対応したストレージ容量を備える。２つのタグメモリの使用により、同一クロックサイクルの間に、２つの同時ストア動作が発生することが出来る。
【００２１】
本発明の実施形態はまた、同一クロックサイクルにおいて、同時にストア及びロード動作を行うことが出来る。ロード動作は、この模範的実施形態のスロット（１）４４においてのみ行うことが出来る。従って、ストア動作はスロット（０）４２において行う。スロット（０）におけるストア動作は上記の通り行う。一方、スロット（１）におけるロード動作は、ステージＡのアドレス算出論理回路４８において、動作用のアドレス算出する。ステージＢでは、タグメモリ構体５６及びデータメモリ構体５８へのアクセスを要求する。ステージＣでは、データメモリに対するアクセスアービタ６６を介してメモリ構体にアクセスし、スロット（１）のタグアクセスアービタ５２を介してスロット（１）のタグメモリ５６にアクセスする。データメモリ構体５８は、ブロックサイズアドレスに位置するキャッシュラインを供給する。さらに、ステージＤ又はＣＷＢ６４のいずれかに属する、先行するストア動作とのアドレス競合を識別する。スロット（１）に対する制御状態マシン７２は、例えば、タグ比較論理回路６２から取得した、所与の制御情報に基づいて動作する。キャッシュミスの場合、リフィルユニットによって、メモリからキャッシュラインを読み出す。先行する、又は同時ストア動作とのアドレス競合がある場合、ストアデータをまずデータメモリ構体５８に入れ、そしてロード動作を再実行する。
【００２２】
他の観点から説明すると、ＣＷＢ６４は、ＣＷＢ６４からデータメモリ構体５８への、２つの同時（即ち同一クロックサイクル間の）ストアデータ更新に対するストアデータを提供することが出来る。この同時更新は、構体の必要とするＳＲＡＭメモリに関して更新が競合しない場合に制限される。結果として、２つのＣＷＢデータストアエントリを、データメモリ構体への、同一タイムフレーム及び／又は単一のアクセスサイクルに移動させる。ストア合成（ｓｔｏｒｅ  ｃｏｍｂｉｎｉｎｇ）として既知であるこのアプローチは、ＣＷＢ６４が、模範的キャッシュ設計において性能のボトルネックとなることを防ぐ。
【００２３】
図３に示すように、データメモリ構体５８の実装に多数のＳＲＡＭメモリ装置を用いる場合、アドレスに基づくキャッシュデータのインタリーブは、ＣＷＢ６４からメモリ構体５８へのアクセスと、発行された動作を同時にすることができる。このインタリーブはまた、メモリ構体への実効帯域幅を増加させる。例えば、４つのＳＲＡＭ５８ａ、５８ｂ、５８ｃ及び５８ｄを備える実装を図３に示す（４つ以上の個別ＳＲＡＭ装置を用いることが出来る）。この模範的実施形態におけるＳＲＡＭの区分化は、アドレスのビット３及びビット２に基づく。つまり、同じアドレスビット３及びビット２（００，０１，１０，１１）を共有する全てのバイト要素は、同じＳＲＡＭ内に存在する。結果として、キャッシュラインバイトは、４バイト要素の粒度によって、ＳＲＡＭでインタリーブされる。従って、ＳＲＡＭ“００”５８ａへのＣＷＢアクセスは、ＳＲＡＭ“０１”５８ｂへのロード動作アクセスと同時に進行することができる。ＳＲＡＭの区分化を用いる模範的な実施形態の実装において、メモリ装置５８へのこの種類の同時アクセスを行う必要がある場合には、アクセスアービトレーションは、データメモリ構体全体に対してというよりむしろ、個別のＳＲＡＭレベルで実行しなければならない。図３に示すように、個別ＳＲＡＭへのアクセスを可能にするために、４つのアクセスアービタを利用する。
【００２４】
本発明の他の模範的実施形態では、キャッシュシステム及びパイプラインにおいて、Ｎ個の同時ストア動作を実行できる。Ｎは２以上の整数である。図２に戻って参照すると、ｎ番目のスロット８０はステージＡにてアドレス算出８２を実行し、ステップＢにてアクセスアービトレーション８４を行う。ステージＣでは、スロット（Ｎ）のタグ８６にアクセスし、タグ比較機能８８を実行してヒット又はミスを判定する。原則的に、ｎ番目のスロット８０は、スロット０又は１いずれかと同様の方法でストア動作を行う。このように、本発明の実施形態は、Ｎ個の同時ストア機能、又は、１つの同時ロード機能と共にＮ−１個の同時ストア機能を可能にする。この機能は、キャッシュメモリのキャッシュデータメモリサイズを増加するよりも占めるスペースが少ないという、キャッシュメモリのタグメモリサイズを増加することにより達成される。
【００２５】
当業者であれば、この発明の詳細な説明で記載した、多数同時ストアのキャッシュメモリ又は多数ストア及びロードのキャッシュメモリに関して、多様な修正及び変更を理解及び推測し得るだろう。このように、本発明のわずかな好適な模範的実施形態を例示及び記載しているに過ぎない。本発明は開示した実施形態に限定されず、添付の特許請求の範囲によって記載及び規定される発明から外れることなく、付加的な再構成、修正及び代替が可能である。従って、本発明の範囲はこのような全ての構成を含み、特許請求の範囲のみによって限定されるものであることを理解されたい。
【図面の簡単な説明】
【００２６】
【図１】ダイレクトマップキャッシュ設計のブロック図である。
【図２】多数同時ストア動作および同時ロード動作をサポートする、本発明の模範的な擬似マルチポートキャッシュメモリのブロック図及びフローである。
【図３】キャッシュメモリ構体へのデータフローの実効帯域幅を増加する本発明に従った、キャッシュデータメモリの模範的実施形態のブロック図である。
【図１】
2009512933.tif 000003
【図２】
2009512933.tif 000004
【図３】
2009512933.tif 000005
【国際調査報告】
2009512933.tif 000006
2009512933.tif 000007