IP Library Granted Patent US 7,685,366
Granted Patent B2
US 7,685,366 · App. 12/111,787 · Granted Mar 23, 2010

System and article of manufacture for storing data

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 7,685,366
App. No.
12/111,787
Granted
Mar 23, 2010
Kind
B2
Abstract

Provided are a system, and article of manufacture, wherein a first storage unit is coupled to a second storage unit. The first storage unit and the second storage unit are detected. A determination is made that the first storage unit is capable of responding to a write operation faster than the second storage unit, and that the second storage unit is capable of responding to a read operation at least as fast as the first storage unit. Data is written to the first storage unit. A transfer of the data is initiated from the first storage unit to the second storage unit. The data is read from the second storage unit, in response to a read request directed at both the first and the second storage units.

Claims (55)

1. A computer readable storage medium including code, wherein a first storage unit is coupled to a second storage unit, wherein the code in response to being executed by a processor is capable of causing operations, the operations comprising:

detecting the first storage unit and the second storage unit, wherein an address bus and a data bus couples the first storage unit to the second storage unit, wherein the first and second storage units comprise a plurality of address testers and a plurality of cache lines, and wherein those cache lines of the plurality of cache lines that are included in the first storage unit perform operations faster in comparison to those cache lines of the plurality of cache lines that are included in the second storage unit;

determining that the first storage unit is capable of responding to a write operation faster than the second storage unit, and that the second storage unit is capable of responding to a read operation at least as fast as the first storage unit;

writing data to the first storage unit;

loading an address corresponding to the data in the address bus;

loading the data in the data bus;

transferring the address and the data via the address bus and the data bus from the first storage unit to the second storage unit by:

(i) moving the address from a first cache line in the first storage unit to a second cache line in the second storage unit;

(ii) moving the data from the first cache line in the first storage unit to the second cache line in the second storage unit; and

(iii) deleting the data in the first cache line, wherein the data is periodically moved from the first storage unit to the second storage unit, wherein the first storage unit is more expensive to manufacture than the second storage unit; and

reading the data from the second storage unit, in response to a read request directed at both the first and the second storage units, wherein the first storage unit and the second storage unit comprise a cache that is capable of coupling a processor to a main memory, wherein the first storage unit in the cache has a direct connection to the main memory, wherein the second storage unit in the cache has no direct connection to the main memory, wherein the first and second storage units comprise one cache level, wherein the operations further comprise moving the data from the cache to the main memory, and reading the data from the main memory in response to a read miss from the cache.

2. The computer readable storage medium of claim 1 , wherein the operations further comprise:

deleting the data in the first storage unit after the data has been transferred to the second storage unit, wherein space released by deleting the data in the first storage unit is used for writing additional data in the first storage unit.

3. The computer readable storage medium of claim 1 , wherein the first storage unit is coupled to the processor via at least one address bus and at least one data bus, and wherein writing data to the first storage unit comprises:

loading an address corresponding to the data in the at least one address bus;

loading the data in the at least one data bus; and

writing the data and the address in at least one cache line, wherein an address tester is capable of transmitting the data and the address to the at least one cache line.

4. The computer readable storage medium of claim 1 , wherein the cache is an L1 cache, and wherein the first and the second storage units are implemented by static random access memory.

5. The computer readable storage medium of claim 1 , wherein the second storage unit is larger and is capable of storing a greater amount of data than the first storage unit.

6. A system, comprising:

a first storage unit;

a second storage unit coupled to the first storage unit;

circuitry in communication with the first and second storage units, wherein the circuitry is capable of being enabled to:

(i) detect the first storage unit and the second storage unit, wherein an address bus and a data bus couples the first storage unit to the second storage unit, wherein the first and second storage units comprise a plurality of address testers and a plurality of cache lines, and wherein those cache lines of the plurality of cache lines that are included in the first storage unit perform operations faster in comparison to those cache lines of the plurality of cache lines that are included in the second storage unit;

(ii) determine that the first storage unit is capable of responding to a write operation faster than the second storage unit, and that the second storage unit is capable of responding to a read operation at least as fast as the first storage unit;

(iii) write data to the first storage unit;

(iv) load an address corresponding to the data in the address bus;

(v) load the data in the data bus;

(vi) transfer the address and the data via the address bus and the data bus from the first storage unit to the second storage unit by:

(a) moving the address from a first cache line in the first storage unit to a second cache line in the second storage unit;

(b) moving the data from the first cache line in the first storage unit to the second cache line in the second storage unit; and

(c) deleting the data in the first cache line, wherein the data is periodically moved from the first storage unit to the second storage unit, wherein the first storage unit is more expensive to manufacture than the second storage unit; and

(vii) read the data from the second storage unit, in response to a read request directed at both the first and the second storage units, wherein the first storage unit and the second storage unit comprise a cache that is capable of coupling a processor to a main memory, wherein the first storage unit in the cache has a direct connection to the main memory, wherein the second storage unit in the cache has no direct connection to the main memory, wherein the first and second storage units comprise one cache level, wherein the operations further comprise moving the data from the cache to the main memory, and reading the data from the main memory in response to a read miss from the cache.

7. The system of claim 6 , wherein the circuitry is further capable of being enabled to:

delete the data in the first storage unit after the data has been transferred to the second storage unit, wherein space released by deleting the data in the first storage unit is used for writing additional data in the first storage unit.

8. The system of claim 6 , further comprising:

at least one address bus coupled to the processor, wherein the processor in implemented in the circuitry; and

at least one data bus coupled to the processor, wherein the first storage unit is coupled to the processor via the at least one address bus and the at least one data bus, and wherein the circuitry is further capable of being configured to write data to the first storage unit by:

(i) loading an address corresponding to the data in the at least one address bus;

(ii) loading the data in the at least one data bus; and

(iii) writing the data and the address in at least one cache line, wherein an address tester is capable of transmitting the data and the address to the at least one cache line.

9. The system of claim 6 , wherein the cache is an L1 cache, and wherein the first and the second storage units are implemented by static random access memory.

10. The system of claim 6 , wherein the second storage unit is larger and is capable of storing a greater amount of data than the first storage unit.

11. A system, comprising:

a first storage unit;

a second storage unit coupled to the first storage unit;

means for detecting the first storage unit and the second storage unit, wherein an address bus and a data bus couples the first storage unit to the second storage unit, wherein the first and second storage units comprise a plurality of address testers and a plurality of cache lines, and wherein those cache lines of the plurality of cache lines that are included in the first storage unit perform operations faster in comparison to those cache lines of the plurality of cache lines that are included in the second storage unit;

means for determining that the first storage unit is capable of responding to a write operation faster than the second storage unit, and that the second storage unit is capable of responding to a read operation at least as fast as the first storage unit; means for writing data to the first storage unit;

means for loading an address corresponding to the data in the address bus;

means for loading the data in the data bus;

means for transferring the address and the data via the address bus and the data bus from the first storage unit to the second storage unit by:

(i) moving the address from a first cache line in the first storage unit to a second cache line in the second storage unit;

(ii) moving the data from the first cache line in the first storage unit to the second cache line in the second storage unit; and

(iii) deleting the data in the first cache line, wherein the data is periodically moved from the first storage unit to the second storage unit, wherein the first storage unit is more expensive to manufacture than the second storage unit; and

means for reading the data from the second storage unit, in response to a read request directed at both the first and the second storage units, wherein the first storage unit and the second storage unit comprise a cache that is capable of coupling a processor to a main memory, wherein the first storage unit in the cache has a direct connection to the main memory, wherein the second storage unit in the cache has no direct connection to the main memory, wherein the first and second storage units comprise one cache level, wherein the operations further comprise moving the data from the cache to the main memory, and reading the data from the main memory in response to a read miss from the cache.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 028015/0181 →