IP Library Granted Patent US 7,568,082
Granted Patent B2
US 7,568,082 · App. 10/541,266 · Granted Jul 28, 2009

Memory controller and method for writing to a memory

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,568,082
App. No.
10/541,266
Granted
Jul 28, 2009
Kind
B2
Abstract

The invention provides a controller for a memory having at least one memory cell, that involves a higher cost for writing than for reading. The memory cell is allocated to a first address information and adapted to store memory data. The memory controller of the invention comprises a register. A write controller connected with said register and said memory is adapted to receive a write request comprising said first address information and first write data allocated thereto, ascertain whether said first address information is stored in said register. If yes, the write controller compares said first write data with second write data of an earlier write request in said register allocated to said first address information. If no, it compares said first write data with said memory data allocated to the first address information. The write controller further forwards said first address information and said first write data to said register, respectively, and initiates a write operation of said first or second write data, respectively, from said register to said memory, if the first or second write data, respectively, is different from said memory data. With the memory controller of the invention write power can be saved while providing continuous access to the memory.

Claims (42)

1. A controller for a memory having at least one memory cell, that involves a higher cost for writing than for reading, said memory cell being allocated a first address information and adapted to store memory data, said memory controller comprising:

a register connected with said memory, and comprising register space for write data and for address information allocated thereto;

a write controller connected with said register and said memory, and adapted to:

receive a write request comprising said first address information and first write data allocated thereto;

store the first write data and the first address information to said register;

ascertain whether said first address information is equal to second address information for a pending write request stored in said register, wherein said pending write request comprises said second address information and corresponding second write data;

if yes, determine if said first write data stored in said register is different from said second write data of said pending write request stored in said register and initiate a write operation of said first write data to forward said first write data from said register to said memory in response to a determination that said first write data is different from said second write data;

if no, compare said first write data with said memory data allocated to the first address information and initiate a write operation of said first write data to forward said first write data from said register to said memory in response to a determination that the first write data is different from said memory data.

2. The memory controller of claim 1 , wherein said register is a FIFO register.

3. The memory controller of claim 1 , further comprising a read controller connected with said register and said memory, and adapted to:

receive a read request comprising said first address information;

ascertain whether said first address information is stored in said register; and

forward said read request to said register or said memory, depending on whether or not, respectively, said first address information is stored in said register.

4. The memory controller of claim 3 , wherein said write controller is adapted to send to said read controller a read request upon reception of said write request, said read request comprising said first address information contained in said write request.

5. The memory controller of claim 1 , wherein the write controller is adapted to allocate a flag indicative of the result of the comparison to said first write data and to transfer the flag to said register along with said first write data and said first address information, and to initiate a write operation to the memory only for first write data for which the flag is indicative of a difference between said first write data and said memory data or said second write data, respectively.

6. The memory controller of claim 5 , wherein the write controller is adapted to ascertain whether said register is full or empty.

7. The memory controller of claim 6 , wherein the write controller is adapted to initiate at least one write operation from the register to the memory after assessing that the register is full.

8. The memory controller claim 1 , wherein the write controller is adapted to initiate a write operation from the register to the memory after assessing that the register is not empty and in case there is no pending write request.

9. The memory controller of claim 1 , wherein the write controller is adapted to perform the comparison of said first write data with said second write data or said memory for at least one bit at a time.

10. The memory controller of claim 9 , wherein the write controller is adapted to perform the comparison byte by byte or bit by bit.

11. The memory controller of claim 9 , wherein the write controller is adapted to perform the comparison bit by bit.

12. The memory controller of claim 9 , comprising an XOR-Gate with a first input for said first write data and a second input for said memory data or said second write data, respectively, and an output port connected with the write controller.

13. The memory controller of claim 9 , wherein the write controller is adapted to forward said first address information and said first write data to said register after receiving at least one logical “TRUE”-signal from the output of the XOR-Gate.

14. The memory controller of claim 1 , wherein said memory comprises at least one non-volatile memory cell.

15. The memory controller of claim 1 , wherein said memory comprises memory cells from the group of MRAM and FERAM.

16. A method for writing to a non-volatile memory using a writing queue, said memory comprising at least one memory cell for storing memory data, said memory cell being uniquely allocated at least a first memory address and requiring a higher cost for writing than for reading, comprising the steps of:

receiving a write request comprising the first address information and first write data allocated thereto;

storing the first write data and the first write address to said register;

ascertaining whether said first address information is equal to second address information for a pending write request stored in said writing queue, wherein said pending write request comprises said second address information and corresponding second write data;

if yes, determining if said first write data stored in said register is different from said second write data of said pending write request stored in said register and writing said first write data from said writing queue to said memory cell corresponding to said first address information in response to a determination that said first write data is different from said second write data;

if no, comparing said first write data with said memory data allocated to the first address information and writing said first write data from said writing queue to said memory cell corresponding to said first address information in response to a determination that the first write data is different from said memory data.

17. The method of claim 16 , wherein said first write data of different write requests is written from said writing queue to said memory according to a First-in-First-Out rule.

18. The method of claim 16 , further comprising the steps

receiving a read request comprising said first address information ascertaining whether said first address information is stored in said writing queue;

forwarding said read request to said writing queue or said memory, depending on whether or not, respectively, said first address information is stored in said writing queue;

receiving from said writing queue or said memory, respectively, said writing queue data or said memory data allocated to said first address information.

19. The method of claim 16 , comprising a step of performing a read request upon reception of said write request, said read request comprising said first address information contained in said write request.

20. The method of claim 16 , comprising a step of ascertaining whether said writing queue is full and/or whether said writing queue is empty.

21. The method of claim 20 , comprising a step of writing from the writing queue to the memory after assessing that the register is full.

22. The method of claim 20 , comprising a step of writing from the writing queue to the memory after assessing that the writing queue is not empty and in case there is no pending write request.

23. The method of claim 16 , comprising a step of comparing at least one bit at a time of said first write data and of said second write data or said memory data.

24. The method of claim 23 , wherein said comparing step comprises a step of performing an XOR-operation between said first write data and said memory data or said second write data, respectively.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2024
From: CROCUS TECHNOLOGY SA
To: ALLEGRO MICROSYSTEMS, LLC
Reel/Frame 066350/0669 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2023
From: CROCUS TECHNOLOGY INC.
To: CROCUS TECHNOLOGY SA
Reel/Frame 066157/0629 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2023
From: NXP B.V.
To: CROCUS TECHNOLOGY INC.
Reel/Frame 065363/0587 →
RELEASE OF SECURITY INTEREST Recorded Oct 25, 2023
From: NXP B.V.
To: CROCUS TECHNOLOGY INC.
Reel/Frame 065334/0488 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE SPELLING OF THE CONVEYING PARTY NAME AND ADDRESS ON THE DOCUMENT. PREVIOUSLY RECORDED AT REEL: 02722 FRAME: 0049. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 25, 2023
From: CROCUS TECHNOLOGY INC.
To: NXP B.V.
Reel/Frame 065345/0304 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2023
From: LLC "SBERBANK INVESTMENTS"
To: CROCUS TECHNOLOGY, INC.
Reel/Frame 064783/0420 →
SECURITY INTEREST Recorded Apr 13, 2018
From: CROCUS TECHNOLOGY, INC.
To: LLC "SBERBANK INVESTMENTS"
Reel/Frame 045938/0810 →
RELEASE OF SECURITY INTEREST Recorded Apr 9, 2018
From: KREOS CAPITAL IV (LUXEMBOURG) SARL
To: CROCUS TECHNOLOGY, INC.
Reel/Frame 045871/0622 →
RELEASE OF SECURITY INTEREST Recorded Apr 9, 2018
From: KREOS CAPITAL IV (LUXEMBOURG) SARL
To: CROCUS TECHNOLOGY, INC.
Reel/Frame 045865/0555 →
SECURITY INTEREST Recorded Jun 29, 2015
From: CROCUS TECHNOLOGY, INC.
To: KREOS CAPITAL IV (LUXEMBOURG) SARL
Reel/Frame 036031/0327 →
SECURITY INTEREST Recorded Oct 8, 2014
From: CROCUS TECHNOLOGY, INC.
To: KREOS CAPITAL IV (LUXEMBOURG) SARL
Reel/Frame 033917/0259 →
LIEN Recorded Nov 14, 2011
From: CROCUS TECHNOLOGY, INC.
To: NXP B.V.
Reel/Frame 027222/0049 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2008
From: KONINKLIJKE PHILIPS ELECTRONICS N.V.
To: NXP B.V.
Reel/Frame 021085/0959 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2005
From: HOOGERBRUGGE, JAN
To: KONINKLIJKE PHILIPS ELECTRONICS N.V.
Reel/Frame 017499/0106 →