Iterator register for structured memory
First Claim
1. An apparatus comprising:
- a memory that is to store data in a pointer-linked data structure, the pointer-linked data structure including a plurality of nodes, wherein the memory comprises one or more of a content-addressable memory, a snapshot checkpointing memory, a database, a snapshot of state for lock-free execution type of memory, an inverted index memory, or a sparse matrix memory; and
a processor in communication with the memory, the processor including at least one iterator register, wherein the iterator register is to store a first pointer chain that specifies a location of a first data element within the pointer-linked data structure from a root node, of the plurality of nodes, to a leaf node, of the plurality of nodes, andwherein when a subsequent access of data in the pointer-linked data structure causes a writing of a second pointer chain, associated with access of a second data element within the pointer-linked data structure, to the iterator register and the second pointer chain includes one or more same pointers as included in the first pointer chain, a first portion of the iterator register is to store only a portion of the second pointer chain not in common with the first pointer chain and a second portion of the iterator register is to retain the one or more same pointers as included in the first pointer chain.
0 Assignments
0 Petitions
Accused Products
Abstract
Loading data from a computer memory system is disclosed. A memory system is provided, wherein some or all data stored in the memory system is organized as one or more pointer-linked data structures. One or more iterator registers are provided. A first pointer chain is loaded, having two or more pointers leading to a first element of a selected pointer-linked data structure to a selected iterator register. A second pointer chain is loaded, having two or more pointers leading to a second element of the selected pointer-linked data structure to the selected iterator register. The loading of the second pointer chain reuses portions of the first pointer chain that are common with the second pointer chain.
Modifying data stored in a computer memory system is disclosed. A memory system is provided. One or more iterator registers are provided, wherein the iterator registers each include two or more pointer fields for storing two or more pointers that form a pointer chain leading to a data element. A local state associated with a selected iterator register is generated by performing one or more register operations relating to the selected iterator register and involving pointers in the pointer fields of the selected iterator register. A pointer-linked data structure is updated in the memory system according to the local state.
66 Citations
28 Claims
-
1. An apparatus comprising:
-
a memory that is to store data in a pointer-linked data structure, the pointer-linked data structure including a plurality of nodes, wherein the memory comprises one or more of a content-addressable memory, a snapshot checkpointing memory, a database, a snapshot of state for lock-free execution type of memory, an inverted index memory, or a sparse matrix memory; and a processor in communication with the memory, the processor including at least one iterator register, wherein the iterator register is to store a first pointer chain that specifies a location of a first data element within the pointer-linked data structure from a root node, of the plurality of nodes, to a leaf node, of the plurality of nodes, and wherein when a subsequent access of data in the pointer-linked data structure causes a writing of a second pointer chain, associated with access of a second data element within the pointer-linked data structure, to the iterator register and the second pointer chain includes one or more same pointers as included in the first pointer chain, a first portion of the iterator register is to store only a portion of the second pointer chain not in common with the first pointer chain and a second portion of the iterator register is to retain the one or more same pointers as included in the first pointer chain. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method comprising:
-
loading into a selected iterator register, from a memory that stores one or more pointer-linked data structures, at least first, second, and third pointers associated with a selected pointer-linked data structure, of the one or more pointer-linked data structures, wherein the first, second, and third pointers comprise a first pointer chain that specifies a location of a first data element within the selected pointer-linked data structure from a root node, of a plurality of nodes of the selected pointer-linked data structure, to a first leaf node, of the plurality of nodes; and loading into the selected iterator register at least a portion of a second pointer chain having two or more pointers leading to a second data element located within a second leaf node of the selected pointer-linked data structure, wherein, when the second pointer chain includes one or more same pointers as included in the first pointer chain, loading into the selected iterator register only the portion of the second pointer chain not in common with the first pointer chain and retaining the one or more same pointers as included in the first pointer chain, wherein the memory comprises one or more of a content-addressable memory, a snapshot checkpointing memory, a database, a snapshot of state for lock-free execution type of memory, an inverted index memory, or a sparse matrix memory. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. One or more computer-readable storage media comprising a plurality of instructions to cause a processor, in response to execution by the processor, to:
-
load into an iterator register, from a memory that stores one or more pointer-linked data structures, at least first, second, and third pointers associated with a selected pointer-linked data structure, of the one or more pointer-linked data structures, wherein the first, second, and third pointers comprise a first pointer chain that specifies a location of a first data element within the selected pointer-linked data structure from a root node, of a plurality of nodes of the selected pointer-linked data structure, to a first leaf node, of the plurality of nodes, wherein the first, second, and third pointers are to be loaded into respective pointer fields included in the iterator register; and load into the iterator register at least a portion of a second pointer chain having two or more pointers leading to a second data element located within a second leaf node of the selected pointer-linked data structure, wherein, when the second pointer chain includes one or more same pointers as included in the first pointer chain, load into the iterator register only the portion of the second pointer chain not in common with the first pointer chain and retain the one or more same pointers as included in the first pointer chain, wherein the memory comprises one or more of a content-addressable memory, a snapshot checkpointing memory, a database, a snapshot of state for lock-free execution type of memory, an inverted index memory, or a sparse matrix memory. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification