IP Library Granted Patent US 9,710,403
Granted Patent B2
US 9,710,403 · App. 13/997,209 · Granted Jul 18, 2017

Power saving method and apparatus for first in first out (FIFO) memories

Inventor: Sutirtha Deb (Bangalore, IN)
Assignee: INTEL CORPORATION
G06F12/145G06F1/3212G06F1/3275G06F2212/1028Y02B60/1225Y02B60/1228Y02B60/1292
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 9,710,403
App. No.
13/997,209
Granted
Jul 18, 2017
Kind
B2
Abstract

In various embodiments, apparatuses and methods are disclosed to keep a memory clock gated when the data for a current memory address is the same as the data in the immediate previous memory address. For a write function, new data will only be written into the current memory address if it is different from the data in the immediate previous memory address. Similarly, for a read function, the data will only be read out of the current memory address if it is different from the data in the immediate previous memory address. Each row in the memory may have one associated status bit outside the memory. Data may only be written to or read from the current memory address when the status bit is set. Clock gating the memory ports may reduce the overall power consumption of the memory.

Claims (112)

1. An apparatus, comprising:

a processing component; and

a memory manager component operative on the processing component to manage a memory with a set of memory address locations, the memory manager component to:

maintain a status register outside of the memory, the status register to include an associated status bit for each of the set of memory address locations, each status bit to indicate whether data in the associated memory address location is the same as data in an immediately contiguous previous memory address location of the memory;

prevent writing data to a memory address location of the memory when the memory address location is contiguous with respect to an immediately previous memory address location and the data to be written is the same as data stored in the immediately contiguous previous memory address location of the memory by setting the status bit associated with the memory address location;

and prevent reading data from the memory address location of the memory when the data stored in the memory address location is the same as the data stored in the immediately contiguous previous memory address location of the memory as determined from the status bit associated with the memory address location.

2. The apparatus of claim 1 , the memory management component operative to:

determine when the data to be written to the memory address location is the same as the data in the immediately contiguous previous memory address location; and

when the data is the same: clear the status bit associated with the memory address location; and disable a write port for the memory.

3. The apparatus of claim 2 , the memory management component operative to:

disable the write port for the memory by clock gating the write port.

4. The apparatus of claim 2 , the memory management component operative to:

disable the write port for the memory by forcing a write enable signal to the memory low.

5. The apparatus of claim 1 , the memory management component operative to:

receive a read request associated with a memory address location;

check the status bit associated with the memory address location; and

while the status bit is set:

read the data from the memory address location; and

hold the data in a register outside the memory; and

while the status bit is cleared:

return the data held in the register; and

disable a read port for the memory.

6. The apparatus of claim 5 , the memory management component operative to disable the read port for the memory by clock gating the read port.

7. The apparatus of claim 5 , the memory management component operative to disable the read port for the memory by forcing a read enable signal to the memory low.

8. The apparatus of claim 1 , the memory management component operative to:

prevent writing data to a memory address location when the data is the same as the data in the immediately contiguous previous memory address location only while a battery is powering the processing component; and

prevent reading data from a memory address location when the data is the same as the data in the immediately contiguous previous memory address location only while a battery is powering the processing component.

9. The apparatus of claim 8 , the memory management component operative to:

prevent writing data to a memory address location when the data is the same as the data in the immediately contiguous previous memory address location when the battery is below a threshold percentage of remaining battery power; and

prevent reading data from a memory address location when the data is the same as the data in the immediately contiguous previous memory address location when the battery is below a threshold percentage of remaining battery power.

10. The apparatus of claim 1 , wherein the memory is a first in, first out (FIFO) memory.

11. A method, comprising:

maintaining a status register outside of a memory with a set of memory address locations, the status register including an associated status bit for each of the set of memory address locations, each status bit to indicate whether data stored in the associated memory address location is the same as data stored in an immediately contiguous previous memory address location of the memory;

receiving data resulting from execution of a central processing unit (CPU) instruction, the data to be written to a memory address location of the memory;

preventing writing the data resulting from execution of the CPU instruction when the memory address location is contiguous with respect to an immediately previous memory address location and the data to be written is the same as data stored in the immediately contiguous previous memory address location of the memory by setting the status bit associated with the memory address location;

receiving a read request for the memory address location;

preventing reading data from the memory address location when the data stored in the memory address location is the same as the data stored in the immediately contiguous previous memory address location as determined from the status bit associated with the memory address location; and

using data stored in a register outside the memory that is the same as the data stored in the immediately contiguous previous memory address location to satisfy the read request when the data stored in the memory address location is the same as the data stored in the immediately contiguous previous memory address location.

12. The method of claim 11 comprising:

determining when the data to be written to the memory address location is the same as the data in the immediately contiguous previous memory address location; and

when the data is different:

setting the status bit associated with the memory address location; and

writing the data to the memory address location; and

when the data is the same:

clearing the status bit associated with the memory address location; and

disabling a write port for the memory.

13. The method of claim 12 , comprising disabling the write port for the memory by clock gating the write port.

14. The apparatus of claim 12 comprising disabling the write port for the memory by forcing a write enable signal to the memory low.

15. The method of claim 11 comprising:

checking the status bit associated with the memory address location; and

while the status bit is set:

reading the data from the memory address location; and

holding the data in the register; and

while the status bit is cleared:

returning the data held in the register; and

disabling a read port for the memory.

16. The method of claim 15 , comprising disabling the read port for the memory by clock gating the read port.

17. The apparatus of claim 15 comprising disabling the read port for the memory by forcing a read enable signal to the memory low.

18. The method of claim 13 comprising:

preventing writing data to memory only while the memory is operating on battery power; and preventing reading data from memory only while the memory is operating on battery power.

19. An article of manufacture comprising a non-transitory computer-readable storage medium containing instructions that when executed enable a system to:

maintain a status register outside of a memory with a set of memory address locations, the status register to include an associated status bit for each of the set of memory address locations, each status bit to indicate whether data stored in the associated memory address location is the same as data stored in an immediately contiguous previous memory address location of the memory;

prevent writing data to a memory address location of a memory when the data to be written is the same as data stored in an immediately contiguous previous memory address location of the memory by setting the status bit associated with the memory address location; and

prevent reading data from the memory address location of the memory when the data stored in the memory address location is the same as the data stored in the immediately contiguous previous memory address location of the memory as determined from the status bit associated with the memory address location.

20. The article of claim 19 , further comprising instructions that when executed enable the system to:

determine when the data to be written to the memory address location is the same as the data in the immediately contiguous previous memory address location; and

when the data is the same:

clear the status bit associated with the memory address location; and

disable a write port for the memory.

21. The article of claim 20 , further comprising instructions that when executed enable the system to disable the write port for the memory by clock gating the write port.

22. The article of claim 20 , further comprising instructions that when executed enable the system to disable the write port for the memory by forcing a write enable signal to the memory low.

23. The article of claim 19 , further comprising instructions that when executed enable the system to:

receive a read request associated with a memory address location;

check the status bit associated with the memory address location; and

while the status bit is set:

read the data from the memory address location; and

hold the data in a register outside the memory; and

while the status bit is cleared:

return the data held in the register; and

disable a read port for the memory.

24. The article of claim 23 , further comprising instructions that when executed enable the system to disable the read port for the memory by clock gating the read port.

25. The article of claim 23 , further comprising instructions that when executed enable the system to disable the read port for the memory by forcing a read enable signal to the memory low.

26. The article of claim 19 , further comprising instructions that when executed enable the system to:

prevent writing data to a memory address location when the data is the same as the data in the immediately contiguous previous memory address location only while the system is operating on battery power; and

prevent reading data from a memory address location when the data is the same as the data in the immediately contiguous previous memory address location only while the system is operating on battery power.

27. A system, comprising:

a processing component;

a first-in, first-out (FIFO) memory with a set of memory address locations; and

a memory manager component operative on the processing component to:

maintain a status register outside of the FIFO memory, the status register to include an associated status bit for each of the set of memory addresses, each status bit to indicate whether data in the associated memory address location is the same as data in an immediately contiguous previous memory address location of the memory;

prevent writing data to a memory address of the FIFO memory when the write address location is contiguous with respect to an immediately previous address location and the data is the same as data in the immediately contiguous previous memory address location of the FIFO memory by setting the status bit associated with the memory address location; and

prevent reading data from the memory address location of the FIFO memory when the data is the same as the data in the immediately contiguous previous memory address location of the FIFO memory as determined from the status bit associated with the memory address location.

28. The system of claim 27 , the memory management component operative to:

determine when the data to be written to the memory address location is the same as the data in the immediately contiguous previous memory address location; and

when the data is the same:

clear the status bit associated with the memory address location; and

disable a write port for the FIFO memory.

29. The system of claim 28 , the memory management component operative to:

disable the write port for the FIFO memory component by clock gating the write port.

30. The system of claim 28 , the memory management component operative to:

disable the write port for the FIFO memory by forcing a write enable signal to the memory low.

31. The system of claim 27 , the memory management component operative to:

receive a read request associated with a memory address of the FIFO memory;

check the status bit associated with the memory address location; and

while the status bit is set:

read the data from the memory address location; and

hold the data in a register outside the FIFO memory; and

while the status bit is cleared:

return the data held in the register; and

disable a read port for the FIFO memory.

32. The system of claim 31 , the memory management component operative to disable the read port for the FIFO memory by clock gating the read port.

33. The system of claim 31 , the memory management component operative to disable the read port for the FIFO memory by forcing a read enable signal to the memory low.

Continuity (1)
Related Publication 20140351542A1 · Nov 27, 2014