← Back to Patent Explorer
US4482956A Expired / Lapsed US ⏱️ 0.0 years remaining

Parallel queueing method

Assignee: International Business Machines Corp
•
Filing: 1982-11-04
•
Granted: 1984-11-13
•
Expires: 2002-11-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Each embodiment enables a single chained queue to have parallel operations by plural element insertion routines and one deletion routine which may be simultaneously executing asynchronously on plural processors for deleting an element, while inserting one or more anchor-pointed elements. This is done by providing a dequeueing lock which is only examined by a program routine which is to delete an element, but is not examined by any program routine which is to make an insertion of an anchor-pointed element into the queue using a System/370 compare and swap instruction. The embodiments provide efficient processing in a non-pure LIFO queue, which is non-pure because the queue can, at the user's option, be used for either LIFO or non-LIFO dequeueing. No lock is used on the queue when inserting anchor-pointed elements. A special case of non-LIFO processing is FIFO (first-in/first-out) processing, which finds the last element in the queue as the required element.

Inventors

  • 👤 Peter H. Tallman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 07:17
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/76; G06F7/78; G06F16/00; G06F16/90; G06F16/901; G06F16/9024; G06F5/00; G06F5/06; G06F2205/00; G06F2205/06; G06F2205/064

Claims Analysis

Total Claims: 7
Claim 1
Independent Claim 196 words
A method of controlling a queue of address chained elements beginning with an anchor-pointed element, each element comprising a block of bytes located in a main storage any where relative to any other element in the queue, the main storage being in a data processing system having one or more CPU's, each element containing a pointer to a next element in the queue except the last element in the queue containing an end of queue indicator, the queue having an anchor block containing an anchor-pointer for providing an address that directly enables the addressing of an anchor-pointed element, a plurality of processing being capable of simultaneous execution in the system, comprising: providing a dequeueing lock for permitting the dequeueing of any element in the queue, obtaining the dequeueing lock in a set-on state prior to deletion of any element in the queue, ignoring the state of the dequeueing lock for the insertion of an anchor-pointed element into the queue by a compare and swap type of CPU instruction, whereby a plurality of simultaneously executing processes may be inserting anchor-pointed elements into the queue while another simultaneously executing process may be deleting any element in the queue.
Claim 2
Independent Claim 196 words
A method of controlling a queue of address chained elements beginning with an anchor-pointed element, each element comprising a block of bytes located in a main storage any where relative to any other element in the queue, the main storage being in a data processing system having one or more CPU's, each element containing a pointer to a next element in the queue except the last element in the queue containing an end of queue indicator, the queue having an anchor block containing an anchor-pointer for providing an address that directly enables the addressing of an anchor-pointed element, a plurality of processing being capable of simultaneous execution in the system, comprising: providing a dequeueing lock for permitting the dequeueing of any element in the queue, obtaining the dequeueing lock in a set-on state prior to deletion of any element in the queue, ignoring the state of the dequeueing lock for the insertion of an anchor-pointed element into the queue by a compare and swap type of CPU instruction, whereby a plurality of simultaneously executing processes may be inserting anchor-pointed elements into the queue while another simultaneously executing process may be deleting any element in the queue.
Claim 3
Dependent Claim 87 words
A method as defined in claim 1, further comprising: searching for a search argument in the chained elements in the queue for finding a required element while the dequeueing lock in a set on state has been obtained by the obtaining step, outputting and dequeueing any element found by the searching step, whereby a locked dequeueing process is performed for dequeueing a required element found by the searching step, while one or more non-locked enqueueing processes may be performing for enqueueing successive anchor-pointed elements onto the queue.
Claim 4
Dependent Claim 58 words
A method as defined in claim 2, further comprising: inputting a search argument to the searching step for searching the chained elements in the queue for the search argument beginning with the anchor-pointed element, outputting at least the pointer addressing an element found in the sequence of chained elements by the searching step to have the search argument.
Claim 5
Dependent Claim 93 words
A method as defined in claim 2, further comprising: specifying a last element identification means for recognizing a last element in the sequence of chained elements of the queue, the searching step accessing each element in the queue to detect the last element identification means, the outputting and dequeueing steps outputting and dequeueing a required element found by the searching step to have the last element identification means, whereby a FIFO dequeueing operation is performed for dequeueing the required last element from the queue while permitting simultaneous enqueueing of element(s) onto the queue.
Claim 6
Dependent Claim 343 words
A method as defined in claim 4, further comprising: assigning a plurality of general registers (GRs) to a process in any CPU in the system which is to execute a process for inserting or deleting an element in the queue including first, second and third GRs for respectively storing the addresses of three consecutive elements in the sequence of address chained elements in main storage, executing the obtaining step for a dequeueing process in one CPU to hold the dequeueing lock in set-on state, initially loading the first GR in the one CPU with the anchor-pointer and then loading the second GR in the one CPU with the pointer in the anchor-pointed element, testing the contents in the first and second GRs in the one CPU for any end-of-queue indication therein, loading the third GR in the one CPU with a pointer from within the next element in the queue addressed by the content of the second GR, testing the content of the third GR for determining if the next element is or is not the last element in the queue, and performing the outputting and dequeueing step on the next element if it is a requested element when the testing step has determined the next element is the last element in the queue, accessing a pointer in another next element addressed by the pointer in the third GR when the testing step determines the pointer in the third GR does not address the last element in the queue, reloading the first, second and third GRs respectively with the contents of the second GR, third GR, and pointer accessed by the accessing step, repeating the testing step and any steps following the testing step until the performing step outputs and dequeues a requested element or until the testing step finds the end of the queue is reached and no requested element is found in the queue, and simultaneously executing an insertion process in any one or more other CPU's in the system to simultaneously insert one or more anchor-pointed elements into the queue.
Claim 7
Independent Claim 26 words
A method as defined in claims 2, 3, 4 or 5, further comprising: setting off the dequeueing lock after the outputting and dequeueing step is executed.

References Cited (Backward Citations)

US4271468A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1987-11-13 1988-05-14 1988-11-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1991-11-13 1992-05-14 1992-11-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1995-11-13 1996-05-14 1996-11-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag