Claims Analysis
Total Claims: 16
Claim 1
Independent Claim
303 words
A storage system consisting of a shared memory (10) subdivided into a plurality of buffers, a buffer-control memory (11) subdivided into as many sections for buffer control records (BCRs) as buffers exist, and a buffer manager (12), comprising: a free-buffer manager (21; 83) controlling and organizing all of said buffers being free by keeping the corresponding BCRs in at least one free-buffer linked list (23.1), an allocated-buffer manager (22; 90) controlling and organizing all of said buffers being already allocated by keeping the corresponding BCRs in allocated-buffer linked lists (23.2-23.n), employing an allocated-buffer linked list (23.2-23.n) for each user, and a request manager (20) for granting or not granting a request of a user, based on a plurality of rules implemented in said request manager (20), involving a plurality of user-defined variables and system status variables, said request manager (20) comprising a storage (41) in which said plurality of user-defined and system status variables are stored, a work register (42) linked to said storage (41) such that the stored plurality of used user-defined and system status variables are made accessible, a server (43) determining whether a request is to be granted by employing said plurality of rules and plurality of variables which are made accessible by means of said work register (42), said user-defined variables being used for granting buffer allocation requests and said system status variables being controlled and updated by said request manager (20), said free-buffer manager (21; 83), said allocated-buffer manager (22; 90), and said request manager (20) being implemented as separate concurrently operating hardware units which are arranged such that different users can put/get data to/from buffers of said shared memory (10), and such that said free-buffer linked list (23.1) and said allocated-buffer linked lists (23.2-23.n) are concentrated in an interlaced list of BCRs in said buffer-control memory (11).
Claim 2
Dependent Claim
303 words
A storage system consisting of a shared memory (10) subdivided into a plurality of buffers, a buffer-control memory (11) subdivided into as many sections for buffer control records (BCRs) as buffers exist, and a buffer manager (12), comprising: a free-buffer manager (21; 83) controlling and organizing all of said buffers being free by keeping the corresponding BCRs in at least one free-buffer linked list (23.1), an allocated-buffer manager (22; 90) controlling and organizing all of said buffers being already allocated by keeping the corresponding BCRs in allocated-buffer linked lists (23.2-23.n), employing an allocated-buffer linked list (23.2-23.n) for each user, and a request manager (20) for granting or not granting a request of a user, based on a plurality of rules implemented in said request manager (20), involving a plurality of user-defined variables and system status variables, said request manager (20) comprising a storage (41) in which said plurality of user-defined and system status variables are stored, a work register (42) linked to said storage (41) such that the stored plurality of used user-defined and system status variables are made accessible, a server (43) determining whether a request is to be granted by employing said plurality of rules and plurality of variables which are made accessible by means of said work register (42), said user-defined variables being used for granting buffer allocation requests and said system status variables being controlled and updated by said request manager (20), said free-buffer manager (21; 83), said allocated-buffer manager (22; 90), and said request manager (20) being implemented as separate concurrently operating hardware units which are arranged such that different users can put/get data to/from buffers of said shared memory (10), and such that said free-buffer linked list (23.1) and said allocated-buffer linked lists (23.2-23.n) are concentrated in an interlaced list of BCRs in said buffer-control memory (11).
Claim 3
Dependent Claim
26 words
The storage system of claim 1, wherein said free-buffer linked list (23.1) is organized such that the free buffers appear to be stored in a stack.
Claim 4
Dependent Claim
50 words
The storage system of claim 2, wherein the free-buffer manager (21) comprises a server (52) and registers (54.1, 54.2, 54.3), such that a pointer to the first BCR (31.2) of said free-buffer linked list (23.1) and a pointer to the corresponding free-buffer (30.2) are kept in said registers (54.1, 54.2).
Claim 5
Dependent Claim
61 words
The storage system of claim 3, wherein said buffers being allocated are organized such that they appear to be stored in a first-in/first-out (FIFO) queue, by keeping the corresponding BCRs accordingly, and wherein a pointer to the front of an allocated-buffer linked list (23.2) and a pointer to the end of a list (23.2) are kept in said storage (60; 91).
Claim 6
Dependent Claim
25 words
The storage system of claim 4, wherein the free-buffer manager (83) comprises a random access memory (RAM) (80) storing pointers to said free-buffer linked lists.
Claim 7
Dependent Claim
32 words
The storage system of claim 1, wherein said free-buffer manager (21; 83) and said allocated-buffer manager (22; 90) comprises a server (52, 61; 84, 96) and a storage (56, 60; 85, 91).
Claim 8
Dependent Claim
42 words
The storage system of claim 1, wherein said shared memory (10) is subdivided into a plurality of buffers of different size and wherein said free-buffer manager (83) controls and organizes as many free-buffer linked lists as buffers of different sizes are given.
Claim 9
Dependent Claim
48 words
The storage system of claim 1, wherein a BCR (31.2) comprises a field (UserData) for the physical address of the corresponding buffer (30.2), and a field (next) for a pointer to another BCR (31.4) or a field (nil) for a flag marking the end of a linked list.
Claim 10
Dependent Claim
56 words
The storage system of claim 1, wherein a BCR comprises, either a field (next) for a pointer to another BCR or a field (nil) for a flag marking the end of a linked list, and wherein said BCR is directly mapped to a corresponding buffer, such that no additional field for the buffer address is required.
Claim 11
Independent Claim
360 words
A method managing access of different users to a shared memory (10), said shared memory being subdivided into a plurality of buffers and being part of a storage system which further comprises a buffer-control memory (11), subdivided into as many sections for buffer-control records (BCRs) as buffers exist, and a buffer manager (12), said method comprising the steps of: a. organizing all free buffers of said shared memory as at least one chained queue of free buffers by keeping the corresponding BCRs in at least one free-buffer linked list (23.1); b. organizing all allocated buffers of said shared memory (10) as chained queues of allocated buffers, one queue for each of said users, by keeping the corresponding BCRs in as many allocated-buffer linked lists (23.2-23.n) as queues exist; c. allocating a free buffer to a user by removing the newly allocated buffer from said chained queue of free buffers and linking it to the queue of said user if still existing; otherwise, linking said newly allocated-buffer to a new queue by taking its BCR from said free-buffer linked list (23.1) and adding it to the allocated-buffer linked list (23.2-23.n) of said queue; d. releasing a buffer from the queue of a user by adding said released buffer to said chained queue of free buffers by taking its BCR from the allocated-buffer linked list (23.2-23.n) of said user and adding it to said free-buffer linked list (23.1); e. granting or not granting a request by said buffer manager for allocating a buffer to a user depending on (e.1) a plurality of rules implemented in said buffer manager (12), (e.2) a plurality of user-defined variables, and (e.3) system status variables, wherein all said variables are stored in a storage (41) linked to a work register (42) such that the stored plurality of user-defined and system status variables are made accessible, said user-defined variables being used for granting buffer allocation requests and said system status variables being controlled and updated by said buffer manager; wherein said queues are controlled and organized by said buffer manager (12) such that requests for allocation of buffers from different users are dealt with in a parallel manner.
Claim 12
Independent Claim
360 words
A method managing access of different users to a shared memory (10), said shared memory being subdivided into a plurality of buffers and being part of a storage system which further comprises a buffer-control memory (11), subdivided into as many sections for buffer-control records (BCRs) as buffers exist, and a buffer manager (12), said method comprising the steps of: a. organizing all free buffers of said shared memory as at least one chained queue of free buffers by keeping the corresponding BCRs in at least one free-buffer linked list (23.1); b. organizing all allocated buffers of said shared memory (10) as chained queues of allocated buffers, one queue for each of said users, by keeping the corresponding BCRs in as many allocated-buffer linked lists (23.2-23.n) as queues exist; c. allocating a free buffer to a user by removing the newly allocated buffer from said chained queue of free buffers and linking it to the queue of said user if still existing; otherwise, linking said newly allocated-buffer to a new queue by taking its BCR from said free-buffer linked list (23.1) and adding it to the allocated-buffer linked list (23.2-23.n) of said queue; d. releasing a buffer from the queue of a user by adding said released buffer to said chained queue of free buffers by taking its BCR from the allocated-buffer linked list (23.2-23.n) of said user and adding it to said free-buffer linked list (23.1); e. granting or not granting a request by said buffer manager for allocating a buffer to a user depending on (e.1) a plurality of rules implemented in said buffer manager (12), (e.2) a plurality of user-defined variables, and (e.3) system status variables, wherein all said variables are stored in a storage (41) linked to a work register (42) such that the stored plurality of user-defined and system status variables are made accessible, said user-defined variables being used for granting buffer allocation requests and said system status variables being controlled and updated by said buffer manager; wherein said queues are controlled and organized by said buffer manager (12) such that requests for allocation of buffers from different users are dealt with in a parallel manner.
Claim 13
Dependent Claim
46 words
The method of claim 10, wherein a BCR (31.2) comprises a first field (UserData) for the physical address of the corresponding buffer (30.2), and a second field (next) for a pointer to another BCR (31.4) or a flag (nil) marking the end of a linked list.
Claim 14
Dependent Claim
120 words
The method of claim 11, wherein the following user-defined variables: locMax[i] being the maximum number of buffers assigned to a user i, privMin[i] being the number of private buffers assigned to a user i, and the following system status variable used[i] indicating the number of buffers being allocated by the user i, are employed by said buffer manager (12) such that a request of a user i, is granted if, either used[i] is less than privMin[i], or if free buffers, not being reserved or allocated by other users, are available and used[i] is less than locMax[i], and the variable used[i] is increased after the request has been granted, and the variable used[i] is decreased after a release of a buffer.
Claim 15
Dependent Claim
56 words
The method of claim 11, wherein said free buffers are organized such that the buffers appear to be stored in a stack by keeping the corresponding BCRs in said free-buffer linked list, and wherein a pointer (top) points to the BCR at the top of said free-buffer linked list and a flag (nil) marks its end.
Claim 16
Dependent Claim
78 words
The method of claim 12, wherein a free buffer is popped from said stack, by making the physical address of the free buffer, corresponding to the BCR and being pointed to by said pointer (top), available to the user, and changing said pointer (top) such that it points to the next BCR of the free-buffer linked list, by copying the address of the next BCR, being stored in said second field of the BCR, into said pointer (top).