Bandwidth-driven system, method, and computer program product for changing a refresh rate

A bandwidth-driven system, method, and computer program product are provided for changing a refresh rate of a display system. In use, a bandwidth associated with a display system is identified. To this end, a refresh rate of the display system may be changed for controlling the bandwidth.

FIELD OF THE INVENTION

The present invention relates to display systems, and more particularly to controlling a refresh rate of a display system

BACKGROUND

A display refresh rate refers to the number of times an image is re-displayed, or “refreshed” on a display in a given amount of time. A refresh rate is typically expressed in hertz (Hz), thus a refresh rate of 75 means the image is refreshed 75 times in a second, and so on. Unfortunately, each time a display must be refreshed, additional power is required. For instance, additional power may be required to fetch data from memory, drive pixels out of an interface, refresh each pixel of the display, etc.

Various systems have been developed for dynamically adjusting a display refresh rate to provide power savings. Such dynamic adjustment may be carried out as a function of various aspects of the display of content (e.g. the content itself, etc.). For instance, the display of a simple word processor application may change very little from frame to frame, whereas a video clip may change dramatically from frame to frame. To this end, various prior art systems have adjusted the refresh rate to a minimum rate needed to accommodate such frame to frame changes. In the example above, the system may, for instance, only need a refresh rate of 40 Hz while using the word processor application, but need a refresh rate of 60 Hz while viewing the video clip.

To date, however, the aforementioned systems have been limited to refresh rate adjustment based on software aspects of the associated system. There is thus a need for addressing these and/or other issues associated with the prior art.

SUMMARY

A bandwidth-driven system, method, and computer program product are provided for changing a refresh rate of a display system. In use, a bandwidth associated with a display system is identified. To this end, a refresh rate of the display system may be changed for controlling the bandwidth.

DETAILED DESCRIPTION

FIG. 1shows a method100for changing a refresh rate of a display system, in accordance with one embodiment. In various embodiments, the display system may include a liquid crystal display (LCD), digital light processing (DLP) display, liquid crystal on silicon (LCOS) display, plasma display, or any other display capable of refresh rate adjustment, for that matter. Still yet, the refresh rate may refer to the rate at which any sort of refresh of the display system occurs.

As shown, an aspect of hardware of the display system is identified. See operation102. In the context of the present description, such hardware may include any mechanical, magnetic, electronic, and/or electrical components making up the system. For example, in various embodiments, such hardware may include a central processor, a graphics processor, a network processor, a display, other hardware that exists in association with the display system (or component thereof), etc.

In one embodiment, the aforementioned aspect may include, for example, an indication as to which component of the hardware is being used. In the context of an embodiment involving a graphics processor, such component may include, but is not limited to a video engine, a two-dimensional engine, a three-dimensional engine, a pixel pipeline, and/or any other component, for that matter. Of course, such component may vary based on a type of processor (e.g. central processor, network processor, etc.) that is involved.

In another embodiment, the aspect of the hardware may include an indication as to which capabilities of the hardware are being used. Again, in the context of an embodiment involving a graphics processor, such capabilities may include an anti-aliasing capability, overlay capability, etc.

As an option, operation102may not necessarily be limited to an aspect of hardware. For example, an aspect of software associated with the hardware may also be identified. In various embodiments, the aspect of software may include an indication as to which software component is being used. Such software component may include, but is certainly not limited to at least a portion of an application program, a driver, an operating system, etc. In yet another embodiment, the foregoing aspect may include information about visual data before or after it has been drawn.

To this end, a refresh rate of the display system may be changed based on the identified aspect. See operation104. In one embodiment, the refresh rate of the display system may be changed for each of a plurality of sequential frames of display data (e.g. for each sequential frame, etc.). In other embodiments, the refresh rate of the display system may be changed for each of a plurality of groups of frames of display data. Of course, other embodiments are contemplated where the refresh rate is changed irrespective of the display of frames, etc.

Further, the refresh rate may be changed in any desired manner. Just by way of example, the refresh rate of the display system may be changed by changing an inactive time period. In the context of the present description, such inactive time period may include any time when the display system is not being actively driven. Additional information regarding various examples of inactive time periods will be set forth later in greater detail.

To this end, the refresh rate may be changed to reflect the specifics of the associated hardware. For instance, in some situations, it may make sense to decrease or increase the refresh rate in view of the operation of the hardware (as well as associated software, in some embodiments, etc.). Examples of such situations will be described later in more detail. Strictly as an option, the foregoing technique may be utilized for additional purposes such as reducing a power consumed by the display system, reducing an amount of heat generated by the display system, freeing up bandwidth, etc.

FIG. 2shows a system200for changing a refresh rate of a display system, in accordance with one embodiment. As an option, the present system200may be implemented to carry out the method100ofFIG. 1. Of course, however, the system200may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

As shown, various hardware is provided including a graphics processor202and a central processor204that are coupled to a display (not shown). As further shown, software206may be provided for execution in conjunction with the aforementioned hardware. Still yet, a driver208is provided for interfacing and controlling the graphics processor202. In use, the driver208is capable of controlling a refresh rate at which the graphics processor202drives the display, based on any aspect of the graphics processor202, central processor204, display, software206, etc.

To accomplish this, an application program interface (API)210may interface the driver208, as well as the graphics processor202, central processor204, display, software206, etc. By virtue of such configuration, THE API210is capable of monitoring the aforementioned hardware and/or software for the purpose of directing the driver208to change the refresh rate under certain conditions. As an option, the API210may be equipped to interface with the foregoing hardware and/or software components using any number of standard and/or proprietary protocols, so that various aspects thereof may be properly identified.

In one embodiment, the API210may define a plurality of profiles that have different associated refresh rates and are each triggered based on different criteria associated with the various hardware/software aspects. Such triggering criteria may include something as simple as whether some component and/or capability is enabled or exists. In other embodiments, the triggering criteria may involve simple or complex logic (e.g. Boolean, etc.), thresholds, etc. that take into account various software/hardware aspects, as parameters.

Table 1 illustrates a number of exemplary profiles that may be used by the API210. The contents of Table 1 may be stored using any data structure and, in various embodiments, may be user configurable or predefined. Of course, the profiles of Table 1 are set forth for illustrative purposes only and should not be construed as limiting in any manner whatsoever.

In one example of use, a situation may be identified where a two-dimensional engine of the graphics processor202is being used, while a three-dimensional engine of the graphics processor202is not being used. Such situation may exist, for example, when a word processing or presentation application program is running (as opposed to a gaming application, etc.). In such situation, a profile may be selected with a reduced refresh rate. Such reduced refresh rate may be less likely to be noticed by a user, since such programs are more likely to be static in nature.

In another example of use where the three-dimensional engine of the graphics processor202is identified as being used (e.g. by a gaming application, etc.), a different profile with a higher refresh rate may be selected to ensure that a sufficient level of display quality is maintained. A similar increase in refresh rate may be required when a video engine is enabled (e.g. for playing a DVD, etc.). By choosing profiles in such manner, various benefits (e.g. power/bandwidth savings, etc.) may be incurred without significant expense in terms of user experience, in situations that permit it.

FIG. 3shows a timing diagram300illustrating various parameters that may be controlled for changing a refresh rate, in accordance with another embodiment. As an option, the present timing diagram300may reflect various parameters that may be changed in conjunction with the functionality/architecture ofFIGS. 1-2. Again, the aforementioned definitions apply during the present description.

As shown, an active time period302is provided during which pixels are being rendered. Further, an inactive time period304is also provided during which pixels are not rendered. Such inactive time period304may include a first border period TBwhen a first border (if present) is rendered, a front porch blanking period Tcassociated with a front porch, a blanking period TB, a back porch blanking period TEassociated with a back porch, and a second border period TFwhen a second border (if present) is rendered.

It should be noted that, depending on whether the first and second border are active or inactive, the associated time periods may be considered part of the active time period302or the inactive time period304, respectively. Still yet, the timing diagram300is shown to be generalized so as to apply to both horizontal and vertical timing. For example, when applied to horizontal timing, each pulse shown inFIG. 3may prompt the rendering of a line on a display. On the other hand, when applied to vertical timing, each pulse shown inFIG. 3may prompt the rendering of a frame on the display.

In use, the refresh rate of the display be changed by altering one or more components of the inactive time period304. Specifically, any one or more of the following components may be increased or decreased accordingly: the first border period TB, front porch blanking period TC, blanking period TD, back porch blanking period TE, and second border period TF.

FIG. 4shows a method400for changing a refresh rate of a display system for the specific purpose of managing system bandwidth, in accordance with another embodiment. As an option, the present method400may or may not be implemented in the context of the functionality and architecture ofFIGS. 1-3. Of course, however, the method400may be carried out in any desired environment. Yet again, it should also be noted that the aforementioned definitions may apply during the present description.

As shown, a bandwidth associated with a display system is identified. See operation402. In the context of the present description, the display system may include any component coupled to a display and/or the display itself. Further, the bandwidth may refer to any bandwidth that is capable of being impacted by the use of the foregoing display.

For instance, the bandwidth may be associated with a graphics-subsystem of the display system, a central-subsystem of the display system, etc. In various embodiments, the bandwidth may be associated with communication between a graphics processor of the graphics-subsystem and display memory; communication between the central-subsystem and the graphics-subsystem, and system memory, etc. Examples of such bandwidth will be set forth during the description ofFIG. 5.

In use, a refresh rate of the display system may be changed for controlling the bandwidth. Note operation404. Of course, the refresh rate may be changed using any desired techniques including, but not limited to those discussed hereinabove during the description ofFIGS. 1-3. By this feature, the bandwidth available to the display system may be increased or decreased by changing the refresh rate, since the refresh rate itself impacts such bandwidth.

FIG. 5shows a display system500for managing system bandwidth by controlling a display system refresh rate, in accordance with yet another embodiment. As an option, the present system500may be employ the functionality set forth during the description ofFIGS. 1-4. Of course, however, the system500may be implemented in any desired environment. Again, the aforementioned definitions may apply during the present description.

As shown, the display system500includes a central-subsystem502including a CPU, etc. coupled to a north bridge sub-system504which, in turn, is coupled to a plurality of other devices506. Further coupled to the north bridge sub-system504is system memory508for providing storage capabilities to the central-subsystem502, as well as a graphics sub-system510including a graphics processor, etc.

As further shown, the graphics sub-system510is separately coupled to the north bridge sub-system504. In one embodiment, such coupling may be made via a PCIe bus. Still yet, video memory512is coupled to the graphics sub-system510for providing allocated storage capabilities, for use when driving a display514.

In use, the graphics sub-system510may utilize a first bandwidth associated with a connection516between the graphics sub-system510and the video memory512. For example, texture information, etc. may be stored and/or received over the foregoing connection516. Further, the graphics sub-system510may also utilize a second bandwidth associated with a connection518between the graphics sub-system510and the system memory508via the north bridge sub-system504, PCIe bus, etc. For instance, the system memory508may serve as a frame buffer or the like for fetching pixels, etc. In use, such second bandwidth may be shared with the central-subsystem502, the other devices506, etc.

As mentioned earlier, such first and/or second bandwidth may be controlled by changing a refresh rate with which the graphics sub-system510drives the display514. Specifically, an increase in such refresh rate may result in an increase in the portion of the available first and/or second bandwidth that is used by the graphics sub-system510/display514. Similarly, a decrease in such refresh rate may result in a decrease in the portion of the available first and/or second bandwidth that is used by the graphics sub-system510/display514. To this end, a portion of the first and/or second bandwidth that is available to other components of the display system500may be controlled by changing the refresh rate. More information regarding one way that this may be accomplished will now be set forth.

FIG. 6shows a method600for changing a refresh rate of a display system for the specific purpose of managing system bandwidth, in accordance with another embodiment. As an option, the present method600may or may not be carried out in the context of the functionality and architecture ofFIGS. 1-5. Of course, however, the method600may be carried out in any desired environment. Yet again, it should also be noted that the aforementioned definitions may apply during the present description.

As shown, a current bandwidth required by a system may be identified. See operation602. This may be accomplished, for example, by simply monitoring an amount of used bandwidth associated with one or more connections.

It is then determined whether more bandwidth is needed, as indicated in decision604. Such determination may be made by comparing the bandwidth identified in operation602with a predetermined or user-configured threshold. Such threshold may include, for example, a maximum amount of bandwidth that can be accommodated by a given connection(s). For example, if the bandwidth identified in operation602comes within a predetermined amount of (or exceeds) the maximum amount, it may be determined that more bandwidth is required.

If it is determined in decision604that more bandwidth is required, a refresh rate associated with a display may be decreased. See operation606. By decreasing such refresh rate, a graphics processor may require less communication with associated memory which, in turn, may free up bandwidth and thus make it available for other system components.

Similar to decision604, it may be determined whether additional bandwidth is available, as indicated in decision608. Again, such determination may be made by comparing the bandwidth identified in operation602with a predetermined or user-configured threshold. Such threshold may include, for example, a predetermined threshold that indicates that a significant amount of bandwidth is available over a given connection(s). For example, if the bandwidth identified in operation602falls below such amount, it may be determined that a surplus of bandwidth exists (which may be made available to the display system, for example). In another embodiment, decision608may be omitted in favor of a single decision604and associated threshold.

If it is determined in decision608that additional bandwidth is available, a refresh rate associated with a display may be increased. See operation610. By increasing such refresh rate, a graphics processor may require more communication with associated memory, etc. which, in turn, may use the available bandwidth.

It should be noted that, in other embodiments, additional logic may be incorporated with the decisions604and608. For example, while such decisions604and608may indicate whether additional bandwidth is required or available, the ultimate decision to change the refresh rate may be further dependent on other factors such as various aspects associated with hardware and/or software of the display system (seeFIGS. 1-3).

In one embodiment, such hardware/software aspects may indicate that, while bandwidth is required, it can not be allocated away from a graphics sub-system, since it is currently needed. This situation may arise, for example, if a gaming application is currently running that requires a bandwidth-intensive three-dimensional engine of a graphics processor. On other hand, the hardware/software aspects may indicate that, while bandwidth is available, it need not be allocated to the graphics sub-system, since it is not currently needed.

FIG. 7is a graph700showing an exemplary relationship between a refresh rate and a bandwidth, in accordance with one embodiment. As shown, a higher refresh rate T1is shown to require additional bandwidth, while a lower refresh rate T2is shown to require less bandwidth. As further shown, one or more various thresholds702may indicate a maximum available bandwidth, etc. Thus, a particular refresh rate may be selected based on whether such threshold is met, etc.

FIG. 8is a graph800showing bandwidth802over time, in accordance with one embodiment. As shown, a maximum threshold804may reflect a total available bandwidth available to all system components including a graphics sub-system. Further shown is a portion of bandwidth806that is required by the graphics sub-system for an optimal refresh rate. In situations where current bandwidth usage is approaching the maximum threshold804, the portion of bandwidth806may be reduced (by reducing a refresh rate), thus freeing up bandwidth resources for other system components, etc.

FIG. 9illustrates an exemplary system900in which the various architecture and/or functionality of the previous embodiments may be implemented. As shown, a system900is provided including at least one host processor901which is connected to a communication bus902. The system900also includes a main memory904. Control logic (software) and data are stored in the main memory904which may take the form of random access memory (RAM).

The system900also includes a graphics processor906and a display908, i.e. a computer monitor. In one embodiment, the graphics processor906may include a plurality of shader modules, a rasterization module, etc. Each of the foregoing modules may even be situated on a single semiconductor platform to form a graphics processing unit (GPU).

The system900may also include a secondary storage910. The secondary storage910includes, for example, a hard disk drive and/or a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, etc. The removable storage drive reads from and/or writes to a removable storage unit in a well known manner.

Computer programs, or computer control logic algorithms, may be stored in the main memory904and/or the secondary storage910. Such computer programs, when executed, enable the system900to perform various functions. Memory904, storage910and/or any other storage are possible examples of computer-readable media.

In one embodiment, the architecture and/or functionality of the various previous figures may be implemented in the context of the host processor901, graphics processor906, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the host processor901and the graphics processor906, a chipset (i.e. a group of integrated circuits designed to work and sold as a unit for performing related functions, etc.), and/or any other integrated circuit for that matter.

Further, while not shown, the system900may be coupled to a network [e.g. a telecommunications network, local area network (LAN), wireless network, wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc.) for communication purposes.