Systems and methods for providing nonvolatile memory management in wireless phones
First Claim
1. A wireless phone memory controller, comprising:
- a nonvolatile memory controller circuit configured to be coupled to nonvolatile memory;
a volatile memory controller circuit configured to be coupled to volatile memory;
a boot controller circuit configured to be coupled to the nonvolatile memory controller circuit, the boot controller circuit configured to cause user-defined boot program code to be read from nonvolatile memory into memory controller memory;
a first processor interface, including a first reset signal, configured to be coupled to a first wireless phone processor, wherein, the memory controller is configured to release the first wireless phone processor from a reset state after the user-defined boot code is read into the memory controller memory; and
a second processor interface, including a second reset signal, configured to be coupled to a second wireless phone processor, wherein the second reset signal is configured to be controlled at least in part by the first processor.
6 Assignments
0 Petitions
Accused Products
Abstract
The present invention is related to memory management, and in particular, to methods and systems for accessing and managing nonvolatile, such as in a wireless phone. A wireless phone memory controller is disclosed that, comprises a first interface circuit configured to be coupled to wireless phone nonvolatile memory, a second interface circuit configured to be coupled to wireless phone volatile memory, a first processor interface configured to be coupled to a first wireless phone processor, wherein the first processor interface is configured to provide the first processor with access to the wireless phone volatile memory, a second processor interface configured to be coupled to a second wireless phone processor, and a controller circuit configured to copy at least a portion of wireless phone nonvolatile memory data to the wireless phone volatile memory.
284 Citations
63 Claims
-
1. A wireless phone memory controller, comprising:
-
a nonvolatile memory controller circuit configured to be coupled to nonvolatile memory;
a volatile memory controller circuit configured to be coupled to volatile memory;
a boot controller circuit configured to be coupled to the nonvolatile memory controller circuit, the boot controller circuit configured to cause user-defined boot program code to be read from nonvolatile memory into memory controller memory;
a first processor interface, including a first reset signal, configured to be coupled to a first wireless phone processor, wherein, the memory controller is configured to release the first wireless phone processor from a reset state after the user-defined boot code is read into the memory controller memory; and
a second processor interface, including a second reset signal, configured to be coupled to a second wireless phone processor, wherein the second reset signal is configured to be controlled at least in part by the first processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of transferring data from wireless phone nonvolatile memory, the method comprising:
-
after a power-on reset, generating a first address using a boot circuit;
accessing data from the wireless phone'"'"'s nonvolatile Flash memory, including at least data stored at the first address;
storing the accessed data in a page buffer;
determining whether the accessed data is boot code or Flash memory management code;
if the accessed data is boot code, copying the data from the page buffer to a boot random access memory; and
if the accessed data is Flash memory management code, copying the data from the page buffer to Flash memory management random access memory. - View Dependent Claims (16, 17, 18)
-
-
19. A wireless phone memory controller, comprising:
-
a first interface circuit configured to be coupled to wireless phone nonvolatile memory;
a second interface circuit configured to be coupled to wireless phone volatile memory;
a first processor interface configured to be coupled to a first wireless phone processor, wherein the first processor interface is configured to provide the first processor with access to the wireless phone volatile memory;
a second processor interface configured to be coupled to a second wireless phone processor; and
a controller circuit configured to copy at least a portion of wireless phone nonvolatile memory data to the wireless phone volatile memory without intervention by the first processor or the second processor. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of operating a wireless phone memory circuit, the method comprising:
-
deasserting a reset signal;
generating a first address corresponding to boot data stored in wireless phone nonvolatile memory;
reading boot program code from the wireless phone nonvolatile memory beginning at the first address;
providing error detection with respect to the boot program code;
correcting at least a first error if a first error is detected;
loading the boot code, including corrected boot code if such is present, into volatile random access memory;
loading Flash memory management program code from the wireless phone nonvolatile memory into Flash memory management volatile memory;
enabling the Flash memory management program code to be executed by a Flash memory management circuit;
releasing a first wireless phone processor, coupled to the wireless phone memory circuit, from a reset state;
providing the first wireless phone processor with access to the boot program code; and
providing a second wireless phone processor with access to code stored in the volatile memory. - View Dependent Claims (29, 30, 31)
-
-
32. A method of performing error correction on data stored or being stored in a wireless phone'"'"'s nonvolatile memory, the method comprising:
-
receiving a first page of data configured to be stored in a wireless phone nonvolatile memory, the first page including user data stored in a user portion and spare data stored in a spare portion;
generating page parity data for the first page of data;
storing the page parity data in the wireless phone nonvolatile memory;
storing spare data in the wireless phone nonvolatile memory, wherein the spare data includes bookkeeping data for nonvolatile memory management and/or system flags;
generating and storing parity data for the spare data in the wireless phone nonvolatile memory;
reading the spare data from the wireless phone nonvolatile memory;
reading the parity data for the spare data from the wireless phone nonvolatile memory; and
performing error detection and error correction, if needed, on the spare data from the wireless phone nonvolatile memory using the spare data parity information. - View Dependent Claims (33, 34)
-
-
35. A wireless phone memory system, comprising:
-
a first port coupled to wireless phone nonvolatile memory;
a second port circuit coupled to wireless phone volatile memory;
a first processor interface coupled to a first wireless phone processor, wherein the first processor interface is configured to provide the first processor with access to the wireless phone volatile memory; and
a second processor interface coupled to a second wireless phone processor, wherein one of the first and second processors is configured to provide modem control. - View Dependent Claims (36, 37, 38, 39, 40)
-
-
41. A wireless phone memory system, comprising:
-
a first port coupled to wireless phone nonvolatile memory;
a second port circuit coupled to wireless phone volatile memory;
a first device interface coupled to a first wireless phone processor, wherein the first processor interface is configured to provide the first processor with access to the wireless phone volatile memory; and
a second device interface selectively configurable to be coupled to a second wireless phone processor or a wireless phone display. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
-
48. A wireless phone memory controller device, comprising:
-
a first port configured to be coupled to wireless phone nonvolatile memory;
a second port circuit configured to be coupled to a modem processor of a wireless phone;
a volatile boot memory;
a boot controller configured to copy boot code from the wireless phone nonvolatile memory to the volatile boot memory;
a direct memory access controller configured to copy data from the nonvolatile memory to the volatile boot memory in response to a command from the modem processor; and
providing a path via which the modem processor can read boot memory data. - View Dependent Claims (49, 50, 51, 52)
-
-
53. A method of operating a wireless phone memory system so as to protect data stored in writable nonvolatile memory from being overwritten, the method comprising:
-
receiving at a memory control circuit a write command from a first wireless phone processor, wherein the write command indicates that a write operation is to be performed to wireless phone nonvolatile memory;
receiving at the memory control circuit a first logical address from the first wireless phone processor, corresponding to the first logical address to which data is to be written to;
translating at a wireless phone memory control circuit the first logical address to a first physical address, wherein the first physical address is selected at least in part to avoid at least a first protected area of the wireless phone nonvolatile memory, so as to prevent the first protected area from being overwritten; and
writing data as instructed by the first wireless phone processor to the first physical address at least partly in response to the write command. - View Dependent Claims (54, 55, 56)
-
-
57. A wireless phone memory controller, comprising:
-
a first interface circuit configured to be coupled to wireless phone nonvolatile memory;
a first processor interface configured to be coupled to a first wireless phone processor; and
a controller circuit coupled to the first interface circuit and the first processor interface, the controller circuit configured to receive logical addresses for the wireless phone nonvolatile memory via the first processor interface, and to translate the logical addresses into physical addresses so that the first wireless phone processor does not need to know the physical addresses for at least a subset of code or data stored in the wireless phone nonvolatile memory in order to access the subset of code or data, wherein the physical addresses are used to access code or data stored in the wireless phone nonvolatile memory. - View Dependent Claims (58, 59, 60, 61, 62, 63)
-
Specification