JP5603507B2 - ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 - Google Patents
ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 Download PDFInfo
- Publication number
- JP5603507B2 JP5603507B2 JP2013544447A JP2013544447A JP5603507B2 JP 5603507 B2 JP5603507 B2 JP 5603507B2 JP 2013544447 A JP2013544447 A JP 2013544447A JP 2013544447 A JP2013544447 A JP 2013544447A JP 5603507 B2 JP5603507 B2 JP 5603507B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- block
- tile
- directory
- core
- 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.)
- Expired - Fee Related
Links
- 230000005012 migration Effects 0.000 title claims description 6
- 238000013508 migration Methods 0.000 title claims description 6
- 238000012546 transfer Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 29
- 239000013598 vector Substances 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000003153 chemical reaction reagent Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010792 warming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Claims (23)
- マルチコアプロセッサにおいてキャッシュ状態の移動を加速させるためのコンピュータによって実行される方法であって、
前記マルチコアプロセッサの第1のタイルから第2のタイルへの、前記第1のタイルにおける第1のコア上で実行するスレッドの移送をメモリ及びプロセッサを備えるコンピュータによって開始することであって、前記第1のタイルは第1のコアと第1のキャッシュを備え、前記第2のタイルは第2のコアと第2のキャッシュを備える、移送の開始と、
前記マルチコアプロセッサにおける前記第1のタイルの第1のコアから前記第2のタイルへのスレッドの移送に基づいて、前記第1のキャッシュから第2のキャッシュへ移動されるブロックのブロックアドレスをコンピュータによって決定することであって、前記ブロックのブロックアドレスは前記第1のキャッシュのキャッシュ・タグ・アレイをスキャニングすることによって決定される、ブロックアドレスの決定と、
前記マルチコアプロセッサにおける第3のタイルをコンピュータによって識別することであって、前記第3のタイルは前記第1のキャッシュから前記第2のキャッシュへ移動されるブロックのブロックアドレスに対応するディレクトリを備え、前記ディレクトリは前記第1のキャッシュがブロックを含み、前記第2のキャッシュが該ブロックを共有しないことを示すものである、第3のタイルの識別と、
前記第1のキャッシュから第2のキャッシュへと移動されるブロックのブロックアドレスのリストと、前記ブロックが移動させられる第2のキャッシュの識別子とを含むメッセージを前記第1のタイルから前記第3のタイルへ送信することによって、前記第2のキャッシュが前記ブロックを共有することを反映するように前記ディレクトリをコンピュータによってアップデートすることと、
前記第1のタイルにおいて、前記第3のタイルからのディレクトリがアップデートされたことを示す承認の受信に応答して、前記第1のタイルから前記第2のタイルへの前記スレッドの移送を完了させるために、前記第2のタイルにおける第2のキャッシュに、前記第1のタイルにおける第1のキャッシュから前記ブロックをコンピュータによって移動させること、
を包含する、方法。 - 前記第2のキャッシュが前記ブロックを共有することを反映するように前記ディレクトリをアップデートすることが、
前記第3のタイルにおいて前記メッセージを受信したことに応答して、前記第2のキャッシュが前記ブロックアドレスのリストに含まれるブロックアドレスを共有することを反映するように前記ディレクトリをアップデートすること、
をさらに包含する、請求項1に記載のコンピュータによって実行される方法。 - 前記第2のキャッシュが前記ブロックを共有することを反映するように前記ディレクトリをアップデートすることが、 前記第2のキャッシュが前記ブロックを含むことを反映するようにビットベクトルをコンピュータによってアップデートすることを包含し、前記ディレクトリは複数のビットを含むビットベクトルを備え、前記複数のビットのそれぞれが前記マルチコアプロセッサにおける複数のタイルのうちの対応するものと関連付けられ、前記ビットのそれぞれの値は対応する前記タイルが前記ブロックを含むキャッシュを含むか否かを特定する、請求項1に記載のコンピュータによって実行される方法。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、前記第2のキャッシュが前記ブロックを共有することを反映するようにディレクトリがアップデートされる前に、コンピュータによって前記第1のキャッシュから前記第2のキャッシュへ前記ブロックを移動することを含む、請求項1に記載のコンピュータによって実行される方法。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、前記第2のキャッシュが前記ブロックを共有することを反映するようにディレクトリをアップデートするのと同時に、コンピュータによって前記第1のキャッシュから前記第2のキャッシュへ前記ブロックを移動することを含む、請求項1に記載のコンピュータによって実行される方法。
- 前記第1のタイルにおいて前記ブロックうちの少なくとも1つに対するキャッシュの無効化若しくは介入リクエストを受信することであって、前記第1のタイルはさらに移動状態表を備えるものである、リクエストの受信と、
第1の種類の移動動作が完了されたか否かをコンピュータによって決定することであって、前記ブロックが前記第1のキャッシュから第2のキャッシュに移動させられたことを前記移動状態表が示す時と、前記第2のキャッシュが前記ブロックを共有することを反映するように前記ディレクトリがアップデートされていない時に、前記第1の種類の移動動作が完了されるように決定されるものである、決定することと、
前記第1の種類の移動動作が完了されたと決定したことに応答して、前記キャッシュの無効化または介入のリクエストのうちいずれかをコンピュータによって前記第1のキャッシュから前記第2のキャッシュに転送することと、
をさらに包含する、請求項5に記載のコンピュータによって実行される方法。 - 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、前記第1のキャッシュと前記第2のキャッシュとの間でコンピュータによって前記ブロックを複製することを包含する、請求項1に記載のコンピュータによって実行される方法。
- 前記第1のキャッシュと前記第2のキャッシュとの間で前記ブロックを複製することが、前記ブロックのダーティエントリを取り除くために前記マルチコアプロセッサに結合されたメインメモリをコンピュータによってアップデートするための命令を送信することを包含する、請求項7に記載のコンピュータによって実行される方法。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、
前記第1のキャッシュから前記第2のキャッシュに前記ブロックをコンピュータによって動かすことにより、前記第1のキャッシュにおける前記ブロックを無効化することと、
前記無効化されたブロックを反映するようにコンピュータによって前記ディレクトリをアップデートすることと
を包含する、請求項1に記載のコンピュータによって実行される方法。 - 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、前記第1のキャッシュから前記第2のキャッシュに最近最も使用されたブロックの一部分をコンピュータによって移動させることを包含する、請求項1に記載のコンピュータによって実行される方法。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させることが、最近最も使用されたブロックから最近最も使用されていないブロックという順序で前記ブロックをコンピュータによって移動させることを包含する、請求項1に記載のコンピュータによって実行される方法。
- 第1のコア、第1のキャッシュ及び第1のディレクトリを備える第1のタイルと、
第2のコア、第2のキャッシュ及び第2のディレクトリを備える第2のタイルと、
第3のコア、第3のキャッシュ及び第3のディレクトリを備える第3のタイルと
を備えるマルチコアプロセッサであって、
前記マルチコアプロセッサは、
前記第1のコア上で実行するスレッドの、前記第1のタイルから前記第2のタイルへの移送を開始することと、
前記マルチコアプロセッサにおける前記第1のタイルから前記第2のタイルにおける第2のコアへの前記第一のコアで実行されるスレッドの移送に基づいて、前記第1のキャッシュから前記第2のキャッシュに移動させられるブロックのブロックアドレスを決定することであって、前記ブロックのブロックアドレスは前記第1のキャッシュのキャッシュ・タグ・アレイをスキャニングすることによって決定される、ブロックアドレスの決定と、
前記第3のディレクトリが前記第1のキャッシュから第2のキャッシュへ移動されるブロックのブロックアドレスに対応することを識別することであって、前記第3のディレクトリは前記第1のキャッシュがブロックを含み、前記第2のキャッシュが該ブロックを共有しないことを示すものである、第3のディレクトリによる識別と、
前記第1のキャッシュから第2のキャッシュへと移動されるブロックのブロックアドレスのリストと、ブロックが移動させられる第2のキャッシュの識別子とを含むメッセージを前記第1のタイルから前記第3のタイルへ送信することによって、前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリをアップデートすることと、
前記第1のタイルにおいて、前記第3のタイルからのディレクトリがアップデートされたことを示す承認の受信に応答して、前記第1のタイルから前記第2のタイルへの前記スレッドの移送を完了するために、前記第2のタイルにおける前記第2のキャッシュに、前記第1のタイルにおける前記第1のキャッシュから前記ブロックを移動させることと
を行うように構成される、マルチコアプロセッサ。 - 前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリをアップデートするために、前記マルチコアプロセッサが、
前記第3のタイルにおける前記メッセージの受信に応答して、前記第2のキャッシュが前記ブロックアドレスのリストに含まれる前記ブロックアドレスを共有することを反映するように前記第3のディレクトリをアップデートすること
を行うように構成される、請求項12に記載のマルチコアプロセッサ。 - 前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリをアップデートするために、前記マルチコアプロセッサは前記第2のキャッシュが前記ブロックを含むことを反映するようにビットベクトルをアップデートするように構成され、前記第3のディレクトリは複数のビットを含むビットベクトルを備え、前記複数のビットのそれぞれは、前記マルチコアプロセッサにおける複数のタイルのうちの対応するものと関連付けられ、前記ビットのそれぞれの値は、前記タイルのうちの対応するものが前記ブロックを含むキャッシュを含むか否かを特定する、請求項12に記載のマルチコアプロセッサ。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは、前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリがアップデートされる前に、前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるように構成される、請求項12に記載のマルチコアプロセッサ。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは、前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリをアップデートするのと同時に、前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるように構成される、請求項12に記載のマルチコアプロセッサ。
- 前記第1のタイルは前記第1のキャッシュからのキャッシュの移動と関連付けられる移動状態表をさらに備え、前記マルチコアプロセッサは、
前記第1のタイルにおいて前記ブロックのうちの少なくとも1つに対するキャッシュの無効化または介入のリクエストを受信することと、
第1の種類の移動動作が完了されたか否かを決定することであって、前記ブロックが前記第1のキャッシュから第2のキャッシュに移動させられたことを前記移動状態表が示す時と、前記第2のキャッシュが前記ブロックを共有することを反映するように前記第3のディレクトリがアップデートされていない時とに、前記第1の種類の移動動作は完了されるように決定される、決定することと、
前記第1の種類の移動動作が完了されたと決定したことに応答して、前記キャッシュの無効化または介入のリクエストのうちのいずれかを前記第1のタイルから前記第2のタイルに転送することと
を行うようにさらに構成される、請求項12に記載のマルチコアプロセッサ。 - 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは、前記第1のキャッシュと前記第2のキャッシュとが前記ブロックを格納するように前記第1のキャッシュと前記第2のキャッシュとの間で前記ブロックを複製するように構成される、請求項12に記載のマルチコアプロセッサ。
- 前記第1のキャッシュと前記第2のキャッシュとの間で前記ブロックを複製するために、前記マルチコアプロセッサは、前記ブロックにおけるダーティエントリを取り除くために前記マルチコアプロセッサに結合されたメインメモリをアップデートするための命令を送信するように構成される、請求項18に記載のマルチコアプロセッサ。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは、前記第2のキャッシュはブロックを格納し、前記第1のキャッシュはブロックを格納しないように前記第1のキャッシュから前記第2のキャッシュに前記ブロックを動かすようにさらに構成される、請求項12に記載のマルチコアプロセッサ。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは前記第1のキャッシュから前記第2のキャッシュに前記ブロックにおける最近最も使用されたブロックのうちの一部を移動させるように構成される、請求項12に記載のマルチコアプロセッサ。
- 前記第1のキャッシュから前記第2のキャッシュに前記ブロックを移動させるために、前記マルチコアプロセッサは最近最も使用されたブロックから最近最も使用されていないブロックという順序で前記ブロックを移動させるように構成される、請求項12に記載のマルチコアプロセッサ。
- 第1のコア、第1のキャッシュ及び第1のディレクトリを備える第1のタイルと、
第2のコア、第2のキャッシュ及び第2のディレクトリを備える第2のタイルと、
第3のコア、第3のキャッシュ及び第3のディレクトリを備える第3のタイルと、
第4のコア、第4のキャッシュ及び第4のディレクトリを備える第4のタイルと
を備えるマルチコアプロセッサであって、
前記マルチコアプロセッサは、
前記第1のコア上で実行するスレッドの、前記第1のタイルから前記第2のタイルへの移送を開始することと、
前記マルチコアプロセッサにおける前記第1のタイルから前記第2のタイルへの前記第1のコアで実行されるスレッドの移送に基づいて、前記第1のキャッシュから前記第2のキャッシュに移動させられる、第1のブロックのブロックアドレスの第1の組と第2のブロックのブロックアドレスの第2の組とを決定することと、
前記第3のディレクトリが前記第1のキャッシュから前記第2のキャッシュへ移動される第1のブロックのブロックアドレスの第1の組に対応することを識別することであって、前記第3のディレクトリは前記第1のキャッシュが第1のブロックを含み、前記第2のキャッシュが前記第1のブロックを共有しないことを示すものであることと、
前記第4のディレクトリが前記第1のキャッシュから前記第2のキャッシュへ移動させられる前記第2のブロックのブロックアドレスの第2の組に対応することを識別することであって、前記第4のディレクトリは前記第1のキャッシュが第2のブロックを含み、前記第2のキャッシュが前記第2のブロックを共有しないことを示すものであることと、
前記第1のキャッシュから第2のキャッシュへと移動されるブロックのブロックアドレスの第1のリストと、ブロックが移動させられる第2のキャッシュの識別子とを含むメッセージを前記第1のタイルから前記第3のタイルへ送信することによって前記第2のキャッシュが前記第1のブロックを共有することを反映するように前記第3のディレクトリをアップデートすることと、
前記第1のキャッシュから第2のキャッシュへと移送されるブロックのブロックアドレスの第2のリストと、ブロックが移動させられる第2のキャッシュの識別子とを含むメッセージを前記第1のタイルから前記第4のタイルへ送信することによって前記第2のキャッシュが前記第2のブロックを共有することを反映するように前記第4のディレクトリをアップデートすることと、
前記第1のタイルにおいて、前記第3および第4のタイルからのディレクトリがアップデートされたことを示す承認の受信に応答して、前記第1のタイルから前記第2のタイルへの前記スレッドの移送を完了するために、前記第2のキャッシュに、前記第1のキャッシュから前記第1のブロックと前記第2のブロックとを移動させることと、
前記第2のコア上で前記スレッドを実行することと
を行うように構成される、マルチコアプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/062335 WO2012091702A1 (en) | 2010-12-29 | 2010-12-29 | Accelerating cache state transfer on a directory-based multicore architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013546095A JP2013546095A (ja) | 2013-12-26 |
JP5603507B2 true JP5603507B2 (ja) | 2014-10-08 |
Family
ID=46381840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013544447A Expired - Fee Related JP5603507B2 (ja) | 2010-12-29 | 2010-12-29 | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9336146B2 (ja) |
JP (1) | JP5603507B2 (ja) |
KR (1) | KR101497516B1 (ja) |
WO (1) | WO2012091702A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298621B2 (en) * | 2011-11-04 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Managing chip multi-processors through virtual domains |
US9047194B2 (en) | 2012-07-18 | 2015-06-02 | Empire Technology Development Llc | Virtual cache directory in multi-processor architectures |
GB2502857B (en) * | 2013-03-05 | 2015-01-21 | Imagination Tech Ltd | Migration of data to register file cache |
US8671232B1 (en) * | 2013-03-07 | 2014-03-11 | Freescale Semiconductor, Inc. | System and method for dynamically migrating stash transactions |
US9710303B2 (en) | 2013-06-06 | 2017-07-18 | Empire Technology Development Llc | Shared cache data movement in thread migration |
US9405691B2 (en) | 2013-06-19 | 2016-08-02 | Empire Technology Development Llc | Locating cached data in a multi-core processor |
US9367325B2 (en) * | 2013-06-29 | 2016-06-14 | Intel Corporation | Common architecture state presentation for processor having processing cores of different types |
US9684607B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Automatic recovery of application cache warmth |
US9830265B2 (en) * | 2013-11-20 | 2017-11-28 | Netspeed Systems, Inc. | Reuse of directory entries for holding state information through use of multiple formats |
KR101513162B1 (ko) * | 2014-02-19 | 2015-04-17 | 주식회사 큐레이소프트 | 보안 어플리케이션 구동 시스템 |
US10078613B1 (en) * | 2014-03-05 | 2018-09-18 | Mellanox Technologies, Ltd. | Computing in parallel processing environments |
US9632958B2 (en) | 2014-07-06 | 2017-04-25 | Freescale Semiconductor, Inc. | System for migrating stash transactions |
US9684596B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Application cache replication to secondary application(s) |
US20170168957A1 (en) * | 2015-12-10 | 2017-06-15 | Ati Technologies Ulc | Aware Cache Replacement Policy |
WO2019108963A1 (en) | 2017-12-01 | 2019-06-06 | MemSQL Inc. | Accelerated filtering, grouping and aggregation in a database system |
US11513958B1 (en) | 2019-05-29 | 2022-11-29 | Marvell Asia Pte, Ltd. | Shared mid-level data cache |
US11327890B1 (en) * | 2019-05-29 | 2022-05-10 | Marvell Asia Pte, Ltd. | Partitioning in a processor cache |
US11036643B1 (en) | 2019-05-29 | 2021-06-15 | Marvell Asia Pte, Ltd. | Mid-level instruction cache |
CN114270307A (zh) * | 2019-08-22 | 2022-04-01 | 谷歌有限责任公司 | 用于同步处理器的分片 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6857051B2 (en) * | 1998-12-23 | 2005-02-15 | Intel Corporation | Method and apparatus for maintaining cache coherence in a computer system |
US6751698B1 (en) | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
JP2001236221A (ja) | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
US6654858B1 (en) * | 2000-08-31 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol |
EP1436724A4 (en) * | 2001-09-28 | 2007-10-03 | Consentry Networks Inc | MORE THREAD PACKAGE PROCESSING ENGINE FOR CAREFUL PACKAGE PROCESSING |
US6779086B2 (en) * | 2001-10-16 | 2004-08-17 | International Business Machines Corporation | Symmetric multiprocessor systems with an independent super-coherent cache directory |
US6804632B2 (en) * | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US7103728B2 (en) * | 2002-07-23 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | System and method for memory migration in distributed-memory multi-processor systems |
US6868485B1 (en) | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
US6976148B2 (en) * | 2003-01-09 | 2005-12-13 | International Business Machines Corporation | Acceleration of input/output (I/O) communication through improved address translation |
US7783842B2 (en) * | 2003-01-09 | 2010-08-24 | International Business Machines Corporation | Cache coherent I/O communication |
US7047320B2 (en) * | 2003-01-09 | 2006-05-16 | International Business Machines Corporation | Data processing system providing hardware acceleration of input/output (I/O) communication |
US20040139305A1 (en) * | 2003-01-09 | 2004-07-15 | International Business Machines Corporation | Hardware-enabled instruction tracing |
US20040139304A1 (en) * | 2003-01-09 | 2004-07-15 | International Business Machines Corporation | High speed virtual instruction execution mechanism |
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 |
US7788452B2 (en) * | 2004-01-20 | 2010-08-31 | International Business Machines Corporation | Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches |
US7526515B2 (en) * | 2004-01-21 | 2009-04-28 | International Business Machines Corporation | Method and system for a grid-enabled virtual machine with movable objects |
US7454576B2 (en) * | 2004-12-27 | 2008-11-18 | Intel Corporation | System and method for cache coherency in a cache with different cache location lengths |
US20060143384A1 (en) * | 2004-12-27 | 2006-06-29 | Hughes Christopher J | System and method for non-uniform cache in a multi-core processor |
US7536514B2 (en) * | 2005-09-13 | 2009-05-19 | International Business Machines Corporation | Early return indication for read exclusive requests in shared memory architecture |
US7478190B2 (en) * | 2006-02-10 | 2009-01-13 | University Of Utah Technology Commercialization Office | Microarchitectural wire management for performance and power in partitioned architectures |
US7626588B1 (en) * | 2006-06-16 | 2009-12-01 | Nvidia Corporation | Prescient cache management |
US7543112B1 (en) * | 2006-06-20 | 2009-06-02 | Sun Microsystems, Inc. | Efficient on-chip instruction and data caching for chip multiprocessors |
US7805575B1 (en) * | 2006-09-29 | 2010-09-28 | Tilera Corporation | Caching in multicore and multiprocessor architectures |
US8799581B2 (en) * | 2007-01-05 | 2014-08-05 | International Business Machines Corporation | Cache coherence monitoring and feedback |
US7793044B1 (en) * | 2007-01-16 | 2010-09-07 | Oracle America, Inc. | Efficient caching of stores in scalable chip multi-threaded systems |
US20080244189A1 (en) * | 2007-03-30 | 2008-10-02 | Allison Brian D | Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access |
US7966453B2 (en) * | 2007-12-12 | 2011-06-21 | International Business Machines Corporation | Method and apparatus for active software disown of cache line's exlusive rights |
US8615647B2 (en) * | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8615633B2 (en) * | 2009-04-23 | 2013-12-24 | Empire Technology Development Llc | Multi-core processor cache coherence for reduced off-chip traffic |
WO2010142432A2 (en) * | 2009-06-09 | 2010-12-16 | Martin Vorbach | System and method for a cache in a multi-core processor |
US8799586B2 (en) * | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
US8667227B2 (en) * | 2009-12-22 | 2014-03-04 | Empire Technology Development, Llc | Domain based cache coherence protocol |
US8244986B2 (en) * | 2009-12-30 | 2012-08-14 | Empire Technology Development, Llc | Data storage and access in multi-core processor architectures |
WO2011130604A1 (en) * | 2010-04-16 | 2011-10-20 | Massachusetts Institute Of Technology | Execution migration |
WO2012128769A1 (en) * | 2011-03-24 | 2012-09-27 | Empire Technology Development Llc | Dynamically determining profitability of direct fetching in a multicore architecture |
US9274960B2 (en) * | 2012-03-20 | 2016-03-01 | Stefanos Kaxiras | System and method for simplifying cache coherence using multiple write policies |
US9047194B2 (en) * | 2012-07-18 | 2015-06-02 | Empire Technology Development Llc | Virtual cache directory in multi-processor architectures |
US9009446B2 (en) * | 2012-08-02 | 2015-04-14 | Oracle International Corporation | Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with electrical interconnect |
US9235529B2 (en) * | 2012-08-02 | 2016-01-12 | Oracle International Corporation | Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with optical interconnect |
KR20140080058A (ko) * | 2012-12-20 | 2014-06-30 | 삼성전자주식회사 | 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말 |
US9384132B2 (en) * | 2013-06-28 | 2016-07-05 | Intel Corporation | Emulated message signaled interrupts in a virtualization environment |
US9378069B2 (en) * | 2014-03-05 | 2016-06-28 | International Business Machines Corporation | Lock spin wait operation for multi-threaded applications in a multi-core computing environment |
US9740617B2 (en) * | 2014-12-23 | 2017-08-22 | Intel Corporation | Hardware apparatuses and methods to control cache line coherence |
-
2010
- 2010-12-29 US US13/319,159 patent/US9336146B2/en active Active
- 2010-12-29 JP JP2013544447A patent/JP5603507B2/ja not_active Expired - Fee Related
- 2010-12-29 WO PCT/US2010/062335 patent/WO2012091702A1/en active Application Filing
- 2010-12-29 KR KR1020137017646A patent/KR101497516B1/ko active IP Right Grant
-
2016
- 2016-03-25 US US15/080,605 patent/US9760486B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9336146B2 (en) | 2016-05-10 |
US20160210229A1 (en) | 2016-07-21 |
JP2013546095A (ja) | 2013-12-26 |
US9760486B2 (en) | 2017-09-12 |
KR20130101572A (ko) | 2013-09-13 |
US20120173819A1 (en) | 2012-07-05 |
WO2012091702A1 (en) | 2012-07-05 |
KR101497516B1 (ko) | 2015-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5603507B2 (ja) | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 | |
JP4421561B2 (ja) | ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム | |
TWI267862B (en) | Flash controller cache architecture | |
US9563568B2 (en) | Hierarchical cache structure and handling thereof | |
US9612975B2 (en) | Page cache device and method for efficient mapping | |
CN111143234B (zh) | 存储设备、包括这种存储设备的系统及其操作方法 | |
CN104765575B (zh) | 信息存储处理方法 | |
JP2018156679A (ja) | データを格納するための方法およびデータを格納するための一時的でないコンピュータ読取可能記録媒体 | |
JP4645973B2 (ja) | 命令セットのエミュレーションのための方法、装置及びシステム | |
CN1955948A (zh) | 用于管理高速缓存数据的数字数据处理设备和方法 | |
TW200809495A (en) | Hybrid multi-tiered caching storage system | |
US20060230237A1 (en) | Method and system for maintaining cache coherence of distributed shared memory system | |
DE112011106013T5 (de) | System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem | |
CN103345451B (zh) | 一种在多核处理器中缓冲数据的方法 | |
CN1729458A (zh) | 供多处理器系统中的高速缓存同步中使用的转发状态 | |
JP2004246898A (ja) | キャッシュのロックを使用するストリーミング・データ | |
JP2016520905A (ja) | ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ | |
JP2006323829A (ja) | 動的にリンクするプログラムのオーバーレイのための方法及び装置 | |
JP2015515678A (ja) | テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法 | |
JP5505516B2 (ja) | 情報処理システムおよび情報送信方法 | |
CN1320464C (zh) | 用于维持共享高速缓存一致性的方法和设备 | |
JP4346612B2 (ja) | 情報処理方法および装置 | |
JP6089891B2 (ja) | 演算処理装置、情報処理装置及び情報処理装置の制御方法 | |
JP2006520044A (ja) | データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140625 |
|
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: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140821 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5603507 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |