# US 10,482,018 B2 · Arithmetic processing unit and method for controlling arithmetic processing unit

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,018 B2
- Document ID: US10482018B2
- Status: Granted
- Kind: B2
- Application number: 16/110,578
- Filed: 2018-08-23
- Published: 2019-03-14
- Granted: 2019-11-19
- Earliest claimed: 2017-09-13
- Assignees: Fujitsu Limited
- Applicants: Fujitsu Limited
- Inventors: Yuki Kamikubo; Noriko Takagi
- Web page: https://patentgrep.com/patent/US10482018B2

## CPC

- G06F 12/0855: Overlapped cache accessing, e.g. pipeline (G06F12/0846 takes precedence)
- G06F 12/0811: with multilevel cache hierarchies
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An arithmetic processing unit includes a cache including a cache memory for storing states of data and data in a block at an index of the memory access request, a move-in buffer control unit that issues a move-in request when cache miss, and move-in buffers for registering the move-in request. The move-in buffer control unit, in response to cache miss, (a) secures a vacant move-in buffer when the vacant move-in buffer exists, (b) issues a move-in request when a move-in request having a same index as the memory access request is not registered in the move-in buffers, (c) issues the move-in request when the move-in request having the same index is registered in the move-in buffers and all ways are not used by the move-in request having the same index in the move-in buffers, and (d) releases the secured move-in buffer when all the ways are used.

## Claims

### Claim 1

An arithmetic processing unit comprising:
a memory access request issuance unit configured to issue a memory access request; and
a cache including
a cache memory including a tag memory and a data memory, states of data and data being registered in a block at an index that matches with matching an index of the memory access request inside the tag memory and the data memory,
a move-in buffer control unit that issues a move-in request to register data of the memory access request in the cache when the memory access request causes a cache miss, and
a plurality of move-in buffers each of which registers information of the move-in request, wherein,
the move-in buffer control unit, in response to an input of the memory access request to which the cache miss occurs,
(a) secures a vacant move-in buffer for the memory access request when judging that the vacant move-in buffer exists in the plurality of move-in buffers,
(b) issues a move-in request of the memory access request having secured the move-in buffer when judging that a move-in request having a same index as an index of the memory access request has not been registered in any of the plurality of move-in buffers,
(c) issues the move-in request of the memory access request having secured the move-in buffer when judging that the move-in request having the same index has been registered in any of the plurality of move-in buffers and further judging that all ways serving as replace ways have not been used by the move-in request having the same index that has been registered in any of the plurality of move-in buffers, and
(d) releases the secured move-in buffer and prevents an issuance of the move-in request when judging that all the ways have been used.

### Claim 2 (depends on 1)

The arithmetic processing unit according to claim 1, wherein
the move-in buffer control unit has a pipeline circuit configured to process the input memory access request, to which the cache miss has occurred, in synchronization with a clock, and successively performs the above processing (a), (b), (c), and (d).

### Claim 3 (depends on 2)

The arithmetic processing unit according to claim 2, wherein
each of the plurality of move-in buffers stores, as the information of the move-in request, a valid bit, the index of the memory access request, a way inside the cache memory, in which data of a data response that is returned in response to the move-in request is registered, and the data of the data response.

### Claim 4 (depends on 3)

The arithmetic processing unit according to claim 3, wherein
the move-in buffer control unit includes a vacancy judgement circuit configured to judge whether the vacant move-in buffer, the valid bit of which is invalid, exists in the plurality of move-in buffers, and
the move-in buffer control unit validates the valid bit of the vacant move-in buffer to secure a move-in buffer for the memory access request and registers the index of the memory access request in the secured move-in buffer when the vacant judgement circuit judges the existence of the vacant move-in buffer in the (a).

### Claim 5 (depends on 3)

The arithmetic processing unit according to claim 3, wherein
the move-in buffer control unit includes an index match judgement circuit configured to judge whether the move-in request having the same index has been registered in any of the plurality of move-in buffers, and
the move-in buffer control unit issues the move-in request of the memory access request having secured the move-in buffer when the index match judgement circuit judges that the move-in request having the same index has not been registered in any of the plurality of move-in buffers in the (d).

### Claim 6 (depends on 3)

The arithmetic processing unit according to claim 3, wherein
the move-in buffer control unit includes a replace way selection circuit configured to determine whether all the ways have been used as the replace ways by the move-in request having the same index that has been registered in any of the plurality of move-in buffers, and configured to further determine an unused way when all the ways have not been used,
the move-in buffer control unit issues the move-in request of the memory access request having secured the move-in buffer and registers the unused way in the secured move-in buffer when the replace way selection circuit determines that all the ways have not been used in the (c), and
the move-in buffer control unit releases the secured move-in buffer when the replace way selection circuit determines that all the ways have been used in the (d).

### Claim 7 (depends on 1)

The arithmetic processing unit according to claim 1, wherein
the move-in buffer control unit secures the move-in buffer for the memory access request, regardless of whether the move-in request having the same index as the index of the memory access request has been registered in any of the plurality of move-in buffers, when judging that the vacant move-in buffer exists in the plurality of move-in buffers.

### Claim 8

A method for controlling an arithmetic processing unit including:
a memory access request issuance unit configured to issue a memory access request; and
a cache including
a cache memory including a tag memory and a data memory, states of data and data being registered in a block at an index that matches with matching an index of the memory access request inside the tag memory and the data memory,
a move-in buffer control unit that issues a move-in request to register data of the memory access request in the cache when the memory access request causes a cache miss, and
a plurality of move-in buffers each of which registers information of the move-in request,
the method comprising:
the move-in buffer control unit, in response to an input of the memory access request to which the cache miss occurs,
(a) securing a vacant move-in buffer for the memory access request when judging that the vacant move-in buffer exists in the plurality of move-in buffers,
(b) issuing a move-in request of the memory access request having secured the move-in buffer when judging that a move-in request having a same index as an index of the memory access request has not been registered in any of the plurality of move-in buffers,
(c) issuing the move-in request of the memory access request having secured the move-in buffer when judging that the move-in request having the same index has been registered in any of the plurality of move-in buffers and further judging that all ways serving as replace ways have not been used by the move-in request having the same index that has been registered in any of the plurality of move-in buffers, and
(d) releasing the secured move-in buffer and prevents an issuance of the move-in request when judging that all the ways have been used.
