Adaptive polling system by generating sequence of polling signals whose magnitudes are functionally related to the occurrence of the busy signal
First Claim
1. A method for controlling a peripheral device in a computer system having associated therewith ready signals and busy signals comprising:
- generating a sequence of first polling signals defining a corresponding sequence of first intervals of decreasing magnitudes whose magnitudes are functionally related to frequency of occurrence of said busy signals, wherein a given one of said first intervals being determined from a running average of preceding ones of said first intervals;
executing status checks of said peripheral device with said first polling signals;
generating a sequence of second polling signals defining a corresponding sequence of second intervals of increasing magnitudes occurring after said first intervals, and wherein a given one of said second intervals is determined from a running average of preceding ones of said second intervals, said increasing magnitudes being functionally related to frequency of occurrence of said busy signals;
executing status checks of said peripheral device with said second polling signals;
generating a sequence of third polling signals defining a corresponding sequence of third intervals of constant magnitude occurring between said first and said third intervals functionally related to frequency of occurrence of said busy signals; and
executing status checks of said peripheral with said third polling signals.
1 Assignment
0 Petitions
Accused Products
Abstract
System timers set by a central processing unit (CPU) provide a variable wait time functionally adapted and related to peripheral device availability. Wait time is iteratively and dynamically adjusted to more closely match peripheral performance to the system, thereby reducing CPU load and enhancing data throughput, with the data output routine executing at a process level rather than an interrupt level.
In a preferred embodiment, the prior wait time is cumulated during which the peripheral is unavailable for data in order to form a running average delay utilized as a starting point for a next data input. Large delays are weighted to avoid skewing average wait time too quickly for infrequent longer events. Data throughput is thereby increased, avoiding unnecessary dormant periods with no output from the system, while, at the same time, CPU loading is reduced by avoiding excessive system polling.
103 Citations
10 Claims
-
1. A method for controlling a peripheral device in a computer system having associated therewith ready signals and busy signals comprising:
-
generating a sequence of first polling signals defining a corresponding sequence of first intervals of decreasing magnitudes whose magnitudes are functionally related to frequency of occurrence of said busy signals, wherein a given one of said first intervals being determined from a running average of preceding ones of said first intervals; executing status checks of said peripheral device with said first polling signals; generating a sequence of second polling signals defining a corresponding sequence of second intervals of increasing magnitudes occurring after said first intervals, and wherein a given one of said second intervals is determined from a running average of preceding ones of said second intervals, said increasing magnitudes being functionally related to frequency of occurrence of said busy signals; executing status checks of said peripheral device with said second polling signals; generating a sequence of third polling signals defining a corresponding sequence of third intervals of constant magnitude occurring between said first and said third intervals functionally related to frequency of occurrence of said busy signals; and executing status checks of said peripheral with said third polling signals. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for efficient management of input-output in a computer system including a peripheral, comprising:
-
generating polling signals; checking busy status of said peripheral; monitoring prior delays associated with said busy status in response to said polling signals; and adaptively generating subsequent polling signals at intervals functionally related to said monitoring; and wherein said monitoring comprises detecting whether said peripheral device is in said busy status, and A. when said busy status is detected, A(1) updating statistical delay data; A(2) computing a delay value; and A(3) restarting a timer; B. when said busy status is not detected, B(1) outputting data to said device; B(2) detecting whether additional said data is available for output; B(3) when said additional data is detected as available for output, determining whether a prior delay associated with said busy status is less than a threshold; B(3)a executing .step A if said prior delay is not less than said threshold; and B(3)b executing step B(5) if said prior delay is less than said threshold; B(4) when said additional data is detected as not available for output executing step B(5); and B(5) re-activating a process executing on said system in response to step B(3)b or step B(4). - View Dependent Claims (9)
-
-
10. A system for controlling a peripheral device in a computer system comprising:
-
means for generating a sequence of first polling signals defining a corresponding sequence of first intervals of decreasing magnitudes whose magnitudes are functionally related to frequency of occurrence of said busy signals, wherein a given one of said first intervals being determined from a running average of preceding ones of said first intervals; means for executing status checks of said peripheral device with said first polling signals; means for generating a sequence of second polling signals defining a corresponding sequence of second intervals occurring after said first intervals, said second intervals being of increasing magnitudes whose magnitudes are functionally related to frequency of occurrence of said busy signals; means for executing status checks of said peripheral device with said second polling signals; wherein a given one of said second intervals is determined from an average of preceding ones of said second intervals; means for generating a sequence of third polling signals defining a corresponding sequence of third intervals of constant magnitude occurring between said first and said third intervals whose magnitudes are functionally related to frequency of occurrence of said busy signals; and means for executing status checks of said peripheral with said third polling signals.
-
Specification