Alpha channel power savings in graphics unit

A graphics processing circuit and method for power savings in the same is disclosed. In one embodiment, a graphics processing circuit includes a number of channels. The number of channels includes a number of color component channels that are each configured to process color components of pixel values of an incoming frame of graphics information. The number of channels also includes an alpha scaling channel configured to process alpha values (indicative of a level of transparency) for the incoming and/or outgoing frames. The graphics processing circuit also includes a control circuit. The control circuit is configured to place the alpha scaling channel into a low-power state responsive to determining that at least one of the incoming or outgoing frames does not include alpha values.

BACKGROUND

Field of the Invention

This disclosure relates to integrated circuits, and more particularly, to power savings in integrated circuits having graphics processing circuitry.

Description of the Related Art

In recent years, the number and type of devices that can process and display complex graphics has significantly increased. Processing and displaying high-resolution graphics were once limited to higher-end computer systems. In recent years, smaller, portable devices have incorporated the capability to process and display high resolution graphics. Such devices include (but are not limited to) smart phones and tablet computers.

In addition to the incorporation of high-resolution graphics processing capability in a wide variety of platforms, a large number of different graphics formats have proliferated. The various graphics formats may each have different processing requirements. Many such graphics formats include a number of different streams for processing colors (e.g., red, green, and blue). Some graphics formats may also include what is known as alpha data. The alpha data may indicate a level of transparency for information to be displayed, ranging from completely transparent to completely opaque.

In some platforms, conversion between different graphics formats may be performed. Circuitry and/or software may be provided to receive graphics information in one format and to convert and output equivalent graphics information in another format. Such conversions may include converting between two formats in which one, both, or neither includes an alpha component.

SUMMARY

A graphics processing circuit and method for power savings in the same is disclosed. In one embodiment, a graphics processing circuit includes a number of channels. The number of channels includes a number of color component channels that are each configured to process color components of pixel values of an incoming frame of graphics information. The number of channels also includes an alpha scaling channel configured to process alpha values (indicative of a level of transparency) for the incoming and/or outgoing frames. The graphics processing circuit also includes a control circuit. The control circuit is configured to place the alpha scaling channel into a low-power state responsive to determining that at least one of the incoming or outgoing frames does not include alpha values.

In one embodiment, a method includes a graphics processing unit receiving an incoming frame of graphics information and providing a corresponding outgoing frame of graphics information. The graphics information may be received into a number of channels configured to process data in the incoming frame to produce the outgoing frame. The number of channels may include color component channels and an alpha channel configured to process alpha data. The method may further included determining if at least one of the incoming or outgoing frames does not include alpha data. If at least one of the incoming or outgoing frames does not include alpha data, the alpha channel may be placed into a low power state.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1is a block diagram of one embodiment of a system including an integrated circuit having a graphics processing unit. In the embodiment shown, system2includes an integrated circuit5, I/O devices11(which may include one or more input/output devices), memory13, and display12. Integrated circuit5in the embodiment shown includes a graphics unit20configured to process graphics information. Integrated circuit5may be a system on a chip (SOC) or other type of integrated circuit that includes graphics processing circuitry. In some cases, system2may be a portable device such as a smart phone, a tablet, or a laptop computer. However, embodiments of system2that are implemented in other ways (e.g., as a desktop computer) are also possible and contemplated.

In the embodiment shown, I/O devices11may include one or more units which may convey information for input to integrated circuit5. I/O devices11may also include one or more units configured to output information received from integrated circuit5. The types of devices included in I/O devices11may vary widely from one embodiment to the next. Such devices may include (but are not limited to) radio transceivers for cellular communications systems, touch screen systems, radio transceivers for a global positioning system (GPS) unit, keyboards, wi-fi transceivers, peripheral bus interfaces, and so on.

In the embodiment shown, integrated circuit5may communicate with I/O devices11and memory13. Integrated circuit5may read information from and write information to memory13. In one embodiment, memory13may be a volatile memory, while in other embodiments memory13may be a non-volatile memory. Embodiments including both volatile and non-volatile memories are also possible and contemplated. Various memory types that may be used to implement memory13include (but are not limited to) dynamic random access memory (DRAM), static RAM (SRAM), flash memory, and so forth.

Display12in may be any type of display suitable for implementation in the particular embodiment of system2. Information processed by graphics unit20may be output from integrated circuit5to be displayed on display12. Information displayed on display12may include (but is not limited to) video, icons, a graphical user interface, and text. In some situations, the information to be displayed may initially be received by integrated circuit5may be received from one of the I/O devices11or from memory13. Information that is internally generated by integrated circuit5may also be displayed. In some cases, display12may be a touch screen display, and may thus be used to provide inputs into in integrated circuit5. In such embodiments, information to be displayed may be updated according to the user inputs from the touch screen.

Turning now toFIG. 2, a block diagram illustrating one embodiment of graphics processing unit20. In the embodiment shown, graphics processing unit20includes a control unit21and a number of channels for processing graphics information received in incoming frames. The channels in the embodiment shown include alpha channel22, color1channel24, color2channel26, and color3channel28. Graphics unit20also includes a dither unit coupled to receive the information from each of the channels and is configured to perform the final processing prior to providing the outgoing frame to display12.

Each of the color channels may process information relating to a color for pixel data contained in the incoming frame. At least some of the processing may be performed according to the format of the incoming frame and the format of the corresponding outgoing frame to be produced. In various embodiments, formats may include the RGB (red, green, blue) and related formats, the YUV (where Y=luma, while U and V are color information), and so forth. In general, incoming frame information in any suitable display format may be processed by graphics unit20, and thus embodiments of the same are not limited to those formats explicitly disclosed herein. Furthermore, among the functions provided the channels of graphics unit20may be converting the incoming frame from a first format to a second format for the outgoing frame.

Alpha channel22in the embodiment shown is configured to process alpha values for pixel data of incoming frames. An alpha value may indicate a level of transparency for the frame. In terms of transparency, the range of alpha values may extend from completely transparent to completely opaque. Some display formats may include alpha values for pixel data of each frame of information, while other display formats may lack alpha data. In some cases, both the incoming and outgoing frames may be in respective formats that include alpha data. In other cases, at least one of the incoming or outgoing frames may be in respective formats that lack alpha data. At other times, both respective formats of the incoming and outgoing frames may lack alpha data.

In the embodiment shown, control unit21is configured to receive the incoming frame and is further configured to receive processing information. Using the information in the incoming frame and the processing information, control unit21may determine if the respective formats of one or both of the incoming or outgoing frames is lacking alpha data. If the format of at least one of the incoming and outgoing frames is lacking alpha data, control unit21may place alpha channel22in a low power state. In the embodiment shown, alpha channel22may be placed in the low power state by either clock gating the alpha channel (i.e. inhibiting a clock signal from being provided thereto) or power gating the alpha channel (i.e. inhibiting power from being supplied to the alpha channel). In some embodiments, only one of the clock gating or power gating options may be implemented for placing alpha channel22in a low power state.

In some cases, the format of the incoming frame may be one that does not include alpha values, while the format of the outgoing frame is one that does include alpha values. In such cases, control unit21may generate the alpha values and provide them to dither unit29. Dither unit29may perform dithering and other functions that include assembling the various components of the outgoing frame. Subsequent to its assembly, dither unit29may provide the outgoing frame to display12.

Each of the channels, when active, may perform various processing functions on received pixel data. One function that may be performed is scaling, wherein the resolution of an incoming frame may be changed for a corresponding outgoing frame. Scaling may include reducing the resolution of the outgoing frame (relative to the incoming frame) or increasing the resolution of the outgoing frame. Another function that may be performed by the various channels of graphics unit20may include rotating an image (e.g., changing its orientation by 90 degrees). Still another function that may be performed by the various channels of graphics unit20may include converting the format of the incoming frame to a different format for the outgoing frame. In general, the various channels may perform a wide variety of graphics processing functions. It is further noted that each of the provided graphics processing functions are not necessarily performed in every operational instance. For example, scaling may not be performed in instances when the outgoing frame is to be provided at the same resolution of the incoming frame.

FIG. 3is a flow diagram of one embodiment of a method for determining whether to place an alpha channel of a graphics processing unit in a low power state. Method300as illustrated inFIG. 3may be performed using the various embodiments of a system and graphics processing unit as discussed above. Furthermore, it is also contemplated that method300may be performed in other embodiments of a system and graphics processing unit not explicitly disclosed herein.

In the embodiment shown, method300begins with the receiving pixel data of an incoming frame by a graphics processing unit (block305). Upon receiving the incoming frame as well as information as to how it is to be processed (e.g., formatting, scaling, etc.), a determination may be made as to whether at least one of the incoming and outgoing frames is lacking alpha data (block310). If it is determined that both the incoming and outgoing frames include alpha data (block315, yes), then the pixel information may be processed in corresponding channels, which includes the processing of alpha data in an alpha channel. Subsequently, the information for the outgoing frame may be provided from the active channels (block325).

If one or both of the incoming and outgoing frames does not include alpha data (block315, no), then the alpha channel may be placed in a low power state (block320). The placing of the alpha channel in a low power state may be accomplished by clock gating in some embodiments. Embodiments in which the alpha channel may be placed in a low power state by power gating are also possible and contemplated. Embodiments in which clock gating and power gating are both options for placing the alpha channel in a low power state may also be implemented.

If the incoming channel lacks alpha data but the outgoing channel includes alpha data (block321, yes), then alpha data may be generated for the outgoing frame (block322). The method may then proceed to block325. If neither of the outgoing and incoming frames include lack alpha data (block321, no), then no alpha data is generated, and the method proceeds to block325. After block325, the method may return to block305and repeat.

Turning next toFIG. 4, a block diagram of one embodiment of a system150is shown. In the illustrated embodiment, the system150includes at least one instance of the IC5coupled to external memory152. IC5in the embodiment shown may be an IC that includes those features shown inFIG. 1. IC5is also coupled to one or more peripherals154. A power supply156is also provided which supplies the supply voltages to the IC5as well as one or more supply voltages to the memory152and/or the peripherals154. In some embodiments, more than one instance of the IC5may be included (and more than one external memory152may be included as well).

The peripherals154may include any desired circuitry, depending on the type of system150. For example, in one embodiment, the system150may be a mobile device (e.g. personal digital assistant (PDA), smart phone, etc.) and the peripherals154may include devices for various types of wireless communication, such as wifi, Bluetooth, cellular, global positioning system, etc. The peripherals154may also include additional storage, including RAM storage, solid state storage, or disk storage. The peripherals154may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc. In other embodiments, the system150may be any type of computing system (e.g. desktop personal computer, laptop, workstation, net top etc.).