Accessing an N-way linked list
AssigneeInternational Business Machines Corporation
InventorBurkhard Steinmacher-Burow
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorBurkhard Steinmacher-Burow
Estimating the term…
Computer-implemented methods for accessing a particular element of a plurality of elements stored in an N-way linked list in a computer memory provide for adding or removing elements at locations within the list. The methods may be employed with LIFO or FIFO N-way linked lists. The methods may include traversing the N sub-lists in parallel as well as the use of single instruction multiple data operations.
A computer-implemented method for accessing a particular element of a plurality of elements stored in an N-way linked list in a computer memory, the N-way linked list having N linked sub-lists and a list order, each element being in one of the N sub-lists and including a pointer to a next sequential element in a same sub-list, comprising:
Dependencies are inferred from the claim text.
From the US filing history. Foreign family members aren’t listed.
Drawings are temporarily unavailable. Open the PDF at USPTO
Indexing; Data structures therefor; Storage structures: graphs; Linked lists
For changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor:…
Using a plurality of independent parallel functional units: controlled by a single instruction for multiple data lanes [SIMD]
User address space allocation, e.g. contiguous or non contiguous base addressing: free address space management
About 9 years 1 month of term left · ends 24 Nov 2035 (estimated)
This disclosure relates generally to data structures stored in computer memory, and more particularly, to accessing elements in data structures stored in computer memory.
Some currently available processors support single instruction, multiple data (SIMD) operations. A SIMD operation is an operation in which a single instruction operates on two or more data elements items in parallel. For example, a SIMD load instruction may load eight 16-bit values in parallel. In this example, in the same number of clock cycles needed to perform a conventional load instruction that loads a single 16-bit value, a SIMD load instruction would load eight 16-bit values. SIMD processing may be referred to as vector processing. SIMD instructions provide a significant speed up over comparable conventional instructions. However, SIMD instructions may not be suitable for use with known algorithms and data structures. One example processor that supports SIMD instructions is the Pentium® microprocessor via an extension known as multimedia extension (“MMX”) instructions. Another example processor that supports SIMD instructions is the PowerPC™ processor.
The term “process” may generally refer to a computer program that is currently running on a computer system. A process may include one or more threads. The term “thread” may refer to a subset of instructions of a process that perform a specific task. Threads share memory and resources of the process they are part of. Threads may work independently.
FIGS. 1A-1D show elements of an N-way linked list according to various embodiments.
FIG. 2 shows example data and an exemplary LIFO N-way linked list at various stages after elements of the example data have been added to the list according to various embodiments.
FIG. 3 shows the example data and exemplary N-way LIFO linked list of FIG. 2 after all of the example data has been added to the list according to various embodiments.
In the Figures and the Detailed Description, like numbers may refer to like elements.
A variety of examples are presented in this Detailed Description. These examples may be referred to as exemplary. Note that the term “exemplary,” as used in this Detailed Description, simply means an example, instance, or illustration. This term is not used to mean that a particular example is superior, commendable, or otherwise deserving of imitation over other examples.
Accessing an N-Way Linked List