Maintaining entity order with gate managers
AssigneeCisco Technology, Inc.
InventorsRobert E. Jeter, Jr., John A. Chanak
Life of this patent
Estimating the term…
Abstract
A technique for maintaining order among a plurality of entities contained in an intermediate node by ensuring orderly access to a resource shared by the entities. A request is generated to access the resource. The request is placed on a queue associated with an entity. The request eventually reaches the head of the queue. An identifier generated by a gate manager is compared with an identifier associated with the queue to determine if they match. If so, the request is transferred to the resource, which processes the request. Results acquired from the resource (if any) are transferred to the entity.
Claims21
A method for maintaining order among a plurality of entities contained in an intermediate node, the intermediate node having a plurality of gate managers, the method comprising the steps of:
- generating a request to access a resource shared by the entities, wherein the request includes a gate manager identifier field for holding a value that specifies a gate manager of the plurality of gate managers;
- placing the request on a queue associated with an entity;
- examining the gate manager identifier field to determine if it specifies a gate manager;
- and
- if not, transferring the request to the resource;
- otherwise, determining if an identifier generated by one of the gate managers matches an identifier associated with the queue;
- and
- if so, transferring the request to the resource.
A method for maintaining order among a plurality of entities contained in an intermediate node, comprising the steps of:
- generating a request to access a resource shared by the entities;
- placing the request on a queue associated with an entity;
- determining if an identifier generated by a gate manager matches an identifier associated with the queue;
- and
- if so, transferring the request to the resource;
- blocking the entity from further execution;
- acquiring results from the resource;
- transferring the results to the entity;
- and
- unblocking the entity from further execution after the results are transferred to the entity.
An apparatus comprising:
- a shared resource;
- a plurality of entities configured to generate requests to access the shared resource;
- a plurality of queues wherein each queue is associated with a particular entity and is configured to hold requests generate by the associated entity;
- a gate manager configured to generate an identifier (ID) representing an entity in the plurality of entities;
- and
- a resource controller configured to select a queue from the plurality of queues, determine if a request at the head of the selected queue specifies the gate manager, and, if not, transfer the request to the shared resource, and if so, determine if an ID associated with the queue matches the ID generated by the gate manager and, if so, transfer the request at the head of the selected queue to the shared resource.
An intermediate node comprising:
- means for generating a request to access a resource shared by a plurality of entities;
- means for placing the request on a queue associated with an entity of the plurality of entities;
- means for determining if an identifier (ID) generated by a gate manager matches an ID associated with the queue;
- means for transferring the request to the resource if the ID generated by the gate manager matches the ID associated with the queue;
- means for blocking the entity from further execution;
- means for acquiring results from the resource;
- means for transferring the results to the entity;
- means for unblocking the entity from further execution after the results are transferred to the entity.
A computer readable medium comprising computer executable instructions for execution in a processor for:
- generating a request to access a resource shared by a plurality entities, wherein the request includes a gate manager identifier field for holding a value that specifies a gate manager of a plurality of gate managers;
- placing the request on a queue associated with an entity;
- examining the gate manager identifier field to determine if it specifies a gate manager;
- and
- if not, transferring the request to the resource;
- otherwise, determining if an entity represented by an identifier generated by one of the gate managers matches the entity associated with the queue;
- and
- if so, transferring the request to the resource.
A method for maintaining order among a plurality of entities contained in an intermediate node, the method comprising the steps of:
- generating a request to access a resource shared by the entities;
- placing the request on a queue associated with an entity;
- examining the request to determine if the request specifies a gate manager, and, if not transferring the request to the resource, and if a gate manager is specified, generating a identifier by the specified gate manager, wherein the identifier represents an entity allowed access to the shared resource, and comparing the identifier generated by the specified gate manager to the identifier associated with the queue, and, if they match transferring the request to the resource.
An intermediate node comprising:
- means for generating a request to access a resource shared by a plurality of entities;
- means for placing the request on a queue associated with an entity;
- means for examining the request to determine if the request specifies a gate manager, and, if not, transferring the request to the resource;
- means for, if a gate manager is specified, generating a identifier by the specified gate manager, wherein the identifier represents an entity allowed access to the shared resource, and comparing the identifier generated by the specified gate manager to the identifier associated with the queue, and if they match, transferring the request to the resource.
Dependencies are inferred from the claim text.