Method of improving over protocol-required scheduling tables while maintaining same
First Claim
1. A data processing device capable of servicing plural data streams and comprising:
- (a) a first scheduling table for storing first scheduling variables defining relative frequencies at which competing data streams are to be serviced by a data servicing resource, the first scheduling table having a predefined first data structure;
(b) a second scheduling table for storing second scheduling variables that are derived from the first scheduling variables, said second scheduling table having a second data structure that is substantially different from the predefined first data structure; and
(c) a selection engine that is responsive to the second scheduling variables stored in the second scheduling table and that operates to offer service opportunities to plural data stream sources in a manner which at least roughly mimics a service-offering schedule defined by the first scheduling variables of the first scheduling table.
8 Assignments
0 Petitions
Accused Products
Abstract
Public scheduling tables of PCI-Express network devices are remapped into private scheduling tables having different data structures. The private scheduling tables enable the construction of parallel-processing selection engines (ones with look-ahead selection capabilities) that are more compact in size than would have been possible with use of the data structures of the public scheduling tables. In one embodiment, residual weight values are re-shuffled so as to move each winner of an arbitration round away from a winner'"'"'s proximity bar by a distance corresponding to an initial weight assigned to the winner. The initial weight can be proportional to the reciprocal of a bandwidth allocation assigned to each data source.
-
Citations
42 Claims
-
1. A data processing device capable of servicing plural data streams and comprising:
-
(a) a first scheduling table for storing first scheduling variables defining relative frequencies at which competing data streams are to be serviced by a data servicing resource, the first scheduling table having a predefined first data structure; (b) a second scheduling table for storing second scheduling variables that are derived from the first scheduling variables, said second scheduling table having a second data structure that is substantially different from the predefined first data structure; and (c) a selection engine that is responsive to the second scheduling variables stored in the second scheduling table and that operates to offer service opportunities to plural data stream sources in a manner which at least roughly mimics a service-offering schedule defined by the first scheduling variables of the first scheduling table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for selectively dispatching data from plural sources for processing by a shared resource, the method comprising:
-
(a) maintaining a first dispatch scheduling table that is publicly accessible to at least a predefined group of schedule managers and/or overseer devices; (b) maintaining a second dispatch scheduling table that is not publicly accessible to at least one member of said predefined group of schedule managers and/or overseer devices, where the second dispatch scheduling table has a substantially different data structure than that of the first dispatch scheduling table; and (c) using the second dispatch scheduling table to automatically select data from respective ones of the plural sources for successive processing by the shared resource, wherein said using of the second dispatch scheduling table is such as to create an appearance of approximate adherence to a dispatch schedule defined by the first dispatch scheduling table. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of controlling selective dispatching of data from plural sources to a shared resource, the method comprising:
-
(a) maintaining a first dispatch scheduling table that is publicly accessible to at least a predefined group of schedule managers and/or overseer devices; (b) maintaining a second dispatch scheduling table that is not publicly accessible to at least one member of said predefined group of schedule managers and/or overseer devices, where the second dispatch scheduling table has a substantially different data structure than that of the first dispatch scheduling table; (c) using the second dispatch scheduling table to automatically select data from respective ones of the plural sources for successive processing by the shared resource, wherein said using of the second dispatch scheduling table is such as to normally create an appearance of approximate adherence to a dispatch schedule defined by the first dispatch scheduling table; and (d) temporarily making modifications to the second dispatch scheduling table without making corresponding changes to the first dispatch scheduling table.
-
-
37. An apparatus comprising:
-
(a) re-mapping means for remapping a publicly-maintained, first scheduling table that has a first data structure to thereby generate a corresponding and privately-maintained, second scheduling table that has a different second data structure, where the first and second scheduling tables are used for controlling traffic flow in a network; and (b) a history-weighted, service offering means for opportunistically offering dispatch opportunities to traffic from different data sources of a local network device based on initial weights assigned to the data sources and based on prior service offerings made to those data sources. - View Dependent Claims (38, 39, 40)
-
-
41. A manufactured instructing signal for use in a networked system having plural public scheduling tables for controlling traffic flow in the networked system, having plural private scheduling tables for controlling traffic flow in the networked system, and having plural re-mapping engines for converting scheduling data stored in the public scheduling tables into corresponding scheduling data to be stored in corresponding ones of the private scheduling tables, said manufactured instructing signal comprising:
code directed to a prespecified and instructable re-mapping engine for defining a re-mapping function to be carried out by the instructable re-mapping engine.
-
42. A manufactured instructing signal for use in a networked system having plural public scheduling tables for controlling traffic flow in the networked system, having plural private scheduling tables for controlling traffic flow in the networked system, having plural re-mapping engines for converting scheduling data stored in the public scheduling tables into corresponding scheduling data to be stored in corresponding ones of the private scheduling tables, and having plural selection engines interacting with corresponding ones of the private scheduling tables, said manufactured instructing signal comprising:
code directed to a prespecified and instructable selection engine for defining an interactive function to be carried out by the instructable selection engine on its corresponding private scheduling table.
Specification