Patents by Inventor Guofang Jiao

Guofang Jiao has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20090089763
    Abstract: The present disclosure includes a shader compiler system and method. In an embodiment, a shader compiler includes a decoder to translate an instruction having a vector representation to a unified instruction representation. The shader compiler also includes an encoder to translate an instruction having a unified instruction representation to a processor executable instruction.
    Type: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Applicant: QUALCOMM Incorporated
    Inventors: Lin Chen, Guofang Jiao, Chihong Zhang, Junhong Sun
  • Publication number: 20090083497
    Abstract: The disclosure relates to techniques for locking and unlocking cache lines in a cache included within a multi-media processor that performs read-modify-write functions using batch read and write requests for data stored in either an external memory or an embedded memory. The techniques may comprise receiving a read request in a batch of read requests for data included in a section of a cache line and setting a lock bit associated with the section in response to the read request. When the lock bit is set, additional read requests in the batch of read requests are unable to access data in that section of the cache line. The lock bit may be unset in response to a write request in a batch of write requests to update the data previously read out from that section of the cache line.
    Type: Application
    Filed: September 26, 2007
    Publication date: March 26, 2009
    Applicant: QUALCOMM INCORPORATED
    Inventors: Chun Yu, Guofang Jiao, Jian Wei
  • Publication number: 20090073168
    Abstract: Configuration information is used to make a determination to bypass fragment shading by a shader unit of a graphics processing unit, the shader unit capable of performing both vertex shading and fragment shader. Based on the determination, the shader unit performs vertex shading and bypasses fragment shading. A processing element other than the shader unit, such as a pixel blender, can be used to perform some fragment shading. Power is managed to “turn off” power to unused components in a case that fragment shading is bypassed. For example, power can be turned off to a number of arithmetic logic units, the shader unit using the reduced number of arithmetic logic unit to perform vertex shading. At least one register bank of the shader unit can be used as a FIFO buffer storing pixel attribute data for use, with texture data, to fragment shading operations by another processing element.
    Type: Application
    Filed: September 14, 2007
    Publication date: March 19, 2009
    Applicant: QUALCOMM Incorporated
    Inventors: Guofang Jiao, Yun Du, Chun Yu
  • Publication number: 20090073177
    Abstract: Disclosed herein is a supplemental cache for use with a graphics processing unit. The supplemental cache can be used to supplement a vertex cache used with a graphics processing unit. The supplemental cache stores vertex values generated in assembling primitives from vertices provided to the graphics processing unit as part of an image geometry. Generated vertex values associated with a vertex determined to be shared by two or more primitives can be retrieved from the supplemental cache, so as to reduce the need to perform duplicative operations to generate vertex values for shared vertices.
    Type: Application
    Filed: September 14, 2007
    Publication date: March 19, 2009
    Applicant: QUALCOMM INCORPORATED
    Inventors: Guofang Jiao, Jian Liang, Chun Yu
  • Publication number: 20090033672
    Abstract: A wireless device which performs a first-level compiler packing process and a second-level hardware packing process on varyings. The compiler packing process packs two or more shader variables (varyings or attributes) whose sum of components equals M into a shared M-dimensional (MD) vector register. The hardware packing consecutively packs M components of the shader variables (varyings or attributes) and any remaining variables into a vertex cache or other storage medium.
    Type: Application
    Filed: July 30, 2007
    Publication date: February 5, 2009
    Inventors: Guofang Jiao, Alexei V. Bourd, Chun Yu, Lingjun Chen, Yun Du
  • Publication number: 20090027407
    Abstract: Methods and apparatuses for accessing data within programmable graphics hardware are provided. According to one aspect, a user inserts special log commands into a software program, which is compiled into instructions for the programmable graphics hardware to execute. The hardware writes data to an external memory during runtime according to a flow control protocol, and the software driver reads the data from the memory to display to the user.
    Type: Application
    Filed: July 24, 2007
    Publication date: January 29, 2009
    Inventors: Alexei V. Bourd, Guofang Jiao, Lin Chen
  • Publication number: 20080273031
    Abstract: A method of rendering 3D graphics image includes the steps of: storing the primitives information into the primitive bank and parameter bank whose entries are made up the primitive IDs; converting the primitives into the pages whose coordinates are made up the page IDs; matching incoming page IDs of the incoming primitive with the page IDs stored in the page RAM in such a manner that when the incoming page ID of the incoming primitive matches with the sorted page ID stored in the page RAM, the incoming primitive are added to the corresponding page node in the page RAM under the corresponding page ID; flushing the page RAM when the free page nodes of the page RAM less than a predetermined amount or when the primitive's counter of the page node reaches another predetermined number; and rendering the primitives stored in the page memory into pixels.
    Type: Application
    Filed: July 15, 2008
    Publication date: November 6, 2008
    Inventors: Pingping Shao, Jiangbo Zhang, Guofang Jiao, Jing Han, Tao Wang, Ben (Hsueh-Ban) Lan, Lingjun Chen
  • Publication number: 20080273028
    Abstract: A technique for universally rasterizing graphic primitives used in computer graphics is described. Configurations of the technique include determining three edges and a bounded region in a retrofitting bounding box. Each primitive has real and intrinsic edges. The process uses no more than three real edges of any one graphic primitive. In the case of a line, a third edge is set coincident with one of its two real edges. The area between the two real edges is enclosed by opposing perimeter edges of the bounding box. In the case of a rectangle, only three real edges are used. The fourth edge corresponds to a bounding edge provided by the retrofitting bounding box. In exemplary applications, the technique may be used in mobile video-enabled devices, such as cellular phones, video game consoles, PDAs, laptop computers, video-enabled MP3 players, and the like.
    Type: Application
    Filed: May 1, 2007
    Publication date: November 6, 2008
    Inventors: Guofang Jiao, William Torzewski, Chun Yu, Brian Ruttenberg
  • Publication number: 20080263315
    Abstract: A computer addressing mode and memory access method rely on a memory segment identifier and a memory segment mask for indicating memory locations. In this addressing mode, a processor receives an instruction comprising the memory segment identifier and memory segment mask. The processor employs a two-level address decoding scheme to access individual memory locations. Under this decoding scheme, the processor decodes the memory segment identifier to select a particular memory segment. Each memory segment includes a predefined number of memory locations. The processor selects memory locations within the memory segment based on mask bits set in the memory segment mask. The disclosed addressing mode is advantageous because it allows non-consecutive memory locations to be efficiently accessed.
    Type: Application
    Filed: April 19, 2007
    Publication date: October 23, 2008
    Inventors: Bo Zhang, Guofang Jiao, Yun Du, Jay Chunsup Yun
  • Publication number: 20080252652
    Abstract: In general, this disclosure describes techniques for performing graphics operations using programmable processing units in a graphics processing unit (GPU). As described herein, a GPU includes a graphics pipeline that includes a programmable graphics processing element (PGPE). In accordance with the techniques described herein, an arbitrary set of instructions is loaded into the PGPE. Subsequently, the PGPE may execute the set of instructions in order to generate a new pixel object. A pixel object describes a displayable pixel. The new pixel object may represent a result of performing a graphics operation on a first pixel object. A display device may display a pixel described by the new pixel object.
    Type: Application
    Filed: April 13, 2007
    Publication date: October 16, 2008
    Inventors: Guofang Jiao, Lingjun Chen, Chun Yu, Yun Du
  • Publication number: 20080246773
    Abstract: This disclosure describes techniques of loading batch commands into a graphics processing unit (GPU). As described herein, a GPU driver for the GPU identifies one or more graphics processing objects to be used by the GPU in order to render a batch of graphics primitives. The GPU driver may insert indexes associated with the identified graphics processing objects into a batch command. The GPU driver may then issue the batch command to the GPU. The GPU may use the indexes in the batch command to retrieve the graphics processing objects from memory. After retrieving the graphics processing objects from memory, the GPU may use the graphics processing objects to render the batch of graphics primitives.
    Type: Application
    Filed: April 4, 2007
    Publication date: October 9, 2008
    Inventors: Guofang Jiao, Lingjun Chen, Yun Du
  • Publication number: 20080235316
    Abstract: The disclosure describes an adaptive multi-shader within a processor that uses one or more high-precision arithmetic logic units (ALUs) and low-precision ALUs to process data based on the type of the data. Upon receiving a stream of data, the adaptive multi-shader first determines the type of the data. For example, the adaptive multi-shader may determine whether the data is suitable for high-precision processing or low-precision processing. The adaptive multi-shader then processes the data using the high-precision ALUs when the data is suitable for high-precision processing, and processes the data using the high-precision ALUs and the low-precision ALUs when the data is suitable for low-precision processing. The adaptive multi-shader may substantially reduce power consumption and silicon size of the processor by implementing the low-precision ALUs while maintaining the ability to process data using high-precision processing by implementing the high-precision ALUs.
    Type: Application
    Filed: March 23, 2007
    Publication date: September 25, 2008
    Inventors: Yun Du, Guofang Jiao, Chun Yu
  • Publication number: 20080201716
    Abstract: A device includes a multimedia processor that can concurrently support multiple applications for various types of multimedia such as graphics, audio, video, camera, games, etc. The multimedia processor includes configurable storage resources to store instructions, data, and state information for the applications and assignable processing units to perform various types of processing for the applications. The configurable storage resources may include an instruction cache to store instructions for the applications, register banks to store data for the applications, context registers to store state information for threads of the applications, etc. The processing units may include an arithmetic logic unit (ALU) core, an elementary function core, a logic core, a texture sampler, a load control unit, a flow controller, etc.
    Type: Application
    Filed: February 21, 2007
    Publication date: August 21, 2008
    Inventors: Yun Du, Guofang Jiao, Chun Yu
  • Publication number: 20080198168
    Abstract: Techniques for supporting both 2-D and 3-D graphics are described. A graphics processing unit (GPU) may perform 3-D graphics processing in accordance with a 3-D graphics pipeline to render 3-D images and may also perform 2-D graphics processing in accordance with a 2-D graphics pipeline to render 2-D images. Each stage of the 2-D graphics pipeline may be mapped to at least one stage of the 3-D graphics pipeline. For example, a clipping, masking and scissoring stage in 2-D graphics may be mapped to a depth test stage in 3-D graphics. Coverage values for pixels within paths in 2-D graphics may be determined using rasterization and depth test stages in 3-D graphics. A paint generation stage and an image interpolation stage in 2-D graphics may be mapped to a fragment shader stage in 3-D graphics. A blending stage in 2-D graphics may be mapped to a blending stage in 3-D graphics.
    Type: Application
    Filed: February 16, 2007
    Publication date: August 21, 2008
    Inventors: Guofang Jiao, Angus M. Dorbie, Yun Du, Chun Yu, Jay C. Yun
  • Publication number: 20080118148
    Abstract: Scissoring for any number of scissoring regions is performed in a sequential order by drawing one scissoring region at a time on a drawing surface and updating scissor values for pixels within each scissoring region. A scissor value for a pixel may indicate the number of scissoring regions covering the pixel and may be incremented for each scissoring region covering the pixel. A scissor value for a pixel may also be a bitmap, and a bit for a scissoring region may be set to one if the pixel is within the scissoring region. Pixels within a region of interest are passed and rendered, and pixels outside of the region are discarded. This region may be defined by a reference value, which may be set to (a) one for the union of all scissoring regions, for a scissoring UNION operation, or (b) larger than one for the intersection of multiple (e.g., all) scissoring regions, for a scissoring AND operation.
    Type: Application
    Filed: November 21, 2006
    Publication date: May 22, 2008
    Inventors: Guofang Jiao, Angus M. Dorbie
  • Publication number: 20080094412
    Abstract: A graphics processing unit (GPU) efficiently performs 3-dimensional (3-D) clipping using processing units used for other graphics functions. The GPU includes first and second hardware units and at least one buffer. The first hardware unit performs 3-D clipping of primitives using a first processing unit used for a first graphics function, e.g., an ALU used for triangle setup, depth gradient setup, etc. The first hardware unit may perform 3-D clipping by (a) computing clip codes for each vertex of each primitive, (b) determining whether to pass, discard or clip each primitive based on the clip codes for all vertices of the primitive, and (c) clipping each primitive to be clipped against clipping planes. The second hardware unit computes attribute component values for new vertices resulting from the 3-D clipping, e.g., using an ALU used for attribute gradient setup, attribute interpolation, etc. The buffer(s) store intermediate results of the 3-D clipping.
    Type: Application
    Filed: October 23, 2006
    Publication date: April 24, 2008
    Inventors: Guofang Jiao, Chun Yu, Lingjun Chen, Yun Du
  • Publication number: 20080094410
    Abstract: Techniques for implementing blending equations for various blending modes with a base set of operations are described. Each blending equation may be decomposed into a sequence of operations. In one design, a device includes a processing unit that implements a set of operations for multiple blending modes and a storage unit that stores operands and results. The processing unit receives a sequence of instructions for a sequence of operations for a blending mode selected from the plurality of blending modes and executes each instruction in the sequence to perform blending in accordance with the selected blending mode. The processing unit may include (a) an ALU that performs at least one operation in the base set, e.g., a dot product, (b) a pre-formatting unit that performs gamma correction and alpha scaling of inbound color values, and (c) a post-formatting unit that performs gamma compression and alpha scaling of outbound color values.
    Type: Application
    Filed: October 19, 2006
    Publication date: April 24, 2008
    Inventors: Guofang Jiao, Chun Yu, Lingjun Chen, Yun Du
  • Publication number: 20080074433
    Abstract: A graphics processor capable of parallel scheduling and execution of multiple threads, and techniques for achieving parallel scheduling and execution, are described. The graphics processor may include multiple hardware units and a scheduler. The hardware units are operable in parallel, with each hardware unit supporting a respective set of operations. The hardware units may include an ALU core, an elementary function core, a logic core, a texture sampler, a load control unit, some other hardware unit, or a combination thereof. The scheduler dispatches instructions for multiple threads to the hardware units concurrently. The graphics processor may further include an instruction cache to store instructions for threads and register banks to store data. The instruction cache and register banks may be shared by the hardware units.
    Type: Application
    Filed: September 21, 2006
    Publication date: March 27, 2008
    Inventors: Guofang Jiao, Yun Du, Chun Yu
  • Publication number: 20080074430
    Abstract: Techniques are described for processing computerized images with a graphics processing unit (GPU) using a unified vertex cache and shader register file. The techniques include creating a shared shader coupled to the GPU pipeline and a unified vertex cache and shader register file coupled to the shared shader to substantially eliminate data movement within the GPU pipeline. The GPU pipeline sends image geometry information based on an image geometry for an image to the shared shader. The shared shader performs vertex shading to generate vertex coordinates and attributes of vertices in the image. The shared shader then stores the vertex attributes in the unified vertex cache and shader register file, and sends only the vertex coordinates of the vertices back to the GPU pipeline. The GPU pipeline processes the image based on the vertex coordinates, and the shared shader processes the image based on the vertex attributes.
    Type: Application
    Filed: September 27, 2006
    Publication date: March 27, 2008
    Inventors: Guofang Jiao, Chun Yu, Yun Du
  • Publication number: 20080059966
    Abstract: A thread scheduler includes context units for managing the execution of threads where each context unit includes a load reference counter for maintaining a counter value indicative of a difference between a number of data requests and a number of data returns associated with the particular context unit. A context controller of the thread context unit is configured to refrain from forwarding an instruction of a thread when the counter value is nonzero and the instruction includes a data dependency indicator indicating the instruction requires data returned by a previous instruction.
    Type: Application
    Filed: August 29, 2006
    Publication date: March 6, 2008
    Inventors: Yun Du, Guofang Jiao, Chun Yu