US5572698A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System and method for allocating memory resources where the category of a memory resource determines where on a circular stack a pointer to the memory resource is placed
Assignee: SIEMENS ENTERPRISE COMMUNICATIONS Inc
•
Filing: 1994-04-18
•
Granted: 1996-11-05
•
Expires: 2014-04-18
Abstract
Abstract A system and method for flexibly and efficiently allowing multiple categories of data to be managed using a circular stack containing pointers pointing to memory resources within a memory resource area. The pointers to these memory resources can be obtained sequentially only from a first part of the circular stack, but can be placed into the circular stack at different locations depending upon the characterization of the memory resources that the pointers are associated with. The system and method is used, for example, within a private branch exchange (PBX).
Inventors
- 👤 Hsiang C. Yen
- 👤 Vasudha N. Bhaskara
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 22:21
CPC Classifications
G; G06; G06F; G06F5/00; G06F5/06; G06F5/10; H; H04; H04Q; H04Q3/00; H04Q3/58; H04Q3/62; H04Q3/625; H04Q3/627
Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
300 words
A system for allocating a plurality of memory resources in a computer environment, comprising: a plurality of stack locations, wherein each stack location is linked to two other stack locations, and wherein said plurality of stack locations are linked in a circular fashion; a plurality of pointers, wherein each said pointer is stored in said plurality of stack locations and points to a memory resource; a next available marker for indicating a next available pointer in a first available stack location in said plurality of stack locations; a last available marker for indicating a last available pointer in a last available stack location in said plurality of stack locations; request detection means for detecting a memory resource request from the computer environment; resource access means, responsive to said request detection means, for obtaining said next available pointer indicated by said next available marker, wherein, upon obtaining said next available pointer, said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; resource placement means for placing an additional pointer into one of said stack locations upon receipt of a placement request, comprising resource categorization means for determining whether the memory resource that said additional pointer points to belongs to a first category or a second category of memory resources; first category insertion means, responsive to said resource categorization means, for inserting said additional pointer into a stack location indicated by said next available marker when the memory resource that said additional pointer points to belongs to the first category; second category insertion means, responsive to said resource categorization means, for inserting said additional pointer into a stack location indicated by said last available marker when the memory resource that said additional pointer points to belongs to the second category.
Claim 2
Independent Claim
300 words
A system for allocating a plurality of memory resources in a computer environment, comprising: a plurality of stack locations, wherein each stack location is linked to two other stack locations, and wherein said plurality of stack locations are linked in a circular fashion; a plurality of pointers, wherein each said pointer is stored in said plurality of stack locations and points to a memory resource; a next available marker for indicating a next available pointer in a first available stack location in said plurality of stack locations; a last available marker for indicating a last available pointer in a last available stack location in said plurality of stack locations; request detection means for detecting a memory resource request from the computer environment; resource access means, responsive to said request detection means, for obtaining said next available pointer indicated by said next available marker, wherein, upon obtaining said next available pointer, said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; resource placement means for placing an additional pointer into one of said stack locations upon receipt of a placement request, comprising resource categorization means for determining whether the memory resource that said additional pointer points to belongs to a first category or a second category of memory resources; first category insertion means, responsive to said resource categorization means, for inserting said additional pointer into a stack location indicated by said next available marker when the memory resource that said additional pointer points to belongs to the first category; second category insertion means, responsive to said resource categorization means, for inserting said additional pointer into a stack location indicated by said last available marker when the memory resource that said additional pointer points to belongs to the second category.
Claim 3
Dependent Claim
25 words
The system of claim 1, wherein said next available marker points to said first available stack location prior to receipt of said memory resource request.
Claim 4
Dependent Claim
37 words
The system of claim 1, wherein said resource categorization means determines whether the memory resource pointed to by said additional pointer belongs to a first or second category based on a memory address of said memory resource.
Claim 5
Dependent Claim
36 words
The system of claim 1, wherein said resource categorization means determines whether the memory resource pointed to by said additional pointer belongs to a first or second category based on contents stored in said memory resource.
Claim 6
Independent Claim
235 words
A method for allocating a plurality of memory resources in a computer environment, wherein the computer environment has a plurality of stack locations linked in a circular fashion, and wherein a plurality of pointers are stored in said plurality of stack locations, each pointer pointing to a memory resource from the plurality of memory resources, the method comprising the steps of: (1) obtaining, in response to a memory resource request from the computer environment, a next available pointer indicated by a next available marker, wherein, upon obtaining said next available pointer, said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; (2) placing, in response to an insertion request from the computer environment, an additional pointer from the plurality of pointers into one of the stack locations, comprising the substeps of (2)(a) determining whether a first memory resource from the plurality of memory resources that said additional pointer points to belongs to a first category or a second category; (2)(b) inserting, upon a determination in said substep (2)(a) that the first memory resource belongs to the first category, said additional pointer into a stack location indicated by said next available marker; (2)(c) inserting, upon a determination in said substep (2)(a) that the first memory resource belongs to the second category, said additional pointer into a stack location indicated by a last available marker.
Claim 7
Independent Claim
235 words
A method for allocating a plurality of memory resources in a computer environment, wherein the computer environment has a plurality of stack locations linked in a circular fashion, and wherein a plurality of pointers are stored in said plurality of stack locations, each pointer pointing to a memory resource from the plurality of memory resources, the method comprising the steps of: (1) obtaining, in response to a memory resource request from the computer environment, a next available pointer indicated by a next available marker, wherein, upon obtaining said next available pointer, said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; (2) placing, in response to an insertion request from the computer environment, an additional pointer from the plurality of pointers into one of the stack locations, comprising the substeps of (2)(a) determining whether a first memory resource from the plurality of memory resources that said additional pointer points to belongs to a first category or a second category; (2)(b) inserting, upon a determination in said substep (2)(a) that the first memory resource belongs to the first category, said additional pointer into a stack location indicated by said next available marker; (2)(c) inserting, upon a determination in said substep (2)(a) that the first memory resource belongs to the second category, said additional pointer into a stack location indicated by a last available marker.
Claim 8
Dependent Claim
28 words
The method of claim 5, wherein said substep (2)(b) includes updating said next available marker after receipt of said insertion request and prior to inserting said additional pointer.
Claim 9
Dependent Claim
42 words
The method of claim 6, wherein said substep (2)(a) includes determining whether the first memory resource pointed to by said additional pointer belongs to the first category or to the second category based on a memory address of said first memory resource.
Claim 10
Dependent Claim
41 words
The method of claim 6, wherein said substep (2)(a) includes determining whether the first memory resource pointed to by said additional pointer belongs to the first category or to the second category based on contents stored in said first memory resource.
Claim 11
Independent Claim
433 words
A system for allocating a plurality of memory resources, each having an address in a private branch exchange (PBX) environment, comprising: a local computer system, having a memory resource area comprising two or more memory pages; a shared memory for receiving one or more commands, to which the PBX environment is responsive, from said local computer system; said local computer system further comprising a plurality of stack locations, wherein each stack location is uniquely linked to two other stack locations, and wherein said plurality of stack locations are linked in a circular fashion; a plurality of pointers, wherein each said pointer is stored in said plurality of stack locations and points to a memory resource from the plurality of memory resources; a next available marker for indicating a next available pointer in a first available stack location in said plurality of stack locations; a last available marker for indicating a last available pointer in a last available stack location in said plurality of stack locations; request detection means for detecting a request from the PBX environment for a requested memory resource from the plurality of memory resources; resource access means, responsive to said request detection means, for obtaining said next available pointer indicated by said next available marker, wherein the PBX environment is given said next available pointer and a first command is placed in a first memory resource from the plurality of memory resources indicated by said next available pointer, and wherein said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; an engine driver for conveying said first command to said shared memory; release detection means for detecting that a previously obtained memory resource which was previously obtained by the PBX environment, has been released; resource placement means for placing a released pointer, corresponding to said previously obtained memory resource, into one of said stack locations, said resource placement means comprising resource categorization means for determining whether a first address of said previously obtained memory resource belongs to a first category of memory pages or a second category of memory pages; first category insertion means, responsive to said resource categorization means, for inserting said released pointer into a stack location indicated by said next available marker when the previously obtained memory resource belongs to the first category of memory pages; second category insertion means, responsive to said resource categorization means, for inserting said released pointer into a stack location indicated by said last available marker when the previously obtained memory resource belongs to the second category of memory pages.
Claim 12
Independent Claim
433 words
A system for allocating a plurality of memory resources, each having an address in a private branch exchange (PBX) environment, comprising: a local computer system, having a memory resource area comprising two or more memory pages; a shared memory for receiving one or more commands, to which the PBX environment is responsive, from said local computer system; said local computer system further comprising a plurality of stack locations, wherein each stack location is uniquely linked to two other stack locations, and wherein said plurality of stack locations are linked in a circular fashion; a plurality of pointers, wherein each said pointer is stored in said plurality of stack locations and points to a memory resource from the plurality of memory resources; a next available marker for indicating a next available pointer in a first available stack location in said plurality of stack locations; a last available marker for indicating a last available pointer in a last available stack location in said plurality of stack locations; request detection means for detecting a request from the PBX environment for a requested memory resource from the plurality of memory resources; resource access means, responsive to said request detection means, for obtaining said next available pointer indicated by said next available marker, wherein the PBX environment is given said next available pointer and a first command is placed in a first memory resource from the plurality of memory resources indicated by said next available pointer, and wherein said next available marker is updated such that said next available marker indicates a pointer corresponding to a next available memory resource; an engine driver for conveying said first command to said shared memory; release detection means for detecting that a previously obtained memory resource which was previously obtained by the PBX environment, has been released; resource placement means for placing a released pointer, corresponding to said previously obtained memory resource, into one of said stack locations, said resource placement means comprising resource categorization means for determining whether a first address of said previously obtained memory resource belongs to a first category of memory pages or a second category of memory pages; first category insertion means, responsive to said resource categorization means, for inserting said released pointer into a stack location indicated by said next available marker when the previously obtained memory resource belongs to the first category of memory pages; second category insertion means, responsive to said resource categorization means, for inserting said released pointer into a stack location indicated by said last available marker when the previously obtained memory resource belongs to the second category of memory pages.
Claim 13
Dependent Claim
48 words
The system of claim 9, wherein said local computer system further comprises update flags for indicating whether any of two or more said memory pages contains said first command, and wherein said engine driver conveys said first command to said shared memory in response to said update flags.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-11-05 | 2000-05-06 | 2000-11-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-11-05 | 2004-05-06 | 2004-11-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-11-05 | 2008-05-06 | 2008-11-05 | $7700.00 | Window Closed / Lapsed |