US 9,811,469 B2
Sequential access of cache data
Sriram Vajapeyam, Bangalore (IN)
Assigned to EMPIRE TECHNOLOGY DEVELOPMENT LLC, Wilmington, DE (US)
Appl. No. 14/407,761
Filed by EMPIRE TECHNOLOGY DEVELOPMENT LLC, Wilmington, DE (US)
PCT Filed Jan. 29, 2014, PCT No. PCT/US2014/013599
§ 371(c)(1), (2) Date Dec. 12, 2014,
PCT Pub. No. WO2015/094389, PCT Pub. Date Jun. 25, 2015.
Claims priority of application No. 5851/CHE/2013 (IN), filed on Dec. 16, 2013.
Prior Publication US 2016/0283386 A1, Sep. 29, 2016
Int. Cl. G06F 12/08 (2016.01); G06F 12/0873 (2016.01); G06F 12/0877 (2016.01); G06F 12/0875 (2016.01); G06F 12/0811 (2016.01); G06F 12/0888 (2016.01)
CPC G06F 12/0873 (2013.01) [G06F 12/0811 (2013.01); G06F 12/0875 (2013.01); G06F 12/0877 (2013.01); G06F 12/0888 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/224 (2013.01); G06F 2212/283 (2013.01); G06F 2212/455 (2013.01); G06F 2212/604 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method to access data in a cache, the method comprising:
processing a first request for data at a first memory address, wherein the first memory
address relates to first data in a memory, and wherein the first memory address includes a first tag and a first index number;
retrieving the first data, which corresponds to the first tag and the first index number, from the memory;
storing the first data in a first cache line of the cache, wherein the first cache line is different from a cache line indicated by the first index number;
storing the first tag in a first line of a tag sector of the cache;
processing a second request for data at a second memory address, wherein the second memory address relates to second data in the memory, and wherein the second memory address includes a second tag and a second index number;
in response to processing the second request for data at the second memory address:
retrieving the second data, which corresponds to the second tag and the second index number, from the memory; and
selecting based on the storage of the first data in the first cache line, a second cache line of the cache to store the second data, so that the second cache line is sequential to the first cache line;
storing the second data in the second cache line of the cache, wherein the second cache line is different from a cache line indicated by the second index number;
storing the second tag in a second line of the tag sector of the cache;
processing a third request to access the first data, wherein the third request includes a third tag and a third index number;
comparing a value of the third tag with a value of the first tag stored in the first line of the tag sector of the cache;
in response to a determination that the value of the third tag and the value of the first tag are the same, reading the first data from the first cache line;
processing a fourth request to access the second data, wherein the fourth request includes a fourth tag and a fourth index number;
searching the second cache line for the second data before searching other cache lines of the cache;
comparing a value of the fourth tag with a value of the second tag stored in the second line of the tag sector of the cache;
in response to a determination that the value of the fourth tag and the value of the second tag are the same, reading the second data from the second cache line;
identifying an activation of an index access mode of the cache, wherein identifying the activation of the index access mode of the cache is based on an identification that an index mode value has changed;
after identifying the activation of the index access mode, processing a fifth request to access third data, wherein the fifth request to access the third data includes a fifth index number; and
based on the index access mode being activated, searching an index sector of the cache for a value that corresponds to the fifth index number.