US5081572A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Manipulation of time-ordered lists and instructions therefor
Assignee: Cisco Technology Inc
•
Filing: 1988-10-28
•
Granted: 1992-01-14
•
Expires: 2008-10-28
Abstract
Abstract In multi-user (including multi-process) computing systems, Memory Access Serialization instructions are used to allow multiple processes to add and remove elements from a list without the usual software serialization requirements.
Inventors
- 👤 Michael E. Arnold
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 11:57
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/30; G06F9/30003; G06F9/30007; G06F9/30032
Claims Analysis
Total Claims: 8
Claim 1
Independent Claim
269 words
In a multitasking data processing system which includes a plurality of users each of which may require shared access to the same data in a memory, a method of removing an element from a queue stored in the memory, wherein the queue is associated with a queue tail marking the newest element in the queue and a queue head marking the oldest element in the queue and each queue element contains a pointer to the next element in the queue, comprising the steps of: a) placing the value of the queue head into a first operand, b) placing the address of the queue head into a second operand, c) placing the address of the next element pointer of the first element into a fourth operand, d) executing a first prescribed computer instruction which performs the steps of e) locking access to the memory location specified by the second operand, f) comparing the first operand with the contents of memory specified by the second operand, g) if the comparison is equal, loading into a third operand the next queue element pointer specified by the fourth operand, h) releasing the lock on the memory location specified by the second operand, and i) setting a return code indicating success or failure of loading the next queue element pointer specified by the fourth operand, and thereafter j) if the return code indicates that the first prescribed instruction was not successful, repeating the above steps, k) if the return code indicates that the first prescribed instruction was successful, removing the oldest element from the queue using the next element pointer obtained in step g).
Claim 2
Dependent Claim
269 words
In a multitasking data processing system which includes a plurality of users each of which may require shared access to the same data in a memory, a method of removing an element from a queue stored in the memory, wherein the queue is associated with a queue tail marking the newest element in the queue and a queue head marking the oldest element in the queue and each queue element contains a pointer to the next element in the queue, comprising the steps of: a) placing the value of the queue head into a first operand, b) placing the address of the queue head into a second operand, c) placing the address of the next element pointer of the first element into a fourth operand, d) executing a first prescribed computer instruction which performs the steps of e) locking access to the memory location specified by the second operand, f) comparing the first operand with the contents of memory specified by the second operand, g) if the comparison is equal, loading into a third operand the next queue element pointer specified by the fourth operand, h) releasing the lock on the memory location specified by the second operand, and i) setting a return code indicating success or failure of loading the next queue element pointer specified by the fourth operand, and thereafter j) if the return code indicates that the first prescribed instruction was not successful, repeating the above steps, k) if the return code indicates that the first prescribed instruction was successful, removing the oldest element from the queue using the next element pointer obtained in step g).
Claim 3
Dependent Claim
129 words
The method of claim 1 wherein the step of removing the oldest element from the queue further comprises l) if more than one element is on the queue, executing a second prescribed computer instruction, wherein the second instruction performs the steps of m) locking access to the memory at the locations specified by the second and fourth operands, n) comparing the first operand with the memory contents specified by the second operand, o) if the comparison is equal, comparing the third operand with the memory contents specified by the fourth operand, p) if the second comparison is also equal, storing new values at the memory locations specified by the second and fourth operands, and q) releasing the lock on the memory locations specified by the second and fourth values.
Claim 4
Dependent Claim
42 words
The method of claim 2 further comprising the steps of if the comparison of the first operand with the memory contents of the second operand by the second instruction is not equal, reloading the first operand and repeating steps d) through q).
Claim 5
Dependent Claim
43 words
The method of claim 2 further comprising the steps of if the comparison of the third operand with the memory contents of the fourth operand by the second instruction is not equal, reloading the third operand and repeating the steps l) through q).
Claim 6
Dependent Claim
38 words
The method of claim 1 further comprising if there is only one element on the queue, removing the element and setting the values of the queue tail and the queue head in memory to indicate an empty queue.
Claim 7
Dependent Claim
258 words
In a multitasking data processing system which includes a plurality of users each of which may require shared access to the same data in a memory, a method of removing an element from a stack stored in the memory, wherein the stack is associated with a stack pointer marking the newest element in the stack and each stack element contains a pointer to the next element in the stack, comprising the steps of: a) placing the value of the stack pointer into a first operand, b) placing the address of the stack pointer into a second operand, c) placing the address of the next element pointer of the first element into a fourth operand, d) executing a first prescribed computer instruction which performs the steps of e) locking access to the memory location specified by the second operand, g) comparing the first operand with the contents of memory specified by the second operand, h) if the comparison is equal, loading into the third operand the next stack element pointer specified by the fourth operand, i) releasing the lock on the memory location specified by the second operand, and j) setting a return code indicating success or failure of the first prescribed instruction, and thereafter k) if the return code indicates that the first prescribed instruction was not successful, repeating the above steps, l) if the return code indicates that the first prescribed instruction was successful, removing from the stack the element pointed to by the stack element pointer using the next stack element pointer obtained from step h).
Claim 8
Dependent Claim
258 words
In a multitasking data processing system which includes a plurality of users each of which may require shared access to the same data in a memory, a method of removing an element from a stack stored in the memory, wherein the stack is associated with a stack pointer marking the newest element in the stack and each stack element contains a pointer to the next element in the stack, comprising the steps of: a) placing the value of the stack pointer into a first operand, b) placing the address of the stack pointer into a second operand, c) placing the address of the next element pointer of the first element into a fourth operand, d) executing a first prescribed computer instruction which performs the steps of e) locking access to the memory location specified by the second operand, g) comparing the first operand with the contents of memory specified by the second operand, h) if the comparison is equal, loading into the third operand the next stack element pointer specified by the fourth operand, i) releasing the lock on the memory location specified by the second operand, and j) setting a return code indicating success or failure of the first prescribed instruction, and thereafter k) if the return code indicates that the first prescribed instruction was not successful, repeating the above steps, l) if the return code indicates that the first prescribed instruction was successful, removing from the stack the element pointed to by the stack element pointer using the next stack element pointer obtained from step h).
References Cited (Backward Citations)
US3886525A
Cited
US4136386A
Cited
US4320455A
Cited
US4394727A
Cited
US4482956A
Cited
US4604694A
Cited
US4584640A
Cited
US4858116A
Cited
US4807111A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1995-01-13 | 1995-07-15 | 1996-01-14 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1999-01-13 | 1999-07-15 | 2000-01-14 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2003-01-13 | 2003-07-15 | 2004-01-14 | $7700.00 | Window Closed / Lapsed |