Direct memory swapping between NAND flash and SRAM with error correction coding
First Claim
1. A memory system for a wireless communication device comprising:
- a static random access memory (SRAM) storage unit operative to provide storage of data;
a NAND Flash storage unit operative to provide additional storage of data;
an interface unit implemented within an application specific integrated circuit (ASIC) and operative to provide control signals for the SRAM and NAND Flash storage units; and
a data bus coupled to the SRAM and NAND Flash storage units and the interface unit, wherein the SRAM and NAND Flash storage units are implemented external to the ASIC, and wherein each storage unit is operable to concurrently store data from the other storage unit via the data bus when the other unit is accessed by the interface unit;
the interface unit being operable to receive a page address for the NAND Flash storage unit and a start address for the SRAM storage unit for a data transfer between the SRAM and NAND Flash storage units, and operative to provide the control signals for the SRAM and NAND Flash storage units to effectuate the data transfer in response to receiving a start command.
1 Assignment
0 Petitions
Accused Products
Abstract
Memory architectures and techniques that support direct memory swapping between NAND Flash and SRAM with error correction coding (ECC). In a specific design, a memory architecture includes a first storage unit (e.g., an SRAM) operative to provide storage of data, a second storage unit (e.g., a NAND Flash) operative to provide (mass) storage of data, an EMI unit implemented within an ASIC and operative to provide control signals for the storage units, and a data bus coupled to both storage units and the EMI unit. The two storage units are implemented external to the ASIC, and each storage unit is operable to store data from the other storage unit via the data bus when the other storage unit is being accessed by the EMI unit. The EMI unit may include an ECC unit operative to perform block coding of data transferred to/from the second storage unit.
96 Citations
18 Claims
-
1. A memory system for a wireless communication device comprising:
-
a static random access memory (SRAM) storage unit operative to provide storage of data;
a NAND Flash storage unit operative to provide additional storage of data;
an interface unit implemented within an application specific integrated circuit (ASIC) and operative to provide control signals for the SRAM and NAND Flash storage units; and
a data bus coupled to the SRAM and NAND Flash storage units and the interface unit, wherein the SRAM and NAND Flash storage units are implemented external to the ASIC, and wherein each storage unit is operable to concurrently store data from the other storage unit via the data bus when the other unit is accessed by the interface unit;
the interface unit being operable to receive a page address for the NAND Flash storage unit and a start address for the SRAM storage unit for a data transfer between the SRAM and NAND Flash storage units, and operative to provide the control signals for the SRAM and NAND Flash storage units to effectuate the data transfer in response to receiving a start command. - View Dependent Claims (3, 4, 5, 7, 8)
-
-
2. A memory system for a wireless communication device, comprising:
-
a static random access memory (SRAM) storage unit operative to provide storage of data;
a NAND Flash storage unit operative to provide additional storage of data;
an interface unit implemented within an application specific integrated circuit (ASIC) and operative to provide control signals for the SRAM NAND Flash storage units; and
a data bus coupled to the SRAM and NAND Flash storage units and the interface unit, wherein the SRAM and NANT) flash storage units are implemented external to the ASIC, and wherein each storage unit is operable to concurrently store data from the other storage unit via the data bus when the other storage unit is accessed by the interface unit;
wherein n write enable control for the SRAM is coupled to a read enable control for the NAND Flash, and wherein the write enable control for the NAND Flash is coupled to the read enable control for the SRAM. - View Dependent Claims (6)
-
-
9. A method for transferring data between to storage units in a wireless communication device comprising:
-
receiving a start address for an SRAM storage unit;
receiving a page address for a NAND Flash storage unit;
providing control signals for the SRAM and NAND Flash storage units in response to receiving a start command;
retrieving data from a source storage unit via a data bus, wherein the source storage unit is either the SRAM or NAND Flash storage unit; and
writing the retrieved data to a destination storage unit via the data bus concurrently with the reading of the data from the source storage unit, wherein the destination storage unit is the other storage unit that is not the source storage unit. - View Dependent Claims (10, 11, 12, 13)
generating an error correction code (ECC) value for each page of data transferred to or from the NAND Flash storage unit.
-
-
11. The method of claim 10, wherein a page of data is transferred from the NAND Flash storage unit to the SRAM storage unit, the method further comprising:
-
retrieving an ECC value stored in the NAND Flash storage unit for the data page retrieved from the NAND Flash; and
comparing the retrieved ECC value to the generated ECC value for the retrieved data page to determine whether or not there are any errors in the data page.
-
-
12. The method of claim 11, further comprising:
-
if there are errors in the retrieved data page, identifying error bytes in the retrieved data page, correcting the error bytes based on the retrieved ECC value, and writing the corrected bytes to the SRAM storage unit.
-
-
13. A The method of claim 10, wherein a page of data is transferred from the SRAM storage unit to the NAND Flash storage unit, method further comprising:
writing the ECC value generated for the page to the NAND Flash storage unit.
-
14. A memory communicatively coupled to a digital signal processing device (DSPD) capable of interpreting digital information to:
-
receive a start address for an SRAM storage unit;
receive a page address for a NAND Flash storage unit;
receive a start command for a page transfer operation;
provide control signals for the SRAM and NAND Flash storage units in response to the start command;
retrieve data from a source storage unit via a data bus, wherein the source storage unit is either the SRAM or NAND Flash storage unit; and
write the retrieved data to a destination storage unit the data bus concurrently with the reading of the data from the source storage unit, wherein the destination storage unit is the other storage unit that is not the so storage unit. - View Dependent Claims (15, 16, 17, 18)
generate an error correction code (ECC) value for each page of data transferred to or from the NAND Flash storage unit.
-
-
16. The memory of claim 15, wherein a page of data is transferred from the NAND Flash storage unit to the SRAM storage unit, and wherein the DSPD is further capable of interpreting digital information to:
-
retrieve an ECC value stored in the NAND Flash storage for the data page retrieved from the NAND Flash; and
compare the retrieved ECC value to the generated ECC value for the retrieved data page to determine whether not there any error page.
-
-
17. The memory of claim 15, wherein the DSPD further capable of interpreting digital information to:
-
if there are errors in the retrieved data page, identify error bytes in the retrieved data page, correct the error bytes based an the retrieved ECC value, and write the corrected bytes to the SRAM storage unit.
-
-
18. The memory of claim 15, wherein a page of data is transferred from the SRAM storage unit to the NAND Flash storage unit, and wherein the DSPD is further capable of interpreting digital information to:
write the ECC value generated for the data page to the NAND Flash storage unit.
Specification