JP2009512933A - アクセス性の高いストア帯域幅を備えたキャッシュ - Google Patents

アクセス性の高いストア帯域幅を備えたキャッシュ Download PDF

Info

Publication number
JP2009512933A
JP2009512933A JP2008536192A JP2008536192A JP2009512933A JP 2009512933 A JP2009512933 A JP 2009512933A JP 2008536192 A JP2008536192 A JP 2008536192A JP 2008536192 A JP2008536192 A JP 2008536192A JP 2009512933 A JP2009512933 A JP 2009512933A
Authority
JP
Japan
Prior art keywords
cache
slot
store
tag
data
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.)
Pending
Application number
JP2008536192A
Other languages
English (en)
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of JP2009512933A publication Critical patent/JP2009512933A/ja
Pending legal-status Critical Current

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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

複数のタグメモリを用いて、多数同時ストア動作をサポートするキャッシュメモリシステム及び方法を提供する。キャッシュデータシステムはさらに、ストア機能と同時の単一のキャッシュロード機能と共に、多数同時キャッシュストア機能を提供する。実施形態は、キャッシュ書込みバッファが、キャッシュメモリシステム又は装置への、データストア動作に対するボトルネックとして動作しない、キャッシュメモリを創出する。

Description

本発明は、キャッシュメモリ、及び該キャッシュメモリにデータをストア(格納)及びロードする方法に関する。特に、本発明は、多数のストア動作を同時にサポートできる、又はキャッシュデータメモリへのロード動作に加えて少なくとも1つのストア動作を同時にサポートできる、ビット書込み機能を備えるシングルポートのSRAMを利用する、キャッシュメモリ装置及びシステムアーキテクチャに関する。
本発明の実施形態は、キャッシュメモリシステムを含む。このキャッシュメモリシステムは、キャッシュデータをストアするキャッシュデータメモリと、キャッシュタグ及び有効(Valid)ビットをストアする2つ以上のキャッシュタグメモリとを含む。スロット(0)のアドレス算出論理回路は、ストア動作のアドレスを算出する。スロット(0)のタグアービタは、このスロット(0)のアドレス算出論理回路からアドレス情報を受信して、この情報を用いて、スロット(0)のタグSRAMにアクセスする。キャッシュ書込みバッファは、キャッシュデータメモリ向けの、ペンディングストアデータを、受信してストアする。また、スロット(1)のアドレス算出論理回路を用いて、スロット(1)のタグSRAMに対するストア動作のアドレスと、キャッシュデータに対するロード動作アドレスを算出する。スロット(1)のタグアービタは、スロット(1)のアドレス算出論理回路からアドレス情報を受信し、スロット(1)のタグSRAMへのアクセスを試みる。スロット(0)のタグSRAM、スロット(1)のタグSRAM、及びキャッシュ書込みバッファの組み合わせを、キャッシュデータメモリへの、2つのほぼ同時のストア動作を行うために利用する。本発明の他の実施形態では、キャッシュデータメモリは、シングルポートSRAMメモリ装置を備える。また、本発明の他の実施形態は、スロット(1)及びスロット(0)のそれぞれにより、キャッシュデータメモリにデータを同時にロード及びストアすることを可能にする。また、本発明の他の実施形態は、複数のSRAM装置を利用するキャッシュデータメモリを提供する。このキャッシュデータメモリ内の複数のSRAM装置は、メモリアドレスに基づいてキャッシュデータをインタリーブする手段をもたらす。このようなインタリーブにより、キャッシュデータメモリ中で、多数の個別シングルポートSRAMメモリ装置を用いないキャッシュデータメモリが、データフローの帯域幅を増加することが可能になる。
さらに、本発明の他の実施形態は、擬似マルチポートキャッシュシステムとみなされる、キャッシュシステムを含む。このようなキャッシュシステムは、マルチポートSRAMメモリを備えて設計された類似のキャッシュシステムよりも、必要とするスペースがより小さい。
また、本発明の他の実施形態では、複数のタグSRAMメモリをこのキャッシュシステムに加えることにより、キャッシュメモリにおいて、付加的な同時ストア機能を可能にすることができる。つまり、2つ以上のタグSRAMメモリは、2つ以上のスロット(Nスロットまで;Nは正の整数)が、キャッシュメモリシステムのキャッシュデータメモリに、各スロットに対するストアデータを同時にストアすることを、可能にすることができる。
本発明のさらに他の実施形態は、スロット(1)のストアデータを同じキャッシュデータメモリに保存するのとほぼ同時に、スロット(0)のストアデータをキャッシュデータメモリにストアする、擬似マルチポートキャッシュシステムを利用する方法を提供する。
本発明の上記概要は、本発明の各実施形態又は全ての態様を表すものではない。
本発明の方法及び装置のより完全な理解は、以下の詳細な説明と、添付の図面とを併せて参照することにより得ることができる。
キャッシュは何年にも渡って利用されている。さらに、メモリアドレス参照の、時間的及び空間的な局所性を活用するために、様々な設計技法が用いられている。キャッシュは、マイクロプロセッサ及び他のプロセッサ設計においてよく用いられる。今日では、プロセッサは、典型的には、16、32、又は64ビットのメモリアドレス空間を有する。このようなメモリアドレス空間は、メモリ空間中に、216、232、又は264個の、個別にアドレス指定可能なデータ要素をもたらす。このような大量のアドレス空間に対処するため、メモリアドレス参照における局所性を活用するデータストア構体のメモリ階層は、典型的には、このようなプロセッサをサポートしている。通常、プロセッサの近くに位置するメモリストレージ構体は、構体内(即ちL1メモリ)にストアされた要素への高速アクセスを可能にする。このような、プロセッサの近くに位置するストア構体は、典型的には、比較的小さいストレージ容量を有する。このより小さいストレージ容量は、典型的には、プロセッサのアドレス空間における全ての個別にアドレス指定可能なストレージ要素を保存するには、十分大きくない。プロセッサからより離れて位置するストレージ構体(即ちL2メモリ)は、通常、プロセッサの近くに位置するストレージ構体よりも低速なアクセス時間を有する。プロセッサからより離れたストレージ構体は、通常、プロセッサの近くに位置するストレージ構体より、かなりより大きなストレージ容量を有する。バランスの取れたメモリ階層は、プロセッサによって必要とされる全てのストレージ要素への高速なアクセスをもたらし得る。キャッシュ構体はメモリアドレス参照における局所性を利用しようとするため、プロセッサによる高速アクセスは、プロセッサにより近いストレージ構体に、キャッシュ設計を適用することによって実現できる。
以下に、従来技術のダイレクトマップキャッシュ設計10を手短に説明する(同様に連想キャッシュ設計もあるが、本発明の実施形態の範囲に関しては関係がない。)。
ここで図1を参照すると、従来技術のダイレクトマップキャッシュ設計10が示されている。メモリアドレス空間は32ビットとする。32ビットのメモリアドレス空間によって、合計232又は4ギガのデータ要素を個別にアドレス指定することができる。説明を簡潔にするため、データ要素より、バイトにて説明を行う。さらに、例えば、キャッシュ装置10は、64Kバイト(216バイト)のストレージ容量、及び、32バイトのキャッシュブロックサイズ(ラインサイズとしても知られる)を有するものとする。キャッシュブロック12は、メモリ階層30において、キャッシュ10と他のストレージ構体との間を単一データエンティティとして転送される、連続するバイトグループである。メモリアドレスがアドレス空間におけるバイトを参照するために、メモリアドレスを32ビットの値A〔31:0〕で表し、ここで、ビット31はアドレスの最上位ビットであり、ビット0はアドレスの最下位ビットである。アドレスAをキャッシュ10へのアクセスに用いる。図1の例において、32バイトのブロックサイズを備える64Kバイトのキャッシュでは、ビット31からビット16をタグとして用いて、ビット15からビット5をブロックアドレス(ライン又はセットアドレスとしても知られる)として用いて、且つ、ビット4からビット0をバイトインデックスとして用いる。ブロックアドレスを、キャッシュメモリ構体16に含まれる、キャッシュタグメモリ20と、データメモリ18との双方にインデックスをつけるために用いる。タグメモリ20から読み出されたタグを、アドレスAの一部であるタグと比較する。これは、参照するブロックがキャッシュ10に存在するか判定するために行う。データメモリ18から読み出されたブロックを、参照するバイト要素を選択するために用いる。アドレスAのバイトインデックス値を用いることによって、参照するバイト要素を選択する。
また、図1を参照すると、従来技術のキャッシュ設計10は、ビット書込み機能を備えるシングルポートSRAMを用いる。換言すると、メモリは、ビットマスクによって識別されるように、メモリロケーション中の特定ビットの選択的な更新を可能にする。この機能は、選択的な更新を通じて、最初にロケーションのデータを読み出さずに、メモリロケーションのデータの選択的なマージを可能にする。
また、図1を参照すると、キャッシュパイプラインによるストア動作及びロード動作のフローを示している。ストア動作は、アドレス算出回路22により、ステージAにて動作用のアドレスを算出する。ステージBでは、タグアービタ26を介して、タグメモリ構体20へのアクセスが要求される。タグメモリ構体へのアクセスは、ストア動作が関係するスロットに基づく。ストア動作の間にはキャッシュメモリ構体からデータを読み出す必要がないため、ストア動作は、データメモリ構体18へアクセスする必要がないことに留意されたい。ステージCでは、キャッシュメモリ構体16のタグメモリ部20にアクセスする。タグ比較論理回路34は、他の制御情報と共に、キャッシュヒット信号(ヒットした場合)を得る。ステージDでは、動作制御状態マシン32は、タグ比較論理回路34からもたらされる制御情報に基づいて動作する。キャッシュミスの場合には、キャッシュラインを割り当てる。キャッシュヒットの場合には、キャッシュメモリ構体16の一部であるキャッシュメモリ18にストアされるデータ(ストアデータ)を、キャッシュ書込みバッファ(CWB)28に送る。1サイクル後、ストアデータをCWB28に与え、CWB28はデータメモリ構体18へのアクセスを要求する。キャッシュデータメモリ構体18へのアクセスが許可された場合、後続のサイクルにおいて、ストアデータをキャッシュデータメモリ構体18に入れる。キャッシュデータメモリ構体18へのアクセスが許可されない場合、メモリ構体16、及び特にキャッシュデータメモリ構体18への、ストアデータ27の更新を、CWB28が構体へのアクセスが許可される時点まで延期する。その間、ストアデータ27は、CWB28においてペンディングのままであり、CWB28は、6つまでのペンディングストアデータに対応したストレージ容量を備える。
ロード動作は、アドレス算出回路22により、ステージAにて動作用のアドレス算出する。ステージBでは、それぞれアクセスアービタ26及びデータメモリアクセスアービタ24を介して、タグメモリ構体20及びデータメモリ構体18へのアクセスが要求される。ステージCでは、メモリ構体16にアクセスする。つまり、キャッシュデータ構体18及びタグメモリ構体20にアクセスする。キャッシュデータメモリ18は、データ経路12にデータを提供する。さらに、ステージDの動作又はCWB28のいずれかに属する、先行するストア動作と競合するロードアドレスを、ロードアライナ兼符号拡張回路30において識別する。制御状態マシン32は、タグ比較論理回路34から取得した所与の制御情報に基づいて動作する。キャッシュミスの場合、リフィルユニットライン36(リフィルユニットは特には図示せず)を介して、リフィルユニットにより、メモリからキャッシュラインを読み出す。先行するストア動作とアドレスが競合する場合、ストアデータをデータメモリ構体16に入れ、ロード動作を再実行する。
図1と、従来技術のキャッシュパイプライン10によるストア及びロード動作のフロー説明から理解されるように、データメモリ構体16の即時利用可能性は、ロード動作に対してのみ必要であると結論付けることができる。ロード動作は通常、固定的な動作レイテンシーを有する(この模範的実施形態では4)。しかしながら、ストア動作は動作レイテンシーを有さず、そのデータ更新を、データメモリ構体16が利用可能になる後の時点まで延期することができる。
従来技術のキャッシュパイプライン10のシステムのタグ及びメモリ構体(18,20)は、典型的には、シングルポートSRAMメモリから構築される。つまり、データSRAM18及びタグSRAM20は、それぞれ、シングルポートSRAMメモリを利用して作られる。シングルポートSRAMは、高価ではなく、少量の回路領域しか必要とせず、そして、高速なメモリ回路とみなされているため、これらのシングルポートSRAMメモリが利用されている。しかしながら、それらのシングルポートという特性は、その使用に制限をかけている。今日では、マルチポートSRAMが利用可能であるが、マルチポートSRAMは比較的高価であり、シリコン上により大きなフットプリント又は領域を必要とすることは確かである。さらに、マルチポートSRAMは、対抗のシングルポートSRAMよりも低速である。従って、マルチポートSRAM設計による多数の同時ロード及びストア動作のサポートは、必要となるシリコン領域の量や低速クロック周波数での動作からして、好ましいものではない。代替的なキャッシュメモリアプローチは、従来技術にて策定されている。これらのアプローチは、典型的には、“擬似デュアルポート”SARM装置を用いる。擬似デュアルポートSRAM装置から作られるこのようなキャッシュメモリシステムは、多数の同時ロード及びストア動作をサポートできるが、それらの“擬似”特性が、性能をロスすることなく同時動作をサポートすることができない場合には、性能の低下を被ることになる。このように、多数の同時ロード及び/又はストア動作を行う場合には、高い帯域幅で、性能の低下を被ることなく動作できるキャッシュメモリが必要である。
本発明の実施形態では、シリコン領域又はフットプリントに関するわずかな付加的なコストにより、多数の同時ストア動作及び一つのロード動作をサポートする、擬似マルチポートキャッシュを提供する。シングルポート又は擬似デュアルポートSRAM構体を用いる、従来技術のキャッシュパイプラインによる、従来技術のストア及びロード動作の図1のフローを注意深く検討すると、データメモリ構体の即時利用可能性は、ロード動作に対してのみ必要となることに注目される。ロード動作は、コンパイラ動作スケジュールに対して加味される、4という固定的な動作レイテンシーを有する。しかしながら、ストア動作は動作レイテンシーを有さず、これらのデータ更新機能は、データメモリ構体が利用可能になる後の時点まで延期できる。
2つの無制限のストア動作をサポートするためには、本発明の実施形態は、従来技術の構体のタグメモリを単に二倍にすることにより十分とすることができる。2つの無制限のロード動作が望ましい場合には、データメモリは領域及びメモリサイズを二倍(図1の従来技術のキャッシュシステムと比較する場合)にする必要があるだろう。データメモリ構体におけるメモリを二倍にすることは、タグメモリ構体におけるメモリを二倍にするよりもより高価であり、キャッシュラインタグエントリが必要とするビットは、キャッシュデータライン構体よりかなり少ないため、タグメモリを二倍にすることは、本発明の実施形態にとって有利となることは明らかである。
ここで図2を参照すると、本発明の実施形態に従ったキャッシュ構体40が示されている。この模範的な実施形態では、ストア動作をサポートする、各付加的な発行スロットに対する付加的なタグメモリ構体を追加している。つまり、図2は、2つの同時ストア動作、又は1つのロード動作と同時のストア動作をサポートする、模範的なキャッシュシステム40の例を示す。この2つのストア動作は、スロット(0)42及びスロット(1)44の両発行スロットを用いることができる。これに対し、ロード動作は、第2の発行スロットであるスロット(1)44のみを用いることができる。
まず、ストア動作では、ステージAの、スロット(0)42及びスロット(1)44それぞれに対するアドレス算出部46及び48において、アドレスを算出する。ステージBでは、タグメモリ構体54及び56それぞれにアクセスするための、アクセスアービタ50及び52によって、タグメモリへとアクセスを要求する。キャッシュメモリ構体58から読み出すデータはないため、全てのストア動作は、データメモリ構体58中のデータにアクセスする必要がないことに留意されたい。ステージCでは、ストアデータへの適切なスロット(0又は1)に対するタグ構体にアクセスする。このように、スロット(0)に対しては、タグメモリ構体54にアクセスし、タグ比較論理回路60は、ヒットしている場合には、キャッシュヒット信号、及び、他の制御情報を取得する。キャッシュミスの場合には、キャッシュラインを割り当てる。キャッシュヒットの場合には、ストアすべきデータをキャッシュ書込みバッファ(CWB)64に送る。1サイクル後、このデータをCWB64に与え、このバッファはデータメモリ構体58へのアクセスを要求する。CWB64に対し、データメモリ構体へのアクセスが許可された場合、後続のサイクルにおいて、ストアデータをデータメモリ構体58に入れる。データメモリ構体へのアクセスが許可されない場合、メモリ構体中のストアデータの更新を、CWB64がデータメモリ構体58へのアクセスを許可される後の時点まで延期する。その間、ストアデータはペンディングのままである。CWB64は、6つまでのペンディングストアデータに対応したストレージ容量を備える。CWBは、CWBからデータメモリ構体への、2つのストアデータを同時に更新させることができる。この同時更新は、更新が、構体の必要とするSRAMメモリに関して競合しない場合に制限される。各サイクルでデータメモリ58により多くのストアデータをストアできるため、同時ストレージ能力により、CWB64は、データメモリ58にストアされるストアデータに対するボトルネックになりにくい。
同時に、他のストア機能をスロット(1)にて実行できる。ここでは、アドレス算出回路ブロック48においてアドレス算出を実行してから、スロット(1)のタグアクセスアービタ52を介してスロット(1)のタグメモリ56にアクセスするために用いる。タグ比較はブロック62にて行い、キャッシュヒット又はミスを判定し、この情報を、付加的な制御情報とともにスロット(1)の制御状態マシン72に供給する。スロット(0)にてキャッシュヒットがもたらされる場合、キャッシュデータメモリ58にストアされるデータをCWB64に送る。1サイクル後、ストアすべきデータをCWB64に与え、CWB64はデータメモリ構体58へのアクセスを要求する。データメモリ構体58へのアクセスが許可された場合、後続のサイクルにおいて、ストアすべきデータ(ストアデータ)をデータメモリ構体58に入れる。アクセスが許可されない場合、メモリ構体58中のストアデータの更新を、CWB64がメモリ構体58へのアクセスを許可される後の時点まで延期する。その間、ストアデータはCWB64にてペンディングのままである。上述の通り、この模範的実施形態では、CWB64は、約6つまでのペンディングストアデータに対応したストレージ容量を備える。2つのタグメモリの使用により、同一クロックサイクルの間に、2つの同時ストア動作が発生することが出来る。
本発明の実施形態はまた、同一クロックサイクルにおいて、同時にストア及びロード動作を行うことが出来る。ロード動作は、この模範的実施形態のスロット(1)44においてのみ行うことが出来る。従って、ストア動作はスロット(0)42において行う。スロット(0)におけるストア動作は上記の通り行う。一方、スロット(1)におけるロード動作は、ステージAのアドレス算出論理回路48において、動作用のアドレス算出する。ステージBでは、タグメモリ構体56及びデータメモリ構体58へのアクセスを要求する。ステージCでは、データメモリに対するアクセスアービタ66を介してメモリ構体にアクセスし、スロット(1)のタグアクセスアービタ52を介してスロット(1)のタグメモリ56にアクセスする。データメモリ構体58は、ブロックサイズアドレスに位置するキャッシュラインを供給する。さらに、ステージD又はCWB64のいずれかに属する、先行するストア動作とのアドレス競合を識別する。スロット(1)に対する制御状態マシン72は、例えば、タグ比較論理回路62から取得した、所与の制御情報に基づいて動作する。キャッシュミスの場合、リフィルユニットによって、メモリからキャッシュラインを読み出す。先行する、又は同時ストア動作とのアドレス競合がある場合、ストアデータをまずデータメモリ構体58に入れ、そしてロード動作を再実行する。
他の観点から説明すると、CWB64は、CWB64からデータメモリ構体58への、2つの同時(即ち同一クロックサイクル間の)ストアデータ更新に対するストアデータを提供することが出来る。この同時更新は、構体の必要とするSRAMメモリに関して更新が競合しない場合に制限される。結果として、2つのCWBデータストアエントリを、データメモリ構体への、同一タイムフレーム及び/又は単一のアクセスサイクルに移動させる。ストア合成(store combining)として既知であるこのアプローチは、CWB64が、模範的キャッシュ設計において性能のボトルネックとなることを防ぐ。
図3に示すように、データメモリ構体58の実装に多数のSRAMメモリ装置を用いる場合、アドレスに基づくキャッシュデータのインタリーブは、CWB64からメモリ構体58へのアクセスと、発行された動作を同時にすることができる。このインタリーブはまた、メモリ構体への実効帯域幅を増加させる。例えば、4つのSRAM58a、58b、58c及び58dを備える実装を図3に示す(4つ以上の個別SRAM装置を用いることが出来る)。この模範的実施形態におけるSRAMの区分化は、アドレスのビット3及びビット2に基づく。つまり、同じアドレスビット3及びビット2(00,01,10,11)を共有する全てのバイト要素は、同じSRAM内に存在する。結果として、キャッシュラインバイトは、4バイト要素の粒度によって、SRAMでインタリーブされる。従って、SRAM“00”58aへのCWBアクセスは、SRAM“01”58bへのロード動作アクセスと同時に進行することができる。SRAMの区分化を用いる模範的な実施形態の実装において、メモリ装置58へのこの種類の同時アクセスを行う必要がある場合には、アクセスアービトレーションは、データメモリ構体全体に対してというよりむしろ、個別のSRAMレベルで実行しなければならない。図3に示すように、個別SRAMへのアクセスを可能にするために、4つのアクセスアービタを利用する。
本発明の他の模範的実施形態では、キャッシュシステム及びパイプラインにおいて、N個の同時ストア動作を実行できる。Nは2以上の整数である。図2に戻って参照すると、n番目のスロット80はステージAにてアドレス算出82を実行し、ステップBにてアクセスアービトレーション84を行う。ステージCでは、スロット(N)のタグ86にアクセスし、タグ比較機能88を実行してヒット又はミスを判定する。原則的に、n番目のスロット80は、スロット0又は1いずれかと同様の方法でストア動作を行う。このように、本発明の実施形態は、N個の同時ストア機能、又は、1つの同時ロード機能と共にN−1個の同時ストア機能を可能にする。この機能は、キャッシュメモリのキャッシュデータメモリサイズを増加するよりも占めるスペースが少ないという、キャッシュメモリのタグメモリサイズを増加することにより達成される。
当業者であれば、この発明の詳細な説明で記載した、多数同時ストアのキャッシュメモリ又は多数ストア及びロードのキャッシュメモリに関して、多様な修正及び変更を理解及び推測し得るだろう。このように、本発明のわずかな好適な模範的実施形態を例示及び記載しているに過ぎない。本発明は開示した実施形態に限定されず、添付の特許請求の範囲によって記載及び規定される発明から外れることなく、付加的な再構成、修正及び代替が可能である。従って、本発明の範囲はこのような全ての構成を含み、特許請求の範囲のみによって限定されるものであることを理解されたい。
ダイレクトマップキャッシュ設計のブロック図である。 多数同時ストア動作および同時ロード動作をサポートする、本発明の模範的な擬似マルチポートキャッシュメモリのブロック図及びフローである。 キャッシュメモリ構体へのデータフローの実効帯域幅を増加する本発明に従った、キャッシュデータメモリの模範的実施形態のブロック図である。

Claims (12)

  1. キャッシュデータをストアするキャッシュデータメモリと;
    ストア動作のアドレスを算出するスロット(0)のアドレス算出論理回路と;
    前記スロット(0)のアドレス算出論理回路からアドレス情報を受信するスロット(0)のタグアービタと;
    前記スロット(0)のタグアービタによってアクセスするスロット(0)のタグSRAMと;
    前記キャッシュデータメモリ向けの、ペンディングストアデータを受信及びストアするのキャッシュ書込みバッファと;
    ストア動作のアドレスを算出するスロット(1)のアドレス算出論理回路と;
    前記スロット(1)のアドレス算出論理回路からアドレス情報を受信するスロット(1)のタグアービタと;
    前記スロット(1)のタグアービタによってアクセスするスロット(1)のタグSRAMと;
    を備え、
    前記スロット(0)のタグSRAM、前記スロット(1)のタグSRAM、及び前記キャッシュ書込みバッファの組み合わせは、2つの同時ストア動作を行い、
    前記キャッシュ書込みバッファからのスロット(0)のストアデータ及びスロット(1)のストアデータは、前記キャッシュデータメモリに供給される、
    ことを特徴とするキャッシュシステム。
  2. 前記スロット(0)のタグSRAM、前記スロット(1)のタグSRAM、及び前記キャッシュ書込みバッファの前記組み合わせは、スロット(0)のストア動作及びスロット(1)のロード動作を同時に行う、
    請求項1記載のキャッシュシステム。
  3. 前記キャッシュデータメモリは、複数のSRAM装置を備え、
    ストアデータを、メモリアドレスに基づくキャッシュデータのインターリーブを用いて、前記キャッシュデータメモリにストアする、
    請求項1記載のキャッシュシステム。
  4. 前記キャッシュ書込みバッファによる、前記キャッシュデータメモリへのアクセスを、前記キャッシュデータメモリへのロード動作と同時に行う、
    請求項3記載のキャッシュシステム。
  5. 前記キャッシュシステムは、マルチポートキャッシュシステムではない、
    請求項1記載のキャッシュシステム。
  6. 前記キャッシュシステムは、擬似マルチポートキャッシュシステムである、
    請求項1記載のキャッシュシステム。
  7. 前記キャッシュデータメモリにおけるN個の同時のストア動作をサポートするために接続される、N個までのスロットNのタグSRAM、
    をさらに備える、
    請求項1記載のキャッシュシステム。
  8. 前記キャッシュシステムは、前記キャッシュデータメモリにおいて同時に、N−1個の同時ストア動作、及び、1個のロード動作を行う、
    請求項7記載のキャッシュシステム。
  9. スロット(0)のストアデータを、スロット(0)のタグに基づくキャッシュデータメモリにストアするステップと、
    スロット(1)のストアデータを、スロット(1)のタグに基づくキャッシュデータメモリに、前記スロット(0)のストアデータのストアステップと同時に、ストアするステップと、
    を含むことを特徴とする、擬似マルチポートキャッシュシステムの利用方法。
  10. 1つ以上の前記ストアするステップと同時に、前記キャッシュデータメモリからのロード動作を行うステップをさらに含む、
    請求項9記載の方法。
  11. スロット(0)のからスロット(n)のストアデータを、前記擬似マルチポートキャッシュメモリシステムに同時にストアするステップをさらに含む、
    請求項9記載の方法。
  12. 前記キャッシュデータメモリは、複数の個別SRAMを備え、前記ストアするステップを、インタリーブストレージ法を用いて行う、
    請求項9記載の方法。
JP2008536192A 2005-10-19 2006-10-18 アクセス性の高いストア帯域幅を備えたキャッシュ Pending JP2009512933A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72857605P 2005-10-19 2005-10-19
PCT/IB2006/053847 WO2007046066A1 (en) 2005-10-19 2006-10-18 Cache with high access store bandwidth

Publications (1)

Publication Number Publication Date
JP2009512933A true JP2009512933A (ja) 2009-03-26

Family

ID=37726995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008536192A Pending JP2009512933A (ja) 2005-10-19 2006-10-18 アクセス性の高いストア帯域幅を備えたキャッシュ

Country Status (5)

Country Link
US (1) US7975093B2 (ja)
EP (1) EP1941373A1 (ja)
JP (1) JP2009512933A (ja)
CN (1) CN101292227B (ja)
WO (1) WO2007046066A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943273B1 (en) * 2008-08-14 2015-01-27 Marvell International Ltd. Method and apparatus for improving cache efficiency
US9904476B2 (en) * 2010-08-27 2018-02-27 Cisco Technology, Inc. Performing multiple write operations to a memory using a pending write queue/cache
US8909860B2 (en) 2012-08-23 2014-12-09 Cisco Technology, Inc. Executing parallel operations to increase data access performance
GB2527087B (en) 2014-06-11 2021-04-14 Advanced Risc Mach Ltd Parallel lookup in first and second value stores
US10866899B2 (en) * 2017-10-02 2020-12-15 Arm Ltd Method and apparatus for control of a tiered memory system
US11188341B2 (en) 2019-03-26 2021-11-30 Intel Corporation System, apparatus and method for symbolic store address generation for data-parallel processor
US11243775B2 (en) 2019-03-26 2022-02-08 Intel Corporation System, apparatus and method for program order queue (POQ) to manage data dependencies in processor having multiple instruction queues
US10896141B2 (en) * 2019-03-26 2021-01-19 Intel Corporation Gather-scatter cache architecture having plurality of tag and data banks and arbiter for single program multiple data (SPMD) processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152566A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283880A (en) * 1991-01-02 1994-02-01 Compaq Computer Corp. Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5680572A (en) * 1994-02-28 1997-10-21 Intel Corporation Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers
US6138206A (en) * 1997-06-12 2000-10-24 International Business Machines Corporation Data register for multicycle data cache read
US7039756B2 (en) * 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
CN1591360A (zh) * 2003-09-02 2005-03-09 扬智科技股份有限公司 计算机系统中存取数据的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152566A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ

Also Published As

Publication number Publication date
CN101292227B (zh) 2010-11-03
CN101292227A (zh) 2008-10-22
EP1941373A1 (en) 2008-07-09
US20080209129A1 (en) 2008-08-28
WO2007046066A1 (en) 2007-04-26
US7975093B2 (en) 2011-07-05

Similar Documents

Publication Publication Date Title
EP1196850B1 (en) Techniques for improving memory access in a virtual memory system
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
JP4425798B2 (ja) 1サイクルで複数回のアクセスを支援するキャッシュメモリを含むマイクロプロセッサ
US7822911B2 (en) Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
JP2009512933A (ja) アクセス性の高いストア帯域幅を備えたキャッシュ
JP2006517040A (ja) キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ
KR101509628B1 (ko) 프로세서의 하이 어소시에이티브 캐시 메모리를 위한 scr 매커니즘
US8407392B2 (en) Fast unaligned cache access system and method
US20100318741A1 (en) Multiprocessor computer cache coherence protocol
US7809889B2 (en) High performance multilevel cache hierarchy
JP2007200292A (ja) エントリの時間経過によるキャッシュ・エントリの所有権喪失
JP2009528612A (ja) データ処理システム並びにデータ及び/又は命令のプリフェッチ方法
CN112997161A (zh) 将储存系统用作主存储器的方法和装置
US8250305B2 (en) Method, system and computer program product for data buffers partitioned from a cache array
US9496009B2 (en) Memory with bank-conflict-resolution (BCR) module including cache
JP3515333B2 (ja) 情報処理装置
US7181575B2 (en) Instruction cache using single-ported memories
US20050050280A1 (en) Data accessing method and system for processing unit
WO2000045270A1 (en) Techniques for improving memory access in a virtual memory system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110802

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20111021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111020

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120424