JP2019012563A - 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法 - Google Patents

異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法 Download PDF

Info

Publication number
JP2019012563A
JP2019012563A JP2018190049A JP2018190049A JP2019012563A JP 2019012563 A JP2019012563 A JP 2019012563A JP 2018190049 A JP2018190049 A JP 2018190049A JP 2018190049 A JP2018190049 A JP 2018190049A JP 2019012563 A JP2019012563 A JP 2019012563A
Authority
JP
Japan
Prior art keywords
cache
cpu
graphic
logic
information
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
JP2018190049A
Other languages
English (en)
Other versions
JP2019012563A5 (ja
JP6707605B2 (ja
Inventor
オッフェン,ゼーヴ
Offen Zeev
ベルコヴィッツ,アリエル
Berkovits Ariel
ピアッツァ,トマス,エー.
A Piazza Thomas
ファレル,ロバート,エル.
L Farrell Robert
コーカー,アルトゥグ
Koker Altug
カーン,オペル
Kahn Oper
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2019012563A publication Critical patent/JP2019012563A/ja
Publication of JP2019012563A5 publication Critical patent/JP2019012563A5/ja
Application granted granted Critical
Publication of JP6707605B2 publication Critical patent/JP6707605B2/ja
Active 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

【課題】異なるキャッシュ・コヒーレンス・ドメイン内のエージェント間での情報共有を可能にする。【解決手段】ある実施形態では、グラフィック装置が、情報を記憶または読み出しするために一つまたは複数の処理コアによって使用される一つまたは複数のキャッシュを使用しうる。前記一つまたは複数のキャッシュは、前記グラフィック装置に関するプログラミングおよびコヒーレンス規則に影響しない仕方で、一つまたは複数の処理コアによってアクセスされうる。【選択図】図1

Description

本発明の実施形態は、概括的には情報処理の分野に関する。より特定的には、本発明の実施形態は少なくとも二つの異なるキャッシュ・コヒーレンス・ドメイン(cache coherency domain)において動作するエージェント間でキャッシュ・コヒーレンスを可能にする技法に関する。
コンピューティング・プラットフォームおよびマイクロプロセッサにますます多くの機能が組み込まれるにつれ、異なる機能ユニットの間での情報共有が増す傾向がある。たとえば、グラフィックまたは他のスループット論理を、一つまたは複数のホスト中央処理ユニット(CPU)または「コア」と同じコンピューティング・プラットフォーム、パッケージまたは集積回路に組み込むことは、それら一つまたは複数のコアとグラフィック論理〔グラフィクス・ロジック〕との間で情報を共有することを望ましくすることがありうる。いくつかの従来技術の事例では、異なる機能ユニットが同じシステム、パッケージまたはダイに組み込まれる場合、一つまたは複数のコアによってアクセスされる(記憶されるまたは読まれる)情報は、グラフィック論理のような他の機能ユニットとは異なるキャッシュ・コヒーレンス・ドメイン内にある対応するキャッシュ階層(たとえばレベル1、中間レベル、レベル2キャッシュ)において維持される。
異なるキャッシュ・アドレスの間で異なるコヒーレンス・ドメインにおいて、あるいは異なるキャッシュ・コヒーレンス・ドメインに従ってデータを維持することは、より多くのキャッシュ・メモリが使用されることを要求しうる。このことは、システム・コストおよび電力消費を増大させうる。さらに、異なる機能ユニットの間で情報が共有される状況において、異なる対応するキャッシュ階層ドメインを維持すると、異なる機能ユニットの間で情報を共有するためには、各機能ユニットはDRAMのようなメイン・メモリ・ソースにアクセスしなければならなくする。DRAMのようなメイン・メモリ・ソースは典型的にはキャッシュのような他のメモリ構造よりもアクセス速度の面でより低速である。したがって、異なる機能ユニットの間で情報を共有するためにメイン・メモリに頼ることは、機能ユニットおよび/またはシステムのパフォーマンスを劣化させることがありうる。
本発明の課題は請求項記載の手段によって解決される。
本発明の実施形態は限定ではなく例として付属の図面において図示される。同様の参照符号は同様の要素を指す。
本発明の少なくとも一つの実施形態が使用されうるシステムのブロック図である。 本発明の少なくとも一つの実施形態が使用されうるプロセッサを示す図である。 本発明の少なくとも一つの実施形態が使用されうる共有バス・コンピュータ・システムのブロック図である。 本発明の少なくとも一つの実施形態が使用されうるポイントツーポイント相互接続コンピュータ・システムのブロック図である。 ある実施形態で使用されうる動作を示す流れ図である。
本発明の実施形態はコンピュータ・システムおよび情報処理に関する。より特定的には、本発明の実施形態は、少なくとも一つの中央処理ユニット(CPU)が、別の処理論理(たとえばグラフィック処理論理)によってアクセスまたは生成される情報への可視性を得る、よってそのような情報とのあるレベルのコヒーレンスを得ることを許容する技法に関する。そのような別の処理論理は、前記少なくとも一つのCPUとは異なるコヒーレンス・ドメインにおいて動作してもよい。いくつかの実施形態では、一つまたは複数のCPUは「最終レベル・キャッシュ(last level cache)」(LLC)または「レベル2」(L2)キャッシュのようなあるレベルのキャッシュを、一つまたは複数の処理論理(たとえばグラフィック論理)と共有し、該一つまたは複数の処理論理は前記一つまたは複数のCPUとは異なるコヒーレンス・プロトコルを実装するあるいはそうでなければ異なるコヒーレンス・ドメイン内で動作するのでもよい。ある実施形態では、CPUおよびグラフィック論理は同じダイ、パッケージまたはシステム内に組み込まれ、CPUはグラフィック論理のキャッシュ・コヒーレンス階層における少なくとも一つのレベルのキャッシュならびに前記グラフィック論理がやはりアクセスしうるLLCへのアクセスを有しうる。これによりCPUとグラフィック論理との間でDRAMのようなメイン・メモリ・ソースにアクセスすることなく情報が共有できる。
図1は、少なくとも一つの実施形態が使用されうるシステムを示している。図1において、少なくとも一つのCPU 101および少なくとも一つのグラフィック論理(graphics logic)105が同じダイ、パッケージまたはシステム内に統合されている。さらに、ある実施形態では、CPUおよびグラフィック論理はそれぞれのキャッシュ階層と通信する。該キャッシュ階層は第一レベル・キャッシュまたは「レベル1」(L1)キャッシュ103、104、中間レベル(mid-level)・キャッシュ107、108および最終レベル・キャッシュ(LLC)または「レベル2」(L2)キャッシュ110を含みうる。ある実施形態では、各L1および中間レベル・キャッシュは異なる論理構造である。一方、LLCは同じ情報を記憶しうる構成された一つのキャッシュであり、したがってCPUのL1およびMLCならびにグラフィック論理のMLCのそれぞれに記憶された情報を含む。ある実施形態では、LLCは、グラフィック論理がそのL1キャッシュ104の内容をそのMLC 108に移動またはコピーすることによって、グラフィック論理のL1キャッシュを含むこともできる。ここで、MLC 108はCPUコヒーレンス制御動作に関してLLCとのコヒーレンスを維持する。グラフィックL1キャッシュ104(これはグラフィック・コヒーレンス・ドメイン111内にある)とグラフィックMLC(これはCPUコヒーレンス・ドメイン109内にある)との間で情報をコピーまたは移動することによって、CPUコヒーレンス・ドメイン109(これはある実施形態では、CPU 101、L1キャッシュ103、MLC 107およびLLC 110を含む)とグラフィック・コヒーレンス・ドメイン111(これはある実施形態ではグラフィック論理105およびグラフィックL1キャッシュ104を含む)との間で情報が共有できる。
いくつかの実施形態では、グラフィック論理によって仮想的にアドレッシングされうるグラフィックL1キャッシュ104に記憶された情報が、グラフィック画像のレンダリングに関連するさまざまなイベントの発生に応答してグラフィックMLC 108に移動またはコピーされる。ある実施形態では、グラフィックL1キャッシュ104からMLC 108への情報の移動/コピーは、グラフィック・ドライバまたは他の何らかの論理もしくはソフトウェア・プログラムによって管理および実行される。グラフィックL1キャッシュ104内の情報をMLC 108に移動またはコピーさせるイベント後には、その情報はCPUコヒーレンス・ドメイン内にあり、ある実施形態では物理アドレスを使って、あるいはCPUによって使用される他のアドレッシング方式(たとえば仮想アドレス)を使って、CPUによってアドレッシングおよびアクセスされうる。
CPUおよびグラフィック・コヒーレンス・ドメインに加えて、図1のシステムは表示装置(たとえばモニタ)115をも含む。この表示装置は、CPUコヒーレンス・ドメインおよびグラフィック・コヒーレンス・ドメインに関して非コヒーレントである独自のコヒーレンス・ドメイン113内にあってもよい。ある実施形態では、表示装置115は、CPUまたはグラフィック論理のキャッシュ階層内のキャッシュと直接ではなく、メイン・システム・メモリ120と通信してもよい。
ある実施形態では、グラフィック論理105は、システム・メモリ120に頼ることなく、CPUによってLLC 110内に記憶された情報にアクセスしてCPUのL1(103)およびCPUのMLC(107)内の情報をのぞき見することによって、CPUによって利用可能または修正可能な情報にアクセスをもちうる。さらに、ある実施形態では、CPUは、LLC 110やシステム・メモリ120に頼ることなく、グラフィック論理の中間レベル・キャッシュ107に記憶されている情報にアクセスするまたは「のぞき見」してもよい。ある実施形態では、CPUやグラフィック装置がキャッシュ階層へのアクセスに比べてかなりの時間がかかるメイン・システム・メモリへのアクセスを行う必要なく、CPUコヒーレンス・ドメインとグラフィック論理コヒーレンス・ドメインとの間で情報が共有されてもよい。さらに、ある実施形態では、それぞれのCPUまたはグラフィック・キャッシュ・コヒーレンス・プロトコルを著しく変えたり影響したりすることなく、CPUコヒーレンス・ドメインとグラフィック論理コヒーレンス・ドメインとの間で情報が共有されうる。
ある実施形態では、グラフィック論理は、そのキャッシュ・コヒーレンス・ドメイン(111)内のデータにアクセスするために仮想アドレスを生成する。しかしながら、グラフィック論理によって読まれるだけである、または他の仕方でグラフィック論理によって「所有されている」もの(「R/Oキャッシュ」)のような、グラフィック・コヒーレンス・ドメイン内のキャッシュの一部は、仮想タグを使うだけでもよい。一方、グラフィック論理によって読み書きされるもの(「R//Wキャッシュ」)のようなグラフィック・コヒーレンス・ドメイン内の他のキャッシュは、仮想および物理的アドレッシングの両方をサポートするために仮想タグおよび物理的タグの両方を使用しうる。ある実施形態では、キャッシュ・ミスがあった場合、キャッシュ階層へのグラフィック論理のアクセスは仮想アドレスから物理アドレスに変換される。それにより、システム・メモリ内の適正な物理アドレスが生成できる。
CPUコヒーレンス・ドメインでは少なくとも二つの規則が適用される。第一に、キャッシュ・コヒーレンス規則は、位置ごとのアクセス順序付けが互いにシーケンシャルに整合的(sequentially consistent)であることを要求してもよい。シーケンシャルに整合的なアクセスは、あるキャッシュ位置にアクセスするすべての動作についてグローバルな、順序に従った(in-order)可視性を要求する。第二に、CPU順序付け規則は典型的には、単一のプロセッサによる諸書き込みはすべてのプロセッサによって同じであると観察される(observed)ことを要求するが、異なるプロセッサからの諸書き込みは異なる順序で観察されてもよい。しかしながら、プロセッサは、実行の順序において、自らの諸書き込みを遵守しなければならない。
グラフィック・キャッシュ・コヒーレンス・ドメインは、ホストCPUのキャッシュ・コヒーレンス・ドメインとはいくつかの点で異なることがある。一つには、グラフィック・キャッシュ・ドメインでは、コヒーレンスは画像レンダリング・プロセスにおけるいくつかの点においてのみ保証されうる。一方、典型的なCPUキャッシュ・ドメインにおけるコヒーレンスは継続的に維持される。さらに、グラフィック・コヒーレンス・ドメイン・キャッシュは典型的には仮想的にアドレッシングされ、のぞき見はされないので、L1または中間レベル・キャッシュ(MLC)内に記憶された情報がLLC内に含まれることは保証されない。したがって、LLCからあるラインが追い出されるとき、それより低レベルのキャッシュは更新されないことがありうる。補償するために、グラフィック論理は、無効‐修正(invalid-to-modified)(「ItoM」)トランザクションを使用してもよい。全ライン追い出しのためにはこれらの追い出しライトバック・トランザクション、部分ライン追い出しのためにはリード・フォー・オウナーシップ(RFO: read-for-ownership)トランザクションを実行するためである。最後に、グラフィック装置は典型的には、順序外のアンコア(un-core)ファブリック(fabric)に接続された非投機的(non-speculative)な順序外(out-of-order)機械である。グラフィック論理は典型的には、キャッシュ階層またはメモリに対してアクセスを発した後ではアクセスを並べ替えることはできないので、従属アクセス(dependent accesses)は、発される前に、その先行者がグローバルに観察されていたことを確かめる必要がある。
本発明の実施形態は、グラフィック・キャッシュ・コヒーレンス・ドメインとCPUキャッシュ・コヒーレンス・ドメインとの間でメイン・システム・メモリへのアクセスに頼ることなくデータが共有されることを許容しつつ、両ドメイン間の相違を考慮に入れる。ある実施形態では、CPUキャッシュ・コヒーレンス規則は、グラフィック論理の中間レベル・キャッシュ、LLCおよびメイン・メモリを含むいかなる物理的にアドレッシングされる構造にも適用される。CPUドメインとグラフィック・ドメインとの間のコヒーレンス境界横断アクセスのために、CPUはグラフィックMLCをのぞき見してもよい。グラフィックMLCはCPUコヒーレンス・ドメインにおけるのと同じように振る舞うであろう。さらに、本発明の実施形態は、グラフィックL1およびMLCに記憶されているデータをLLC内に含めることを許容する。それにより、グラフィック論理は、メイン・システム・メモリに頼ることなく、LLCを利用しうる。ある実施形態では、グラフィックL1からのデータは、レンダリング・イベントに応答してグラフィック装置がL1データをそのMLCにコピーまたは移動することによって、LLC内に含められる。それによりグラフィックL1データをCPUコヒーレンス・ドメイン内に入れ、それがLLC内に包まれることを保証する。するとグラフィック論理はのちに、この情報がグラフィックL1やMLC内に見出されなかった場合、LLCからこの情報にアクセスできる。
図2は、本発明の少なくとも一つの実施形態が使用されうるプロセッサを示している。特に、図2は、一つまたは複数の中央処理ユニット(CPU)205および210ならびに少なくとも一つの非CPU機能ユニット207および213を有するプロセッサ200を示している。図2にはまた、機能ユニット207および213によって実行されない他の動作を実行しうる少なくとも一つの他の非CPU機能ユニット215が示されている。ある実施形態では、機能ユニット207、213および215は、グラフィック処理、メモリ制御およびオーディオ、ビデオ、ディスク制御、デジタル信号処理等のような周辺機器制御といった機能を含みうる。いくつかの実施形態では、プロセッサ200はまた、I/O制御のような図2に示されていない他の論理をも含んでいてもよい。ある実施形態では、マルチプロセッサ・システムにおける各プロセッサまたはマルチコア・プロセッサにおける各プロセッサ・コアが、一つまたは複数のCPUと一つまたは複数のグラフィック論理との間の情報共有を可能にするために論理219を含むまたは他の形でそのような論理219と関連付けられていてもよい。
いくつかの実施形態において、プロセッサ200は汎用CPUであってもよい。他の実施形態では、プロセッサは、汎用CPU集積回路およびグラフィック固有ハードウェアもしくは他の並列計算ハードウェアの両方を含みうるシステム内でグラフィック固有機能を実行できる汎用CPUまたはハードウェアのいずれかであってもよい。汎用計算がグラフィック・エンジン、テクスチャ・サンプルなどのような並列計算ハードウェアとますます統合されるにつれ、論理219はますます多用途かつ位置独立になる。結果として、論理219はハードウェア/ソフトウェアまたはその任意の組み合わせを含むことができ、プロセッサ200の任意の部分の中または外に位置されまたは統合されることができる。
ある実施形態では、論理219は、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理を含む。さらに、論理219は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理219は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
図3は、本発明のある実施形態が使用されうる共有バス・コンピュータ・システムを示している。マイクロプロセッサ301〜315は、一つまたは複数のCPU(323、327、333、337、343、347、353、357)、グラフィック装置(307、317、327、337)、メモリ・コントローラ(325、335、345、355)、I/O制御またはPCIもしくはPCIeコントローラ(320、330、340、350)のような他の機能ユニットといったさまざまな機能ユニットを含みうる。図3のシステムは、マイクロプロセッサを周辺機器制御装置360とインターフェースをもたせるためにI/Oコントローラ365をも含んでいてもよい。
ある実施形態では、システムは、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理319を含む。さらに、論理319は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理219は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
いくつかの実施形態では、図3に示される要素の一部または全部がマイクロプロセッサに含められていてもよく、直接メモリ・インターフェース(DMI: direct memory interface)、PCIエクスプレス・グラフィクス(PEG:PCI express graphics)相互接続などのような他の相互接続を含んでいてもよい。構成に関わりなく、本発明の実施形態は、図3のシステムのいかなる部分に含まれ、あるいは他の仕方で関連付けられてもよい。図3のシステムは、メイン・メモリ(図示せず)をも含んでいてもよい。メイン・メモリは、動的ランダム・アクセス・メモリ(DRAM)、ハードディスク・ドライブ(HDD)またはネットワーク・インターフェースを介して当該コンピュータ・システムからリモートに位置されるメモリ・ソースといった、さまざまな記憶装置および技術を含むさまざまなメモリ構造を含みうる。図3のシステム内のキャッシュ・メモリは、プロセッサ内またはプロセッサの近傍に、たとえばプロセッサのローカル・バス上に位置されうる。
さらに、キャッシュ・メモリは、六トランジスタ(6T)セルまたは同じくらいもしくはより高速なアクセス速度の他のメモリ・セルといった比較的高速なメモリ・セルを含んでいてもよい。
図3に示される共有バス・コンピュータ・システムに加えて、ポイントツーポイント(P2P: point-to-point)相互接続システムおよびリング相互接続システムを含め、他のシステム構成が本発明のさまざまな実施形態と一緒に使用されてもよい。たとえば図4のP2Pシステムがいくつかのプロセッサを含んでいてもよい。そのうち二つのプロセッサ470、480だけが例として図示されている。プロセッサ470、480はそれぞれ、メモリ42、44と接続するローカルなメモリ・コントローラ・ハブ(MCH)472、482を含みうる。プロセッサ470、480は、PtPインターフェース回路478、488を使ってポイントツーポイント(PtP)インターフェース450を介してデータを交換しうる。プロセッサ470、480はそれぞれ、ポイントツーポイント・インターフェース回路476、494、486、498を使って個々のPtPインターフェース452、454を介してチップセット490とデータを交換しうる。チップセット490はまた、高性能〔ハイ・パフォーマンス〕グラフィック・インターフェース439を介して高性能グラフィック回路438とデータを交換してもよい。本発明の実施形態は、任意の数の処理コアを有する任意のプロセッサ内に、あるいは図4の各PtPバス・エージェント内に位置していてよい。
ある実施形態では、図4は、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理419を含む。さらに、論理419は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理219は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
図5は、本発明の少なくとも一つの実施形態との関連で使用されうる動作の流れ図を示している。動作501では、グラフィック装置はそのL1キャッシュに記憶されている情報をCPUコヒーレンス・ドメイン内のMLCにコピーまたは移動させ、動作505で、CPUによって要求された情報についてグラフィック論理のMLCにCPUからスヌープ〔のぞき見〕が発される。動作510において要求された情報がグラフィック論理のMLC内に存在していなければ、スヌープは動作515において、該情報を求めてLLCに進みうる。該情報が動作520においてLLCに存在していなければ、動作525においてアクセスはメイン・メモリに進む。ある実施形態では、CPUはMLCをのぞき見するために物理アドレスを使用しうる。というのも、MLCは、グラフィック論理によって使用される仮想アドレス・タグに加えて物理アドレス・タグを含むからである。さらに、ある実施形態ではグラフィック論理はLLC内に情報を記憶しこれにアクセスしうるので、CPUによって要求された情報はMLCではなくLLC内にあってもよい。
少なくとも一つの実施形態の一つまたは複数の側面は、プロセッサ内のさまざまな論理を表す機械可読媒体上に記憶された表現データによって実装されてもよい。そのデータは、機械によって読み込まれたとき、該機械に、本稿に記載された技法を実行する論理を作成させる。「IPコア」として知られるそのような表現は、具体的な機械可読媒体(「テープ」)上に記憶されてもよく、実際に論理またはプロセッサをなす作成機械中にロードすべくさまざまな顧客または製造施設に供給されてもよい。
このように、マイクロアーキテクチャ上のメモリ領域アクセスの行き先を決定する方法および装置が記載されてきた。上記の記述は例示的であることが意図されており、制限するものではないことは理解しておくべきである。上記の記述を読み、理解すれば、当業者には他の多くの実施形態が明白となるであろう。したがって、本発明の範囲は付属の請求項を参照して、そのような請求項が資格を有する等価物の全範囲をもつものとして、決定されるべきである。
いくつかの態様を記載しておく。
〔態様1〕
グラフィック論理コヒーレンス・ドメイン内の第一のキャッシュおよび第二のキャッシュと、
物理アドレスを使って前記第一のキャッシュ内に記憶された情報にアクセスする、前記グラフィック論理とは異なるコヒーレンス・ドメインにある中央処理ユニット(CPU)とを有する装置であって、
前記第一のキャッシュは前記第二のキャッシュに対しキャッシュ階層において異なるレベルにある、装置。
〔態様2〕
前記グラフィック論理が前記第二のキャッシュ内に情報を記憶する、態様1記載の装置。
〔態様3〕
前記第二のキャッシュが最終レベル・キャッシュ(LLC)であり、前記グラフィック論理コヒーレンス・ドメイン内の前記第二のキャッシュより低いレベルの各キャッシュに記憶されている情報を含む、態様2記載の装置。
〔態様4〕
前記第一のキャッシュが中間レベル・キャッシュ(MLC)である、態様1記載の装置。
〔態様5〕
前記CPUのキャッシュ・コヒーレンス・ドメインに対応する第三および第四のキャッシュをさらに有する態様1記載の装置であって、前記第三のキャッシュがレベル1(L1)キャッシュであり、前記第四のキャッシュが中間レベル・キャッシュ(MLC)である、態様1記載の装置。
〔態様6〕
前記グラフィック論理のコヒーレンス・ドメインに対応するL1キャッシュをさらに含む、態様5記載の装置。
〔態様7〕
CPUレベル1(L1)キャッシュ、CPU中間レベル・キャッシュ(MLC)および最終レベル・キャッシュ(LLC)を含むCPUキャッシュ階層に対応する中央処理ユニット(CPU)を含み、グラフィックL1キャッシュ、グラフィックMLCおよびグラフィックLLCに対応するグラフィック論理を含むマイクロプロセッサであって、前記CPUキャッシュ階層は前記グラフィック論理のキャッシュ階層の一部分と異なるコヒーレンス・ドメインにあり、前記CPUは前記グラフィックMLCをのぞき見する、マイクロプロセッサと、
前記CPUキャッシュ階層および前記グラフィック・キャッシュ階層内に含まれる情報を記憶するシステム・メモリとを有するシステム。
〔態様8〕
前記LLCがCPUおよびグラフィックのL1キャッシュおよびMLCに記憶されている情報を含む、態様7記載のシステム。
〔態様9〕
前記グラフィック論理が、要求された情報を求めて前記システム・メモリにアクセスする前に、情報を求めて前記LLCにアクセスする、態様8記載のシステム。
〔態様10〕
さらに表示装置を有する、態様7記載のシステム。
〔態様11〕
前記表示装置が前記CPUおよび前記グラフィック論理とは異なるコヒーレンス・ドメインにある、態様10記載のシステム。
〔態様12〕
前記CPUおよび前記グラフィック・プロセッサが同じダイ内に含まれている、態様7記載のシステム。
〔態様13〕
グラフィック・レベル1(L1)キャッシュからのデータをグラフィック・コヒーレンス・ドメインのグラフィック中間レベル・キャッシュ(MLC)に記憶する段階と;
中央処理ユニット(CPU)から前記グラフィック中間レベル・キャッシュにスヌープを発する段階であって、前記CPUは前記グラフィック・コヒーレンス・ドメインとは異なるコヒーレンス・ドメインにある、段階と;
前記スヌープの結果がミスであった場合、より高レベルのキャッシュにアクセスする段階であって、前記グラフィックL1キャッシュに記憶されている情報は前記より高レベルのキャッシュに含まれる、段階と;
前記より高レベルのキャッシュへのアクセスの結果がミスであった場合、システム・メモリにアクセスする段階とを含む、
方法。
〔態様14〕
前記より高レベルのキャッシュが前記グラフィック・キャッシュを含む最終レベル・キャッシュ(LLC)である、態様13記載の方法。
〔態様15〕
前記グラフィックL1キャッシュが第一のコヒーレンス・ドメイン内にあり、前記グラフィックMLCが第二のコヒーレンス・ドメイン内にある、態様14記載の方法。
〔態様16〕
態様15記載の方法であって、さらに前記CPUのキャッシュ・コヒーレンス・ドメインに対応する第三および第四のキャッシュにアクセスする段階を含み、前記第三のキャッシュはレベル1(L1)キャッシュであり、前記第四のキャッシュは中間レベル・キャッシュ(MLC)である、方法。
〔態様17〕
前記グラフィックL1キャッシュが前記グラフィック論理のコヒーレンス・ドメインに対応する、態様16記載の方法。
〔態様18〕
表示装置から読み取り要求を前記システム・メモリに対して発する段階をさらに含む、態様17記載の方法。
〔態様19〕
CPUキャッシュ・コヒーレンス・ドメインに対応する中央処理ユニット(CPU)と;
第一の、CPUキャッシュ・コヒーレンス・ドメインとは異なるGPUキャッシュ・コヒーレンス・ドメインに対応するグラフィック処理ユニット(GPU)とを有するプロセッサであって、前記CPUキャッシュ・コヒーレンス・ドメインおよび前記GPUキャッシュ・コヒーレンス・ドメインは、システム・メモリにアクセスすることなく、前記CPUおよびGPUのキャッシュ・コヒーレンス・ドメイン内に記憶された情報を共有する、
プロセッサ。
〔態様20〕
前記CPUキャッシュ・コヒーレンス・ドメインが第一のレベル1(L1)キャッシュおよび第一の中間レベル・キャッシュ(MLC)を含む、態様19記載のプロセッサ。
〔態様21〕
前記GPUキャッシュ・コヒーレンス・ドメインが第二のL1キャッシュおよび第二のMLCを含む、態様20記載のプロセッサ。
〔態様22〕
前記CPUキャッシュ・コヒーレンス・ドメインおよび前記GPUキャッシュ・コヒーレンス・ドメインが、第一および第二のMLC内に記憶されているすべての情報を記憶する最終レベル・キャッシュ(LLC)を含む、態様21記載のプロセッサ。
〔態様23〕
前記CPUが前記第二のMLCをのぞき見し、前記GPUが前記第一のMLCをのぞき見する、態様19記載のプロセッサ。
〔態様24〕
前記第一のMLCが、グラフィック・レンダリング・イベントに応答して前記第一のL1キャッシュに記憶されている情報を記憶する、態様23記載のプロセッサ。
〔態様25〕
前記第一のL1キャッシュからの情報を前記第一のMLCに記憶することが、その情報を前記CPUキャッシュ・コヒーレンス・ドメインに対して利用可能にする、態様24記載のプロセッサ。

Claims (1)

  1. グラフィック論理コヒーレンス・ドメイン内の第一のキャッシュおよび第二のキャッシュと、
    物理アドレスを使って前記第一のキャッシュ内に記憶された情報にアクセスする、前記グラフィック論理とは異なるコヒーレンス・ドメインにある中央処理ユニット(CPU)とを有する装置であって、
    前記第一のキャッシュは前記第二のキャッシュに対しキャッシュ階層において異なるレベルにある、装置。
JP2018190049A 2008-03-28 2018-10-05 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法 Active JP6707605B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/057,601 2008-03-28
US12/057,601 US9035959B2 (en) 2008-03-28 2008-03-28 Technique to share information among different cache coherency domains

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016028904A Division JP6417344B2 (ja) 2008-03-28 2016-02-18 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法

Publications (3)

Publication Number Publication Date
JP2019012563A true JP2019012563A (ja) 2019-01-24
JP2019012563A5 JP2019012563A5 (ja) 2019-04-11
JP6707605B2 JP6707605B2 (ja) 2020-06-10

Family

ID=41114791

Family Applications (7)

Application Number Title Priority Date Filing Date
JP2010550927A Pending JP2011515001A (ja) 2008-03-28 2009-03-27 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2012279612A Pending JP2013054789A (ja) 2008-03-28 2012-12-21 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2013241853A Active JP5890378B2 (ja) 2008-03-28 2013-11-22 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2014008392A Active JP5889928B2 (ja) 2008-03-28 2014-01-21 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2014124390A Active JP5889961B2 (ja) 2008-03-28 2014-06-17 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2016028904A Active JP6417344B2 (ja) 2008-03-28 2016-02-18 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2018190049A Active JP6707605B2 (ja) 2008-03-28 2018-10-05 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法

Family Applications Before (6)

Application Number Title Priority Date Filing Date
JP2010550927A Pending JP2011515001A (ja) 2008-03-28 2009-03-27 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2012279612A Pending JP2013054789A (ja) 2008-03-28 2012-12-21 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2013241853A Active JP5890378B2 (ja) 2008-03-28 2013-11-22 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2014008392A Active JP5889928B2 (ja) 2008-03-28 2014-01-21 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2014124390A Active JP5889961B2 (ja) 2008-03-28 2014-06-17 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP2016028904A Active JP6417344B2 (ja) 2008-03-28 2016-02-18 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法

Country Status (6)

Country Link
US (8) US9035959B2 (ja)
JP (7) JP2011515001A (ja)
CN (4) CN103824251B (ja)
DE (2) DE112009000373T5 (ja)
GB (6) GB2490821B (ja)
WO (1) WO2009120997A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9035959B2 (en) 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US8615637B2 (en) * 2009-09-10 2013-12-24 Advanced Micro Devices, Inc. Systems and methods for processing memory requests in a multi-processor system using a probe engine
US9128849B2 (en) * 2010-04-13 2015-09-08 Apple Inc. Coherent memory scheme for heterogeneous processors
US8937622B2 (en) 2010-09-20 2015-01-20 Qualcomm Incorporated Inter-processor communication techniques in a multiple-processor computing platform
GB2491588A (en) * 2011-06-06 2012-12-12 St Microelectronics Res & Dev Multiprocessor with different cache coherency protocols between different parts
US8856456B2 (en) 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
US20140032854A1 (en) * 2012-07-30 2014-01-30 Futurewei Technologies, Inc. Coherence Management Using a Coherent Domain Table
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9639471B2 (en) 2012-11-27 2017-05-02 Nvidia Corporation Prefetching according to attributes of access requests
US9563562B2 (en) 2012-11-27 2017-02-07 Nvidia Corporation Page crossing prefetches
CN103049422B (zh) * 2012-12-17 2013-11-27 浪潮电子信息产业股份有限公司 一种具有多cache一致性域的多处理器节点系统构建方法
US9824009B2 (en) * 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US9785604B2 (en) * 2013-02-15 2017-10-10 Intel Corporation Preset evaluation to improve input/output performance in high-speed serial interconnects
US9563561B2 (en) * 2013-06-25 2017-02-07 Intel Corporation Initiation of cache flushes and invalidations on graphics processors
US9436972B2 (en) 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
US9330433B2 (en) 2014-06-30 2016-05-03 Intel Corporation Data distribution fabric in scalable GPUs
US20160210231A1 (en) * 2015-01-21 2016-07-21 Mediatek Singapore Pte. Ltd. Heterogeneous system architecture for shared memory
US20180011792A1 (en) * 2016-07-06 2018-01-11 Intel Corporation Method and Apparatus for Shared Virtual Memory to Manage Data Coherency in a Heterogeneous Processing System
KR101852012B1 (ko) * 2016-11-24 2018-06-11 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
US11592817B2 (en) 2017-04-28 2023-02-28 Intel Corporation Storage management for machine learning at autonomous machines
US10929330B2 (en) * 2017-06-30 2021-02-23 Intel Corporation External resource discovery and coordination in a data center
KR101946476B1 (ko) * 2017-11-14 2019-05-20 전남대학교산학협력단 캐쉬 적중률 예측에 기반한 주기적 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
KR101853648B1 (ko) * 2018-03-13 2018-06-08 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
US11138111B2 (en) 2018-09-12 2021-10-05 Apple Inc. Parallel coherence and memory cache processing pipelines
US10872458B1 (en) * 2019-09-06 2020-12-22 Apple Inc. Graphics surface addressing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法
JP2007257637A (ja) * 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991081A (en) 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
JPH04328657A (ja) 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
JPH06222990A (ja) 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置
US5860109A (en) 1996-07-01 1999-01-12 Sun Microsystems, Inc. Methods and apparatus for a coherence transformer for connecting computer system coherence domains
US5963978A (en) * 1996-10-07 1999-10-05 International Business Machines Corporation High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators
US6237064B1 (en) 1998-02-23 2001-05-22 Intel Corporation Cache memory with reduced latency
US6243791B1 (en) 1998-08-13 2001-06-05 Hewlett-Packard Company Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics
US6483516B1 (en) 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6449699B2 (en) 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
US6801208B2 (en) 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
JP2003005841A (ja) 2001-06-25 2003-01-08 Kenwood Corp 直流安定化電源装置
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
JP2004326633A (ja) 2003-04-28 2004-11-18 Hitachi Ltd 階層型メモリシステム
US7469321B2 (en) * 2003-06-25 2008-12-23 International Business Machines Corporation Software process migration between coherency regions without cache purges
US6862027B2 (en) 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
US7023445B1 (en) 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
JP2005309867A (ja) 2004-04-22 2005-11-04 Fujitsu Ltd マルチコア・プロセサ試験方法
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
WO2006051454A1 (en) * 2004-11-11 2006-05-18 Koninklijke Philips Electronics N.V. System as well as method for managing memory space
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7454576B2 (en) * 2004-12-27 2008-11-18 Intel Corporation System and method for cache coherency in a cache with different cache location lengths
US7478201B2 (en) 2005-05-24 2009-01-13 International Business Machines Corporation Data processing system, cache system and method for passively scrubbing a domain indication
US7725619B2 (en) 2005-09-15 2010-05-25 International Business Machines Corporation Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes
US7958312B2 (en) 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7543116B2 (en) 2006-01-30 2009-06-02 International Business Machines Corporation Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains
US7757045B2 (en) 2006-03-13 2010-07-13 Intel Corporation Synchronizing recency information in an inclusive cache hierarchy
US7451277B2 (en) 2006-03-23 2008-11-11 International Business Machines Corporation Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
US7484042B2 (en) 2006-08-18 2009-01-27 International Business Machines Corporation Data processing system and method for predictively selecting a scope of a prefetch operation
US8495308B2 (en) 2006-10-09 2013-07-23 International Business Machines Corporation Processor, data processing system and method supporting a shared global coherency state
US8327173B2 (en) * 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
US9035959B2 (en) * 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US8219711B2 (en) 2008-11-24 2012-07-10 Juniper Networks, Inc. Dynamic variable rate media delivery system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法
JP2007257637A (ja) * 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム

Also Published As

Publication number Publication date
US10204051B2 (en) 2019-02-12
US20140136797A1 (en) 2014-05-15
US8643660B2 (en) 2014-02-04
US20090248983A1 (en) 2009-10-01
CN101978359A (zh) 2011-02-16
DE112009005503A5 (de) 2013-07-11
GB2490821B (en) 2013-01-30
US20170109280A1 (en) 2017-04-20
GB2490821A (en) 2012-11-14
JP5890378B2 (ja) 2016-03-22
JP2014096176A (ja) 2014-05-22
US20130117509A1 (en) 2013-05-09
GB201207247D0 (en) 2012-06-06
GB201213564D0 (en) 2012-09-12
GB2487328A (en) 2012-07-18
US20120200585A1 (en) 2012-08-09
JP2014167831A (ja) 2014-09-11
GB2493880A (en) 2013-02-20
US9035962B2 (en) 2015-05-19
GB2471786B (en) 2012-09-05
GB201222945D0 (en) 2013-01-30
WO2009120997A2 (en) 2009-10-01
CN101978359B (zh) 2015-04-01
US9035959B2 (en) 2015-05-19
GB201214187D0 (en) 2012-09-19
WO2009120997A3 (en) 2009-12-30
JP6417344B2 (ja) 2018-11-07
JP5889961B2 (ja) 2016-03-22
CN103279426B (zh) 2017-03-01
CN103824251A (zh) 2014-05-28
DE112009000373T5 (de) 2011-01-27
GB2493880B (en) 2013-03-27
US10078590B2 (en) 2018-09-18
GB201221421D0 (en) 2013-01-09
US9665488B2 (en) 2017-05-30
US9035960B2 (en) 2015-05-19
GB2487328B (en) 2012-10-03
CN103824251B (zh) 2017-09-26
US20170109304A1 (en) 2017-04-20
US20130207987A1 (en) 2013-08-15
JP2011515001A (ja) 2011-05-12
JP5889928B2 (ja) 2016-03-22
GB2471786A (en) 2011-01-12
GB2495032B (en) 2013-05-08
CN107506312B (zh) 2021-09-28
GB201015007D0 (en) 2010-10-20
CN103279426A (zh) 2013-09-04
CN107506312A (zh) 2017-12-22
JP2013054789A (ja) 2013-03-21
GB2495032A (en) 2013-03-27
US20170109287A1 (en) 2017-04-20
JP2016085766A (ja) 2016-05-19
JP6707605B2 (ja) 2020-06-10
US9946650B2 (en) 2018-04-17
JP2014032708A (ja) 2014-02-20

Similar Documents

Publication Publication Date Title
JP6707605B2 (ja) 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
JP5714733B2 (ja) キャッシュ競合の解決
US20140089602A1 (en) System cache with partial write valid states
US20070150663A1 (en) Device, system and method of multi-state cache coherence scheme
US20090006668A1 (en) Performing direct data transactions with a cache memory
US8788761B2 (en) System and method for explicitly managing cache coherence
KR20200088391A (ko) 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱
JP4948141B2 (ja) バス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191101

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200520

R150 Certificate of patent or registration of utility model

Ref document number: 6707605

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250