Asynchronous transfer mode cell processing system with scoreboard scheduling
First Claim
1. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
- generating a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group indicates whether or not the corresponding cell time slot is available for transmission;
generating a second group of information elements, each element in the second group of information elements corresponding to a block of information elements in the first group and indicative of whether the corresponding block of information elements includes at least one information element indicative of an available cell time slot,searching the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified; and
scheduling the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
6 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for processing cells in an asynchronous transfer mode (ATM) communication system. A group of bits comprises a primary scoreboard indicative of the scheduling status for cell time slots in a periodic container of cells, with each bit indicating the availability of a corresponding cell time slot. A connection identifier (ID) table is maintained with each location in the table corresponding to one of the cell time slots and thus a single primary scoreboard bit. A cell scheduling instruction specifies a connection ID for a virtual connection on an ATM transmission link. A processor searches the primary scoreboard until a bit corresponding to an available cell time slot is located, reserves the located cell slot by setting the corresponding bit, and stores the connection ID in the corresponding location in the connection ID table. A cell servicing instruction specifies an address in the connection ID table. The processor receives the servicing instruction, retrieves the corresponding primary scoreboard bit, constructs or retrieves a cell for transmission in the slot if the bit was set, and then clears the bit so the slot is available for subsequent scheduling requests. A secondary scoreboard may be used to bound the primary scoreboard search time. The secondary scoreboard includes a bit for each block of primary scoreboard bits. The bit indicates whether the primary scoreboard block includes an available time slot. Portions of the primary scoreboard with no available slots thus need not be searched. Separate tunnel control primary scoreboards may be used in conjunction with a master primary scoreboard to support virtual path tunneling.
93 Citations
44 Claims
-
1. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group indicates whether or not the corresponding cell time slot is available for transmission; generating a second group of information elements, each element in the second group of information elements corresponding to a block of information elements in the first group and indicative of whether the corresponding block of information elements includes at least one information element indicative of an available cell time slot, searching the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified; and scheduling the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled. - View Dependent Claims (2)
-
-
3. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method of comprising the steps of:
-
generating a first group of information elements, with each element in the first group representing a time slot, wherein the value of a given element in the first group indicates whether or not the corresponding cell time slot is available for transmission; reserving at least one cell time slot in a transmission link for a virtual path connection; setting an information element in the first group of information elements corresponding to the cell time slot reserved for the virtual path connection, such that said information elements indicate the reserved cell time slot is unavailable; and generating a tunnel control group of information elements, with each information element in the tunnel control group corresponding to a cell time slot in the transmission link, each of the tunnel control group information elements corresponding to a slot or slots reserved for the virtual path connection, the information elements set in a first manner indicating an available time slot, and all other tunnel control group information elements set in a second, opposite manner indicating unavailable time slots. - View Dependent Claims (4)
-
-
5. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating a first group of bits, with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; generating a second group of bits, with each bit in the second group of bits corresponding to a block of bits in the first group of bits and indicative of whether the corresponding block of bits includes at least one bit indicative of an available cell time slot; and utilizing the second group of bits to determine a block of the first group of bits to be searched in response to a cell scheduling request of a given virtual connection in the ATM system.
-
-
6. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a second group of memory locations for storing a second group of information elements, each element in the second group of information elements corresponding to a block of information elements in the first group of elements and indicative of whether the corresponding block of elements includes at least one bit indicative of an available cell time slot; and a processor operative to search the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled. - View Dependent Claims (7, 8)
-
-
9. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group indicates whether or not the corresponding cell time slot is available for transmission; receiving a scheduling instruction specifying a connection identifier for a given virtual connection and an address in a connection identifier table corresponding to a target time slot; converting the connection identifier table address into an address for a bit in the first group of bits corresponding to the target time slot; retrieving a portion of the first group of bits, the portion of the first group of bits including the bit corresponding to the target time slot and at least one additional bit corresponding to a subsequent cell time slot; searching the portion of the first group of bits, in response to the scheduling instruction of the given virtual connection in the ATM system, until a bit corresponding to an available time slot is identified; and scheduling the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled. - View Dependent Claims (10)
-
-
11. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group indicates whether or not the corresponding cell time slot is available for transmission; receiving a servicing instruction specifying an address in a connection identifier table; retrieving from the connection identifier table a connection identifier corresponding to the specified address and identifying a virtual connection in the ATM system; retrieving from a memory storing the first group of bits a bit corresponding to the specified address in the connection identifier table; directing transmission of a cell for the virtual connection if the retrieved bit indicates that the corresponding cell time slot has been scheduled for the virtual connection; and altering the corresponding bit to indicate that the cell time slot has been serviced and is therefore again available for subsequent scheduling requests. - View Dependent Claims (12, 13)
-
-
14. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group indicates whether or not the corresponding cell time slot is available for transmission; retrieving a first block of bits within the first group of bits in response to a scheduling instruction specifying a connection identifier of a virtual connection and a target cell slot, the first block of bits including a bit corresponding to the target cell time slot; searching through the retrieved first block to locate a bit indicative of an available cell time slot at or after the bit corresponding to the target cell time slot; if an available cell time slot is located, determining if there are any other bits in the first block of bits indicative of other available cell time slots; if there are no other bits in the first block indicative of other available cell time slots, altering a bit in a second group of bits to indicate that the first block of the first group includes only bits corresponding to unavailable cell time slots, the second group of bits including a bit for each of a plurality of blocks of bits in the first group of bits, the second group of bits indicative of whether the corresponding block of first group bits includes a bit indicative of an available cell time slot. - View Dependent Claims (15, 16)
-
-
17. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
providing multiple groups of bits, with each group of bits indicating a schedule status of a portion of traffic for a transmission link of the ATM system; utilizing a first group of bits of the multiple groups to reflect schedule status regarding high priority traffic on the transmission link; generating a second group of bits of the multiple groups to be indicative of the schedule status of lower priority traffic on the transmission link; searching the first group of bits, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at a bit corresponding to a target time slot and proceeding through the first group of elements until a bit corresponding to an available time slot is identified; and scheduling the available time slot for use by the virtual connection by altering the identified bit to indicate that the available time slot has been scheduled.
-
-
18. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a processor operative to receive a scheduling instruction specifying a connection identifier for a virtual connection and an address in a connection identifier table corresponding to a target time slot, to convert the connection identifier table address into an address for a bit in the first group of bits corresponding to the target time slot, and to retrieve from memory a portion of the first group of bits including the bit corresponding to the target time slot and at least one additional bit corresponding to a subsequent cell time slot; the processor further being operative to search the first group of bits beginning at a bit corresponding to the target time slot and proceeding through the first group of bits until a bit corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified bit to indicate that the available time slot has been scheduled.
-
-
19. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; and a processor operative to receive a servicing instruction specifying an address in a connection identifier table, to retrieve from the connection identifier table a connection identifier corresponding to the specified address and identifying a virtual connection in the ATM system, to retrieve from a memory storing the first group of bits a bit corresponding to the specified address in the connection identifier table, to direct transmission of a cell for the virtual connection if the retrieved bit indicates that the corresponding cell time slot has been scheduled for the virtual connection, and to alter the corresponding bit to indicate that the cell time slot has been serviced and is therefore again available for subsequent scheduling requests. - View Dependent Claims (20, 21)
-
-
22. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of bits with each bit in the first group representing a cell time slot, wherein the value of a given bit in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; and a processor operative to retrieve a first block of bits within the first group of bits in response to a scheduling instruction specifying a connection identifier of a virtal connection and a target cell slot, the first block of bits including a bit corresponding to a target cell time slot, to search through the retrieved first block to locate a bit indicative of an available cell time slot at or after the bit corresponding to the target cell time slot, if an available cell time slot is located, to determine if there are any other bits in the first block of bits indicative of other available cell time slots, and if there are no other bits in the first block indicative of other available cell time slots, altering a bit in a second group of bits to indicate that the first block of the first group includes only bits corresponding to unavailable cell time slots, the second group of bits including a bit for each of a plurality of blocks of bits in the first group of bits, the second group of bits indicative of whether the corresponding block of first group of bits includes a bit indicative of an available cell time slot. - View Dependent Claims (23, 24)
-
-
25. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating multiple groups of information elements with each group of information elements indicating a schedule status of a group of virtual connections having a given cell rate; each element in each group representing a cell time slot, wherein the value of a given element in a group indicates whether or not the corresponding cell time slot is available for transmission; searching a first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified; and scheduling the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
26. A method of allocating cells in an asynchronous transfer mode (ATM) communication system, the method comprising the steps of:
-
generating multiple groups of information elements with each group of information elements indicating a schedule status of a separate transmission link in a system supporting multiple transmission lines; each element in each group representing a cell time slot, wherein the value of a given element in each group indicates whether or not the corresponding cell time slot is available for transmission; searching a first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified; and scheduling the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
27. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a second group of memory locations for storing a tunnel control group of information elements, with each element in the tunnel control group corresponding to a cell time slot, with each of the tunnel control information group elements corresponding to a slot reserved for the virtual path connection, information elements set in a first manner indicating an available time slot, and all other tunnel control group bits set in a second manner indicating unavailable time slots; and a processor operative to search the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
28. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a plurality of additional groups of memory locations for storing a corresponding plurality of additional groups of information elements, with each group of elements indicating a schedule status of a portion of traffic for the transmission link of the ATM system; and a processor operative to search the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
29. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a plurality of additional groups of memory locations for storing a corresponding plurality of additional groups of information elements, with each group of elements indicating a schedule status of a group of virtual connections having a given cell rate; and a processor operative to search the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
30. An apparatus for use in allocating cells in an asynchronous transfer mode (ATM) communication system, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing a cell time slot, wherein the value of a given element in the first group of bits indicates whether or not the corresponding cell time slot is available for transmission; a plurality of additional groups of memory locations for storing a corresponding plurality of additional groups of information elements, with each group of elements indicating a schedule status of a separate transmission link in a system supporting multiple transmission links; and a processor operative to search the first group of information elements, in response to a cell scheduling request of a given virtual connection in the ATM system, beginning at an element corresponding to a target time slot and proceeding through the first group of elements until an element corresponding to an available time slot is identified, and to schedule the available time slot for use by the virtual connection by altering the identified element to indicate that the available time slot has been scheduled.
-
-
31. A method of allocating units of a resource, the method comprising the steps of:
-
generating a first group of information elements with each element in the first group representing one of the resource units, wherein the value of a given element in the first group indicates whether or not the corresponding resource unit is available; generating a second group of information elements, each element in the second group of information elements corresponding to a block of information elements in the first group, each information element of the second group being indicative of whether the corresponding block of information elements of the first group includes at least one information element indicative of an available resource unit, searching the first group of information elements, in response to request, beginning at an element corresponding to a target resource unit and proceeding through the first group of elements until an element corresponding to an available resource unit is identified; and scheduling the available resource unit by altering the identified element to indicate that the available resource unit has been scheduled. - View Dependent Claims (32, 33, 34, 35, 36, 37)
-
-
38. An apparatus for use in allocating units of a resource, the apparatus comprising:
-
a first group of memory locations for storing a first group of information elements with each element in the first group representing one of the resource units, wherein the value of a given element in the first group of bits indicates whether or not the corresponding resource unit is available; a second group of memory locations for storing a second group of information elements, each element in the second group of information elements corresponding to a block of information elements in the first group of elements, and each information element of the second group being indicative of whether the corresponding block of elements of the first group includes at least one bit indicative of an available resource unit; and a processor operative to search the first group of information elements, in response to a request, beginning at an element corresponding to a target resource unit and proceeding through the first group of elements until an element corresponding to an available resource unit is identified, and to schedule the available resource unit by altering the identified element to indicate that the available resource unit has been scheduled. - View Dependent Claims (39, 40, 41, 42, 43, 44)
-
Specification