IP Library › Granted Patent US 10,545,870
Granted Patent B2
US 10,545,870 · App. 15/193,164 · Granted Jan 28, 2020

Arithmetic processing device and arithmetic processing device control method

Inventor: Hiroyuki Ishii (Kawasaki, JP)
Assignee: FUJITSU LIMITED
G06F12/0811G06F12/126G06F2212/62
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,545,870
App. No.
15/193,164
Granted
Jan 28, 2020
Kind
B2
Abstract

An arithmetic processing device includes clusters, each including cores and a last level cache shared by the cores; a home agent connected to the last level caches; and a memory controller connected to the home agent to control accesses to a memory. In response to a memory request from a first last level cache in a first cluster, the home agent issues a first replace request to the first last level cache to evict a first victim line in the first last level cache, the home agent issues a second replace request to a second last level cache in a second cluster in an idle state other than the first cluster to evict a second victim line in the second last level cache, and the second last level cache fills data of the first victim line to the second victim line.

Claims (41)

1. An arithmetic processing device comprising:

a plurality of clusters, each including a plurality of cores and a last level cache shared by the plurality of cores, each core having an arithmetic unit;

a home agent connected to the last level cache included in each of the plurality of clusters; and

a memory controller connected to the home agent to control accesses to a memory, wherein

in response to a memory request supplied from a first last level cache in a first cluster among the plurality of clusters,

the home agent issues a first replace request to the first last level cache to cause the first last level cache to evict a first victim line in the first last level cache,

the home agent issues a second replace request to a second last level cache in a second cluster in an idle state other than the first cluster to cause the second last level cache to evict a second victim line in the second last level cache,

in response to the first replace request, the first last level cache transfers the data of the first victim line to the second last level cache, and

the second last level cache fills the data of the first victim line to the second victim line.

2. The arithmetic processing device according to claim 1 , wherein the home agent further issues a line allocation request to the second last level cache to cause the second last level cache to allocate a line fill buffer.

3. The arithmetic processing device according to claim 1 , wherein

the last level cache has a victim line buffer in which data of a victim line transferred from another last level cache is stored, and

the second last level cache stores the data of the first victim line transferred by the first last level cache in the victim line buffer and fills the data of the first victim line therein.

4. The arithmetic processing device according to claim 1 , wherein the home agent includes an idle state identification circuit that identifies whether the plurality of clusters is in an idle state.

5. The arithmetic processing device according to claim 4 , wherein

the idle state identification circuit includes:

an idle state determination circuit that, when the number of times all cores in each of the plurality of clusters are in an offline or suspend state is equal to or greater than a predetermined frequency, determines that the cluster is in the idle state; and

an idle state duration monitoring circuit that, when the idle state continues a predetermined period or longer, determines that the last level cache of the cluster is in a release state.

6. An arithmetic processing device comprising:

a plurality of clusters, each including a plurality of cores and a last level cache shared by the plurality of cores, each core having an arithmetic unit;

a home agent connected to the last level cache included in each of the plurality of clusters and has a replace buffer; and

a memory controller connected to the home agent to control accesses to a memory,

in response to a memory request supplied from a first last level cache in a first cluster among the plurality of clusters,

the home agent issues a first replace request to the first last level cache to cause the first last level cache to evict a first victim line in the first last level cache,

the home agent stores, in the replace buffer, the data of the first victim line evicted from the first last level cache in response to the first replace request,

the home agent issues a second replace request to a second last level cache in a second cluster in an idle state other than the first cluster to cause the second last level cache to evict a second victim line in the second last level cache,

the home agent transfers the data of the first victim line stored in the replace buffer to the second last level cache, and

the second last level cache fills the data of the first victim line to the second victim line.

7. An arithmetic processing device comprising:

a plurality of clusters, each including a plurality of cores and a last level cache shared by the plurality of cores, each core having an arithmetic unit;

a home agent connected to the last level cache included in each of the plurality of clusters; and

a memory controller connected to the home agent to control accesses to a memory,

in response to a first memory request supplied from a first last level cache in a first cluster among the plurality of clusters,

the home agent issues a first replace request to the first last level cache to cause the first last level cache to evict a first victim line in the first last level cache,

the home agent issues a write-back request for data of the first victim line to the memory controller,

the home agent issues a second replace request to a second last level cache in a second cluster in an idle state other than the first cluster to cause the second last level cache to evict a second victim line in the second last level cache,

the home agent further issues an issue request for issuing a second memory request that requests the data of the first victim line to the second last level cache to cause the second last level cache to issue the second memory request to the home agent,

in response to the second memory request sent from the second last level cache, the home agent issues a second fetch request for the data of the first victim line to the memory controller,

the memory controller sends a data response corresponding the second fetch request to the second last level cache, the data response including the data of the first victim line,

the second last level cache receives the data of the first victim line included in the data response, and

the second last level cache fills the data of the first victim line to the second victim line.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2016
From: ISHII, HIROYUKI
To: FUJITSU LIMITED
Reel/Frame 039011/0448 →
Priority Claims (1)
JP 2015-144509 · Jul 22, 2015 · national
Continuity (1)
Related Publication 20170024329A1 · Jan 26, 2017