The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Dec. 14, 2004
Filed:
Jan. 07, 2000
Qingming Ma, Santa Clara, CA (US);
Saravanan Agasaveeran, Sunnyvale, CA (US);
Satish Gannu, Bangalore, IN;
Cisco Technology, Inc., San Jose, CA (US);
Abstract
The invention is directed to techniques for moving data elements within a data communications device which prioritizes handling transmit interrupts over handling receive interrupts. Preferably, while attending to transmit interrupts, the device gives priority to the “hungriest” interfaces. In one arrangement, the device includes multiple network interfaces which are capable of transmitting and receiving data elements with a network, and a controller, coupled to the interfaces. The controller is configured to perform a method comprising the steps of: assigning weights to the interfaces based on interface transmission capacities and/or the number of data elements ready for transmission through the interfaces; determining which of the interfaces indicates readiness to transmit a data element to the network and which of the interfaces indicates receipt of a data element from the network; exclusively running, for each interface indicating readiness to transmit a data element to the network, a transmit interrupt handler to load that interface with a data element for transmission if such a data element is available for transmission within the data communications device (the handling order of the interfaces being determined by the weights so that the “hungriest” interfaces are handled first); and after the step of exclusively running transmit interrupt handlers, running, for at least one interface which indicates receipt of a data element from the network, a receive interrupt handler to process that data element and restricting the amount of time consumed running the receive interrupt handlers before handling transmit interrupts again. Since the device prioritizes handling transmit interrupts over receive interrupts in a weighted preferential manner, the device handles transmit interrupts as early as possible to move data elements quickly to the interfaces. Accordingly, it is less likely that interfaces will “starve” for data elements.