Linked lists in flash memory
First Claim
Patent Images
1. A method for implementing a linked list in a flash memory, the method comprising:
- storing nodes of a linked list in the flash memory;
inserting a node into the linked list between a first node and a second node such that the first node links to the node and the node links to the second node, each of the node, the first node and the second node including a data portion and a pointer portion, the pointer portion including a first next pointer portion and a second next pointer portion, wherein the first next pointer portion and the second next pointer portion are not used at the same time to point to a next node; and
updating a first next pointer of the first node in the linked list by overwriting the first next pointer of the first node with a new next pointer to the inserted node when updating the first next pointer only requires setting bits in the pointer portion,wherein the first next pointer of the first node is updated by storing the new next pointer in a table in a memory separate from the flash memory when the first next pointer and the second next pointer of the previous node cannot be updated by only setting bits in the pointer portion.
11 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for managing content in a flash memory. A data structure such as a linked is implemented in flash memory. Nodes can be added to the linked list by overwriting portions of the node when only sets are required to update the node. The nodes may include multiple pointer portions such that existing pointers can be invalided and open pointer portions used for the update to the node.
-
Citations
23 Claims
-
1. A method for implementing a linked list in a flash memory, the method comprising:
-
storing nodes of a linked list in the flash memory; inserting a node into the linked list between a first node and a second node such that the first node links to the node and the node links to the second node, each of the node, the first node and the second node including a data portion and a pointer portion, the pointer portion including a first next pointer portion and a second next pointer portion, wherein the first next pointer portion and the second next pointer portion are not used at the same time to point to a next node; and updating a first next pointer of the first node in the linked list by overwriting the first next pointer of the first node with a new next pointer to the inserted node when updating the first next pointer only requires setting bits in the pointer portion, wherein the first next pointer of the first node is updated by storing the new next pointer in a table in a memory separate from the flash memory when the first next pointer and the second next pointer of the previous node cannot be updated by only setting bits in the pointer portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A flash memory configured to implement a linked list in the flash memory, the flash memory comprising:
-
a linked list stored in the flash memory, the linked list including a plurality of nodes, wherein each node includes a data portion, a first pointer portion, and a second pointer portion, wherein the first pointer portion and the second pointer portion are not used at the same time to point to a linked node; a controller configured to insert nodes into a linked list stored in the flash memory, the linked list including a plurality of nodes wherein each node includes a data portion, a first pointer portion, and a second pointer portion, wherein the first pointer portion and the second pointer portion are not used at the same time, wherein the controller inserts nodes into the linked list or removes nodes from the linked list by overwriting the first pointer portion of nodes affected by the insertion or removal of a node, wherein the first pointer portions of nodes are only overwritten when new values for the first pointer portions of the nodes require bits in the first pointer portions of the nodes to be set, wherein the new values for the portions of the nodes are stored in a table in a memory that is separate from the flash memory when the first pointer portions of the nodes and the second pointer portions of the nodes cannot be overwritten by only setting bits. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for implementing a linked list in a flash memory, the method comprising:
-
writing nodes of a linked list to the flash memory, wherein each node includes a data portion for storing data, a first pointer portion, and a second pointer portion, wherein the first next pointer portion and the second next pointer portion are not used at the same time to point to a node; and associating the linked list with a table in a memory that is separate from the flash memory, wherein entries in the table are configured for storing pointers associated with the linked list; and inserting a new node into the linked list between a first node of the linked list and a second node of the linked list in the flash memory by; overwriting a first pointer portion of the first node to mark the first pointer portion of the first node as invalid; and adding a new next pointer that points to the inserted node from the first node by; overwriting the second pointer portion of the first node with the new next pointer only when overwriting the second pointer portion can be performed by setting bits in the second pointer portion, wherein the second pointer portion is not overwritten with the new next pointer when bits in the second pointer portion need to be unset;
orwriting the new next pointer to an entry in the table in the memory. - View Dependent Claims (21, 22, 23)
-
Specification