Method and apparatus for storing and retrieving data and a memory arrangement
First Claim
1. A method for storing data identifiable by a search key in memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein storage is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein an individual node can bean internal node comprising a multidimensional array wherein an individual element may contain the address of a lower node in the tree-shaped hierarchy and wherein an individual element may also be empty, ora leaf node containing at least one pointer to a stored data unit, the steps of:
- (a) selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which the address of the next node is sought from the internal node at the root level of the tree-shaped hierarchy, and proceeding to said node,(b) selecting from the unselected bits in the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word with which the address of a further new node at a lower level is sought from the array of the node that has been accessed,(c) repeating step (b) until an empty element has been encountered or until the address of the new node and at a lower level is the address of a leaf node,(d) storing a pointer in the leaf node and said data unit at the storage location indicated by the pointer.
1 Assignment
0 Petitions
Accused Products
Abstract
In methods for storing and retrieving data with a memory arrangement and central databases, a trie data structure is utilized in which the nodes are given unique multidimensional search keys in order to save memory space and to easily store and retrieve data, as a result, the efficiency of storage management will be highly improved.
103 Citations
26 Claims
-
1. A method for storing data identifiable by a search key in memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein storage is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein an individual node can be
an internal node comprising a multidimensional array wherein an individual element may contain the address of a lower node in the tree-shaped hierarchy and wherein an individual element may also be empty, or a leaf node containing at least one pointer to a stored data unit, the steps of: -
(a) selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which the address of the next node is sought from the internal node at the root level of the tree-shaped hierarchy, and proceeding to said node, (b) selecting from the unselected bits in the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word with which the address of a further new node at a lower level is sought from the array of the node that has been accessed, (c) repeating step (b) until an empty element has been encountered or until the address of the new node and at a lower level is the address of a leaf node, (d) storing a pointer in the leaf node and said data unit at the storage location indicated by the pointer. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for storing data identifiable by a search key in memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein storage is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein an individual node can be
an internal node comprising a multidimensional array wherein an individual element may contain the address of a lower node in the tree-shaped hierarchy and wherein an individual element may also be empty, or a leaf node in which at least one data unit is stored, comprising the steps of: -
(a) selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which the address of the next node is sought from the internal node at the root level of the tree-shaped hierarchy, and proceeding to said node, (b) selecting from the unselected bits in the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word with which the address of a further new node at a lower level is sought from the array of the node that has been accessed, (c) repeating step (b) until an empty element has been encountered or until the address of the new node at a lower level is the address of a leaf node, and (d) storing said data unit in the leaf node. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method for retrieving data identifiable by a search key from memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein retrieval is performed by proceeding on the basis of a search key in a directory structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein an individual node can be
an internal node comprising a multidimensional array wherein an individual element may contain the address of a lower node in the tree-shaped hierarchy and wherein an individual element may also be empty, or a leaf node containing at least one pointer to a stored data unit, comprising the following steps of: -
(a) selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which the address of the next node is sought from the internal node at the root level of the tree-shaped hierarchy, and proceeding to said node, (b) selecting from the unselected bits in the search key related to each dimension a predetermined dimension-specific number (ki,) of bits and forming therefrom a search word with which the address of a further new node at a lower level is sought from the array of the node that has been accessed, (c) repeating step (b) until an empty element has been encountered, until the address of the new node at a lower level is the address of a leaf node or until all bits of the search key have been selected, and if an empty element was not encountered in step (c), (d) reading from the leaf node the pointer contained therein and reading the data unit at the location indicated by the pointer. - View Dependent Claims (12, 13, 14)
-
-
15. A method for retrieving data identifiable by a search key from memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein retrieval is performed by proceeding on the basis of a search key in a directory structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein an individual node can be
an internal node comprising a multidimensional array wherein an individual element may contain the address of a lower node in the tree-shaped hierarchy and wherein an individual element may also be empty, or a leaf node in which at least one data unit is stored, comprising the steps of: -
(a) selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which the address of the next node is sought from the internal node at the root level of the tree-shaped hierarchy, and proceeding to said node, (b) selecting from the unselected bits in the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word with which the address of a further new node at a lower level is sought from the array of the node that has been accessed, (c) repeating step (b) until an empty element has been encountered, until the address of the new node at a lower level is the address of a leaf node or until all bits of the search key have been selected, and if an empty element was not encountered in step (c), (d) reading from the leaf node one or more data units contained therein. - View Dependent Claims (16, 17)
-
-
18. A method for storing data identifiable by a search key in memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein storage is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure having one node comprising a multidimensional array wherein an individual element may contain a pointer to a data unit or wherein an individual element may also be empty, comprising the steps of:
selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which an element is sought from the array of the node, and if said element is empty, storing a pointer in the element and said data unit at the storage location indicated by the pointer. - View Dependent Claims (19)
-
20. A method for storing data identifiable by a search key in memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein storage is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure having one node comprising a multidimensional array wherein an individual element may contain a data unit or wherein an individual element may also be empty, comprising the steps of:
selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which an element is sought from the array of the node, and if said element is empty, storing the data unit in said element. - View Dependent Claims (21)
-
22. A method for retrieving data identifiable by a search key from memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein retrieval is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure having one node comprising a multidimensional array wherein an individual node may contain a pointer to said data unit or wherein an individual node may also be empty, comprising the steps of:
selecting from the search key related to each dimension a predetermined dimension-specific (ki) number of bits and forming therefrom a search word on the basis of which an element is sought from the array of the node, and if said element is empty, storing a pointer in said element and the data unit at the storage location indicated by the pointer. - View Dependent Claims (23)
-
24. A method for retrieving data identifiable by a search key from memory, the data being stored as data units in a dedicated storage space assigned for each data unit, wherein retrieval is performed by proceeding, on the basis of a search key associated with the data unit to be stored, in a directory structure having one node comprising a multidimensional array wherein an individual element may contain a data unit or wherein an individual element may also be empty,
comprising the steps of: selecting from the search key related to each dimension a predetermined dimension-specific number (ki) of bits and forming therefrom a search word on the basis of which an element is sought from the array of the node, and if said element is empty, storing the data unit in said element.
-
25. An associative memory arrangement for storing data in electrical form, the data being stored as data units in a dedicated storage space assigned for each data unit in the memory, the memory arrangement comprising a directory structure which is a multidimensional digital trie structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein a node can be
an internal node comprising a multidimensional array wherein an individual non-empty element comprises a pointer (31) guiding progress in the directory structure, or a leaf node containing one or more pointers to a data unit stored in the memory, each data unit to be stored in the memory being associated with a multidimensional search key comprising a search key for each dimension, on the basis of which search keys progress is made in the directory structure, the directory structure returning the data unit associated with the multidimensional search key employed in each case, wherein: - the size of an individual multidimensional internal node in the directory structure has been fixed by predetermining the number of search key bits ki to be searched in each dimension independently of the other dimensions, the size of the internal node in each dimension being 2k.sbsp.i.
-
26. An associative memory arrangement for storing data in electrical form, the data being stored as data units in a dedicated storage space assigned for each data unit in the memory, the memory arrangement comprising a directory structure which is a multidimensional digital trie structure comprising a tree-shaped hierarchy having nodes at several different levels, wherein a node can be
an internal node comprising a multidimensional array wherein an individual non-empty element comprises a pointer (31) guiding progress in the directory structure, or a leaf node containing at least one data unit, each data unit to be stored in the memory being associated with a multidimensional search key comprising a search key for each dimension, on the basis of which search keys progress is made in the directory structure, the directory structure returning the data unit associated with the multidimensional search key employed in each case, wherein: - the size of an individual multidimensional internal node in the directory structure has been fixed by predetermining the number of search key bits ki to be searched in each dimension independently of the other dimensions, the size of the internal node in each dimension being 2k.sbsp..
Specification