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

Memory controller for enqueuing/dequeuing process

Assignee: Hewlett Packard Development Co LP
•
Filing: 1989-09-21
•
Granted: 1993-08-24
•
Expires: 2009-09-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory controller manipulated enqueuing and dequeuing process for singly linked queues in a memory system in response to single exclusive-access write and read commands from any CPU in the associated data processing system.

Inventors

  • 👤 Bruce D. Buch
  • 👤 Cecil D. MacGregor

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 22:51
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F12/00; G06F12/02; G06F12/0223; G06F12/0284; G06F13/00; G06F13/14; G06F13/16; G06F13/1605; G06F13/1642

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 282 words
A method of performing atomic enqueuing operations by a memory controller on a singly-linked queue in a doubly-mapped memory response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root having a first word containing said standard address for a first member of said queue when said queue has members and containing an empty indication when said queue has no members and a second word containing said standard address for a last member of said queue when said queue has members and an indeterminant value when said queue has no members, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for said first queue member to be enqueued to an empty singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said first queue member in said second word of said queue root with said memory controller thereby indicating that said first queue member is also the last member of said singly-linked queue; and writing said standard address of said first queue member in said first word of said queue root with said memory controller thereby indicating that the first queue member is the first member of said singly-linked queue.
Claim 2
Independent Claim 282 words
A method of performing atomic enqueuing operations by a memory controller on a singly-linked queue in a doubly-mapped memory response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root having a first word containing said standard address for a first member of said queue when said queue has members and containing an empty indication when said queue has no members and a second word containing said standard address for a last member of said queue when said queue has members and an indeterminant value when said queue has no members, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for said first queue member to be enqueued to an empty singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said first queue member in said second word of said queue root with said memory controller thereby indicating that said first queue member is also the last member of said singly-linked queue; and writing said standard address of said first queue member in said first word of said queue root with said memory controller thereby indicating that the first queue member is the first member of said singly-linked queue.
Claim 3
Dependent Claim 53 words
The method as set forth in claim 1, wherein said memory comprises storage means and wherein said step of receiving a write command comprises the steps of: storing said alternative address of said queue root in said storage means; and storing said standard address of said first queue member in said storage means.
Claim 4
Dependent Claim 70 words
The method as set forth in claim 2, wherein said step of writing said standard address of said first queue member in said second word of said queue root comprises the steps of: storing the contents of said second word of said queue root in said storage means; and storing said standard address of said first queue member in said second word of said queue root in said storage means.
Claim 5
Dependent Claim 50 words
The method as set forth in claim 3, wherein said step of writing said standard address of said first queue member in said first word of said queue root comprises the step of: writing said standard address of said first queue member in said first word of said queue root.
Claim 6
Independent Claim 290 words
A method of performing atomic enqueuing operations by a memory controller on a singly-linked queue in a doubly-mapped memory response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root, at least one intermediate queue member, and a last queue member, said queue root having a first word containing the standard address for one of said intermediate queue members and a second word containing the standard address for said last member of said queue, each intermediate queue member having a data body and a pointer addressing any adjacent queue member, said last queue member having a pointer with a preselected value identifying it as the last quote member and a data body, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said new queue member in said pointer of said last queue member with said memory controller thereby adding said new queue member to said singly-linked queue; and writing said standard address of said new queue member on said second word of said queue root with said memory controller thereby indicating that said new queue member is now said last member of said singly-linked queue.
Claim 7
Independent Claim 290 words
A method of performing atomic enqueuing operations by a memory controller on a singly-linked queue in a doubly-mapped memory response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root, at least one intermediate queue member, and a last queue member, said queue root having a first word containing the standard address for one of said intermediate queue members and a second word containing the standard address for said last member of said queue, each intermediate queue member having a data body and a pointer addressing any adjacent queue member, said last queue member having a pointer with a preselected value identifying it as the last quote member and a data body, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said new queue member in said pointer of said last queue member with said memory controller thereby adding said new queue member to said singly-linked queue; and writing said standard address of said new queue member on said second word of said queue root with said memory controller thereby indicating that said new queue member is now said last member of said singly-linked queue.
Claim 8
Dependent Claim 53 words
The method as set forth in claim 5, wherein said memory comprises storage means and wherein said step of receiving a write command comprises the steps of: storing said alternative address of said queue root in said storage means; and storing said standard address of said new queue member in said storage means.
Claim 9
Dependent Claim 70 words
The method as set forth in claim 6, wherein said step of writing said standard address of said new queue member in said second word of said queue root comprises the steps of: storing the contents of said second word of said queue root in said storage means; and storing said standard address of said new queue member in said second word of said queue root in said storage means.
Claim 10
Dependent Claim 50 words
The method as set forth in claim 7, wherein said step of writing said standard address of said new queue member in said pointer of said last queue member comprises the step of: writing said standard address of said new queue member in said pointer of said last queue member.
Claim 11
Independent Claim 291 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and at least one queue member having a pointer, said queue root having a first word containing said standard address for a first member of said queue and a second word containing said standard address for a last member of said queue, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member to be enqueued to said singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; storing said alternative address of said queue root in said storage means with said memory controller; storing said standard address of said new queue member in said storage means with said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said new queue member in said pointer of said last queue member with said memory controller thereby adding said new queue member to said singly-linked queue; and writing said standard address of said new queue member in said second word of said queue root thereby indicating that said new queue member is now said last member of said singly-linked queue.
Claim 12
Independent Claim 291 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and at least one queue member having a pointer, said queue root having a first word containing said standard address for a first member of said queue and a second word containing said standard address for a last member of said queue, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member to be enqueued to said singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; storing said alternative address of said queue root in said storage means with said memory controller; storing said standard address of said new queue member in said storage means with said memory controller; reading said first and second words of said queue root with said memory controller; writing said standard address of said new queue member in said pointer of said last queue member with said memory controller thereby adding said new queue member to said singly-linked queue; and writing said standard address of said new queue member in said second word of said queue root thereby indicating that said new queue member is now said last member of said singly-linked queue.
Claim 13
Independent Claim 406 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address used for normal read/write operations and an alternative address used for enqueuing operations, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and, if not empty, at least one queue member having a pointer, said queue root having a first word containing said standard address for a first member of said queue when said queue has members and containing an empty indication when said queue has no members and a second word containing said standard address for a last member of said queue when said queue has members and an indeterminant value when said queue has no members, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member to be enqueued to said singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; storing sad alternative address of said queue root in said storage means with said memory controller; storing said standard address of said new queue member in said storage means with said memory controller; reading said first and second words of said queue root with said memory controller; setting a flag is said first word of said queue root is a selected flag-setting value representing that said queue is empty; writing said standard address of said new queue member in said pointer of said last queue member if said flag is not set with said memory controller thereby adding said new queue member to said singly-linked queue; writing said standard address of said new queue member in said first word of said queue root if said flag is set with said memory controller thereby indicating that said new queue member is said first member of said singly-linked queue; and writing said standard address of said new queue member in said second word of said queue root with said memory controller thereby indicating that said new queue member is said last member of said singly-linked queue.
Claim 14
Independent Claim 406 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a write command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address used for normal read/write operations and an alternative address used for enqueuing operations, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and, if not empty, at least one queue member having a pointer, said queue root having a first word containing said standard address for a first member of said queue when said queue has members and containing an empty indication when said queue has no members and a second word containing said standard address for a last member of said queue when said queue has members and an indeterminant value when said queue has no members, said method comprising the steps of: transmitting from one of said plurality of CPUs a write command, said write command containing said standard address for a new queue member to be enqueued to said singly-linked queue and said alternative address in said doubly-mapped memory for a queue root; receiving said write command at said memory controller; storing sad alternative address of said queue root in said storage means with said memory controller; storing said standard address of said new queue member in said storage means with said memory controller; reading said first and second words of said queue root with said memory controller; setting a flag is said first word of said queue root is a selected flag-setting value representing that said queue is empty; writing said standard address of said new queue member in said pointer of said last queue member if said flag is not set with said memory controller thereby adding said new queue member to said singly-linked queue; writing said standard address of said new queue member in said first word of said queue root if said flag is set with said memory controller thereby indicating that said new queue member is said first member of said singly-linked queue; and writing said standard address of said new queue member in said second word of said queue root with said memory controller thereby indicating that said new queue member is said last member of said singly-linked queue.
Claim 15
Independent Claim 225 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a read command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and at least one queue member having a pointer that has a pointer address, said queue root having a first word containing said standard address for said first member of said queue and a second word containing said standard address for said last member of said queue, comprising the steps of: transmitting from one of said plurality of CPUs a read command, said read command containing the alternative address in said doubly-mapped memory for a queue root; receiving said read command at said memory controller; reading said first of said queue root with said memory controller; reading data from a queue member having a standard address corresponding to the value of said first word of said queue root with said memory controller; and writing said pointer address for said first queue member in said first word of said queue root with said memory controller.
Claim 16
Independent Claim 225 words
A method of performing atomic enqueuing operations by a memory controller having a storage means on a singly-linked queue in a doubly-mapped memory in response to a read command issued by one of a plurality of CPU's, said doubly-mapped memory having a plurality of memory locations, each said memory location mapped with both a standard address and an alternative address, said standard address and said alternative address for each said memory location being different, said singly-linked queue comprising a queue root and at least one queue member having a pointer that has a pointer address, said queue root having a first word containing said standard address for said first member of said queue and a second word containing said standard address for said last member of said queue, comprising the steps of: transmitting from one of said plurality of CPUs a read command, said read command containing the alternative address in said doubly-mapped memory for a queue root; receiving said read command at said memory controller; reading said first of said queue root with said memory controller; reading data from a queue member having a standard address corresponding to the value of said first word of said queue root with said memory controller; and writing said pointer address for said first queue member in said first word of said queue root with said memory controller.

References Cited (Backward Citations)

US4682284A Cited
US4757441A Cited
US4980852A Cited
US5008816A Cited
US5050066A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-08-23 1997-02-22 1997-08-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-08-23 2001-02-22 2001-08-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-08-23 2005-02-22 2005-08-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag