IP Library Granted Patent US 10,261,905
Granted Patent B2
US 10,261,905 · App. 15/337,287 · Granted Apr 16, 2019

Accessing cache with access delay reduction mechanism

Inventors: Ling Ma (Hangzhou, CN); Zhihong Wang (Hangzhou, CN); Lei Zhang (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F12/0862G06F12/0811G06F2212/283G06F2212/602Y02D10/13
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,261,905
App. No.
15/337,287
Granted
Apr 16, 2019
Kind
B2
Abstract

A method for accessing a cache including reading an access instruction for acquiring data; determining, according to a delay identifier carried by the access instruction, whether the access instruction produces a delay; accessing the cache and performing, according to a location identifier carried by the access instruction, a pre-fetch operation if a delay is produced; and modifying, according to a location where the data required by the access instruction is acquired, the delay identifier and the location identifier carried by the access instruction. The technical solutions solve the problem of a low hit rate upon cache access, reduce the probability of misses, and reduce an access delay caused by a level-by-level access to each level of cache upon target data acquisition, which correspondingly lowers the power consumption generated upon the cache access and improves the CPU performance.

Claims (61)

1. A method for accessing a cache, the method comprising:

reading an access instruction for acquiring data;

determining, according to a delay identifier carried by the access instruction, whether the access instruction produces a delay;

accessing the cache and performing, according to a location identifier carried by the access instruction, a pre-fetch operation in response to determining that the access instruction produces the delay; and

modifying, according to a location of the data acquired by the access instruction, the delay identifier and the location identifier carried by the access instruction.

2. The method for accessing the cache of claim 1 , wherein the delay includes a delay produced upon a level-by-level cache access in case of data missing.

3. The method for accessing the cache of claim 1 , wherein the delay includes a delay produced when the access instruction executes a computation.

4. The method for accessing the cache of claim 1 , wherein the delay identifier and the location identifier carried by the access instruction are identifiers, marked with bits, set in a cache line of the access instruction.

5. The method for accessing a cache of claim 1 , wherein the determining, according to the delay identifier carried by the access instruction, whether the access instruction produces a delay includes:

reading a numerical value of the delay identifier marked with bits to determine whether the access instruction produces a delay.

6. The method for accessing the cache of claim 5 , wherein the reading the numerical value of the delay identifier marked with bits to determine whether the access instruction produces the delay includes:

reading the numerical value of the delay identifier;

determining whether the numerical value of the delay identifier is greater than 1; and

indicating that the access instruction produces the delay, accessing the cache and performing, according to the location identifier, the pre-fetch operation, in response to determining that the numerical value is greater than 1.

7. The method for accessing the cache of claim 1 , wherein the accessing the cache and performing, according to the location identifier carried by the access instruction, the pre-fetch operation in response to determining that the access instruction produces the delay includes:

reading a numerical value of the location identifier marked with bits; and

accessing, upon access to a Level 1 Cache, a cache level or memory corresponding to the numerical value of the location identifier according to the numerical value of the location identifier.

8. The method for accessing the cache of claim 7 , further comprising:

after accessing, upon access to the Level 1 Cache, the cache level or memory corresponding to the numerical value of the location identifier according to the numerical value of the location identifier,

determining whether data required by the access instruction is acquired in the Level 1 Cache and the cache level or memory corresponding to the numerical value of the location identifier; and

sequentially accessing each level of cache according to a hierarchy order of multiple levels of cache and memory, until the data required by the access instruction is acquired, in response to determining that the data is not acquired.

9. The method for accessing the cache of claim 8 , further comprising:

recording the location of the data acquired by the access instruction, after the data required by the access instruction is acquired.

10. The method for accessing the cache of claim 1 , wherein the modifying, according to the location of the data acquired by the access instruction, the delay identifier and the location identifier carried by the access instruction includes:

determining whether the location of the data acquired by the access instruction is a Level 1 Cache; and

decrementing the delay identifier in response to determining that the location of the data acquired by the access instruction is the Level 1 Cache.

11. The method for accessing the cache of claim 10 , further comprising:

after decrementing the delay identifier,

determining whether the location of the data acquired by the access instruction includes the cache level or memory corresponding to the numerical value of the location identifier; and

discarding data required by the access instruction, which is acquired from the cache level or memory corresponding to the numerical value of the location identifier, in response to determining that the location of the data acquired by the access instruction includes the cache level or memory corresponding to the numerical value of the location identifier.

12. The method for accessing the cache of claim 1 , wherein the modifying, according to the location of the data acquired by the access instruction, the delay identifier and the location identifier carried by the access instruction includes:

determining whether the location of the data acquired by the access instruction is a Level 1 Cache; and

in response to determining that the location of the data acquired by the access instruction is not the Level 1 Cache,

incrementing the delay identifier;

determining whether the location of the data acquired by the access instruction is the cache level or memory corresponding to the numerical value of the location identifier; and

setting, according to the location of the data acquired by the access instruction, the location identifier, so that the location identifier represents a cache level or memory, from which data required by the access instruction is acquired, in response to determining that the location of the data acquired by the access instruction is not the cache level or memory corresponding to the numerical value of the location identifier.

13. A device for accessing a cache, the device comprising:

an access instruction reading unit that reads an access instruction for acquiring data;

a delay identifier determining unit that determines, according to a delay identifier carried by the access instruction, whether the access instruction produces a delay;

a cache access pre-fetching unit that accesses the cache and performs, according to a location identifier carried by the access instruction, a pre-fetch operation in response to determining that the access instruction produces the delay; and

an identifier modifying unit that modifies, according to a location of the data acquired by the access instruction, the delay identifier and the location identifier carried by the access instruction.

14. The device for accessing the cache of claim 13 , wherein the delay identifier determining unit further determines, according to the delay identifier that is marked with bits and set in a cache line of the access instruction, whether the access instruction produces a delay.

15. The device for accessing a cache of claim 13 , wherein the delay identifier determining unit further determines, according to the delay identifier, whether the access instruction produces the delay, which is produced either upon a level-by-level cache access in case of data missing, or when the access instruction executes a computation.

16. The device for accessing a cache of claim 13 , wherein the delay identifier determining unit further reads a numerical value of the delay identifier marked with bits to determine whether the access instruction produces the delay.

17. The device for accessing a cache of claim 16 , wherein the delay identifier determining unit includes:

a numerical value reading sub-unit that reads the numerical value of the delay identifier marked with binary bits and determine whether the numerical value of the delay identifier is greater than 1; and

a cache access pre-fetch trigger sub-unit that receives a determining result from the numerical value reading sub-unit, and triggers the cache access pre-fetching unit in response to determining that in the determination result that the numerical value is greater than 1.

18. The device for accessing a cache of claim 13 , wherein the cache access pre-fetching unit includes:

a bit numerical value reading sub-unit that reads a numerical value of the location identifier that is marked with bits; and

a cache access pre-fetch sub-unit that accesses, upon access to a Level 1 Cache, a cache level or memory corresponding to the numerical value of the location identifier according to the numerical value of the location identifier.

19. The device for accessing a cache of claim 13 , wherein the cache access pre-fetching unit includes:

a data acquisition determining sub-unit that, after accessing, upon an access to a Level 1 Cache, according to a numerical value of the location identifier marked with bits, a cache level or memory corresponding to a numerical value of the location identifier, determines whether the data required by the access instruction is acquired in the Level 1 Cache and the cache level or memory corresponding to the numerical value of the location identifier; and

a level-by-level access sub-unit that receives a result from the data acquisition determining sub-unit, and in response to determining that the result is that the data is not acquired, sequentially accesses each level of cache, according to a hierarchy order of multiple levels of cache, and the memory, until the data required by the access instruction is acquired.

20. An electronic apparatus comprising:

a display;

one or more processors; and

one or more computer storage devices that store computer-executable instructions, that, when executed by the one or more one processors, direct the electronic apparatus to perform acts comprising:

reading an access instruction for acquiring data;

determining, according to a delay identifier carried by the access instruction, whether the access instruction produces a delay;

accessing the cache and performing, according to a location identifier carried by the access instruction, a pre-fetch operation in response to determining that the access instruction produces the delay; and

modifying, according to a location of the data acquired by the access instruction, the delay identifier and the location identifier carried by the access instruction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2016
From: MA, LING; WANG, ZHIHONG; ZHANG, LEI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 041209/0846 →
Priority Claims (1)
CN 2015 1 0717175 · Oct 29, 2015 · national
Continuity (1)
Related Publication 20170123989A1 · May 4, 2017