throbber
Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 1 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 1 of 23
`
`
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`Applicants: Leatheret al.
`
`Serial No.:
`
`Examiner:
`
`Art Group:
`
`Filing Date:
`
`June 12, 2003
`
`Docket No.: 00100.02.0053
`
`Title: DIVIDING WORK AMONG MULTIPLE GRAPHICSPIPELINES USING A
`SUPER-TILING TECHNIQUE
`
`Certificate ofExpress Mail
`T hereby certify that this paper is being deposited with the
`United States Postal Service “Express Mail Post Office to
`Addressee”service under 37 CFR 1.10, on the date
`indicated and is addressed to Mail Stop Patent
`Application, Commissionerfor Patents, P.O. Box 1450,
`hte. AN 9313-1450
`
`Alexandria,VA22313-145 Alexandria, VA 22313-1450,
`Express Mail No. EV 063310627 US.
`
`Mail Stop Patent Application
`Commissioner for Patents
`
`
`
`Date
`
`Winona K. Jackson
`
`PRELIMINARY AMENDMENT
`
`Dear Sir:
`
`Prior to examination, Applicants respectfully request that the above-identitied application
`
`be amendedas follows:
`
`In The Specification:
`
`Please add the following new paragraph directly below the inventiontitle on page 1 of
`
`the specification as follows:
`
`This application claims the benefit of U.S. Provisional Application Ser. No. 60/429,641
`
`filed November 27, 2002, entitled “Dividing Work Among Multiple Graphics Pipelines Using a
`
`Super-Tiling Technique”, having as inventors Mark M.Leather and Eric Demers, and owned by
`
`instant assignee.
`
`CHICAGO/# 1083968. 1
`
`
`
`Ex. 8, p. 1
`
`Ex. 8, p. 1
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 2 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 2 of 23
`onggems omy
`BY ott
`oe ay
`RB
`
`
`REMARKS
`
`Applicants submit that the specification is fully supported by the original provisional
`
`application, and the claimsare fully supported by the originally filed provisional application.
`
`Respectfully submitted,
`
`By:
`
`ffay
`ec
`Chrisfopher J. Reckamp
`Reg. No. 34,414
`
`Dated: June 12, 2003
`
`Vedder, Price, Kaufman & Kammholz
`222 North LaSalle Street
`Chicago,Illinois 60601
`Telephone: (312) 609-7500
`Facsimile: (312) 609-5005
`
`CHICAGO/#1083968.1
`
`Ex. 8, p.2
`
`
`
`Ex. 8, p. 2
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 3 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 3 of 23
`
`
`
`020053
`
`PATENT APPLICATION
`ATTY. DOCKET NO. 00100.02.0053
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`FILING OF A UNITED STATES PATENT APPLICATION
`
`DIVIDING WORK AMONG MULTIPLE GRAPHICSPIPELINES
`USING A SUPER-TILING TECHNIQUE
`
`INVENTORS:
`
`
`
`
`
`Eric Demers
`Mark M. Leather
`
`
`901 Sycamore Drive
`12187 Woodside Drive
`Palo Alto, California 94303
`
`Saratoga, California 95070
`
`
`
`ATTORNEY OF RECORD:
`CHRISTOPHERJ. RECKAMP
`REGISTRATIONNO.34,414
`VEDDER PRICE KAUFMAN & KAMMHOLZ
`222 NORTH LASALLE STREET,SUITE 2600
`CHICAGO,ILLINOIS 60601
`PHONE(312) 609-7500
`FAX (312) 609-5005
`
`Express Mail Label No.: EV 063310627 US
`Date of Deposit: June 12, 2003
`I hereby certify that this paper is being deposited with the
`U.S. Postal Service “Express Mail Post Office to
`Addressee” service under 37 C.F.R. Section 1.10 on the
`‘Date of Deposit’, indicated above, and is addressed
`to: Mail Stop Patent Application, Commissioner of Patents,
`P. O. Box 1450, Alexandria, VA, 22313-1450.
`
`Nameof Depositor: Winona K. Jackson
`
`Signature:
`
`
`
`Ex. 8, p. 3
`
`Ex. 8, p. 3
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 4 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 4 of 23
` ak gn ay ei
`
`eeeby Fil
`wal
`020053
`
`DIVIDING WORK AMONG MULTIPLE GRAPHICS PIPELINES USING A
`SUPER-TILING TECHNIQUE
`
`RELATED CO-PENDING APPLICATION
`
`Thisis a related application to a co-pending applicationentitled “Parallel
`[0001]
`Pipeline Graphics System” having docket number 010025, having serial number
`, having Leatheret al. as the inventors, filed on even date,
`ownedby the sameassignee andhereby incorporated by referenceinits entirety.
`
`FIELD OF THE INVENTION
`
`Thepresent invention generally relates to graphics processingcircuitry
`[0001]
`and, moreparticularly, to dividing graphics processing operations among multiple
`
`pipelines.
`
`BACKGROUNDOF THE INVENTION
`
`Computer graphics systems, set top box systemsor other graphics
`[0002]
`processing systemstypically include a host processor, graphics (including video)
`processing circuitry, memory (e.g. frame buffer), and one or more display devices. The
`host processor may have a graphics application running thereon, which provides vertex
`data for a primitive(e.g. triangle) to be rendered on the one or more display devices to
`the graphics processing circuitry. The display device, for example, a CRT display
`includes a plurality of scan lines comprisedofa series of pixels. When appearance
`attributes (e.g. color, brightness, texture) are applied to the pixels, an object or scene is
`presented on the display device. The graphics processing circuitry receives the vertex
`data and generates pixel data including the appearanceattributes which may be presented
`on the display device according to a particular protocol. The pixel data is typically
`stored in the frame buffer in a mannerthat correspondsto the pixels location on the
`
`display device.
`FIG.1 illustrates a conventional display device 10, having a screen 12
`[0003]
`partitioned into a series of vertical strips 13-18. The strips 13-18 are typically 1-4 pixels
`in width. In like manner, the frame buffer of conventional graphics processing systemsis
`partitionedinto a series of vertical strips having the same screen space width.
`
`1
`
`
`
`Ex. 8, p. 4
`
`Ex. 8, p. 4
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 5 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 5 of 23
`"SBhe
`eosdler Wal SR uo
`
`020053
`
`Alternatively, the frame buffer and the display device may be partitioned into a series of
`horizontal strips. Graphics calculations, for example,lighting, color, texture and user
`viewing information are performedby the graphics processing circuitry on each ofthe
`primitives provided by the host. Onceall calculations have been performed onthe
`primitives, the pixel data representing the objcct to be displayed is written into the frame
`buffer. Once the graphicscalculations have been repeated forall primitives associated
`with a specific frame, the data stored in the frame buffer is rendered to create a video
`signal that is providedto the display device.
`[0004]
`The amount oftime taken for an entire frame of information to be
`calculated and providedto the frame buffer becomesa bottleneck in graphics systemsas
`the calculations associated with the graphics become more complicated. Contributing to
`the increased complexity of the graphics calculation is the increased needfor higher
`resolution video, as well as the need for more complicated video, such as 3-D video. The
`video image observed by the human eye becomesdistorted or choppy when the amount
`of time taken to render an entire frame of video exceeds the amountof time in which the
`
`display device must be refreshed with a new graphic or frame in order to avoid
`perception by the human eye. To decrease processing time, graphics processing systems
`typically divide primilive processing among several graphics processing circuits where,
`for example, one graphics processing circuit is responsible for one verticalstrip (e.g. 13)
`of the frame while another graphics processing circuit is responsible for another vertical
`strip (e.g. 14) of the frame. In this manner,the pixel data is provided to the frame buffer
`within the required refresh time.
`[0005]
`Load balancing is a significant drawback associated with the partitioning
`systems as described above. Load balancing problems occur, for example, whenall of
`the primitives 20-23 ofa particular object or scene are located in onestrip (e.g.strip 13)
`as illustrated in FIG. 1. When this occurs, only the graphics processing circuit
`responsiblestrip 13 is actively processing primitives; the remaining graphics processing
`circuits are idle. This results in a significant waste of computing resources as at most
`only half of the graphics processing circuits are operating. Consequently, graphics
`processing system performanceis decreased as the system is only opcrating at a
`
`maximum offifty percent capacity.
`
`
`
`Ex. 8, p.5
`
`Ex. 8, p. 5
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 6 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 6 of 23
`oea wat
`BE Bev
`
`
`020053
`
`Changing the width ofthe strips has been employed to counter the system
`[0006]
`performance problems. However, when the width ofa strip is increased, the load
`balancing problem is enhanced as more primitives are located within a singlestrip;
`thereby, increasing the processing required of the graphics processing circuit responsible
`for that strip, while the remaining graphics processing circuits remain idle. Whenthe
`width ofthe strip is decreased (e.g. four bits to two bits), cache (e.g. texture cache)
`efficiency is decreased as the number of cachelines employedin transferring data is
`reduced in proportion to the decreased widthof the strip. In either case, graphics
`processing system performanceisstill decreased dueto the idle graphics processing
`
`circuits.
`
`Frame based subdivision has been used to overcomethe performance
`[0007]
`problems associated with conventional partitioning systems. In frame based subdivision,
`each graphics processoris responsible for processing an entire frame, not strips within the
`same frame. The graphics processorsthen alternate frames. However, frame subdivision
`introduces one or more framesof latency between the user and the screen, whichis
`unacceptablein real-time interactive environments, for example, providing graphics for a
`flight simulator application.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Thepresent invention and the related advantages andbenefits provided
`[0008]
`thereby, will be best appreciated and understood upon reviewofthe following detailed
`description of a preferred embodiment, taken in conjunction with the following drawings,
`where like numerals represent like elements, in which:
`[0009]
`FIG. 1 is a schematic block diagram of a conventionaldisplay partitioned
`
`into several vertical strips:
`[0010]
`FIG. 2 is a schematic block diagram of a graphics processing system
`employing an exemplary multi-pipeline graphics processing circuit according to one
`embodimentof the present invention;
`(0011)
`FIG.3 is a schematic block diagram of a memory partitioned into an
`exemplary super-tile pattern according to the present invention;
`
`
`
`Ex. 8, p. 6
`
`Ex. 8, p. 6
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 7 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 7 of 23
`
`
`
`[0012]
`
`FIG.4 is a schematic block diagram of a memory partitioned into a super-
`
`tile pattern according to an alternate embodimentof the present invention;
`
`[0013]
`
`FIG. 5 is a schematic block diagram of an exemplary multi-pipcline
`
`graphics processingcircuit used in a multi processor configuration according to an
`
`alternate embodimentof the present invention;
`
`FIG.6 is a flow chart of the operations performed by the graphics
`{0014]
`processing circuit according to the present invention;
`)
`[0015]
`FIG.7 is a diagram illustrating a polygon bounding box to determine
`
`which,if a polygonfits in a tile or super tile; and
`
`{0016}
`
`FIG.8 is a schematic block diagram of an exemplary multi-pipcline
`
`graphics processingcircuit used in a multi processor configuration according to an
`
`alternate embodimentof the present invention.
`
`
`
`Ex. 8, p. 7
`
`Ex. 8, p. 7
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 8 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 8 of 23
`
`
`she DBBo af
`020053
`
`DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
`
`A multi-pipeline graphics processing circuit includesat least two pipelines
`[0017]
`operative to process data in a correspondingtile of a repeatingtile pattern, a respective
`oneofthe at least two pipelines is operative to process data in a dedicated tile, wherein
`the repeating tile pattern includes a horizontally and vertically repeating pattern of square
`regions. The multi-pipeline graphics processing circuit may be coupledto a frame buffer
`that is subdivided into a replicating pattern of square regions(e.g.tiles), where each
`region is processed by a corresponding one of the at least two pipelines such that load
`
`balancing and texture cacheutilization is enhanced.
`[0018]
`A multi-pipeline graphics processing method includes receiving vertex
`data for a primitive to be rendered, generating pixel data in responseto the vertex data,
`determining the pixels withinaset oftiles of a repeating tile pattern to be processed bya
`correspondingoneofat least two graphics pipelines in response to the pixel data, the
`repeatingtile pattern including a horizontally and vertically repeating pattern of square
`regions, and performingpixel operations on the pixels within the determinedset oftiles
`by the corresponding oneofthe at least two graphics pipelines. An exemplary
`embodimentof the present invention will now be described with reference to Figures 2-6.
`[0019]
`FIG. 2 is a schematic block diagram of an exemplary graphics processing
`system 30 employing an example of a multi-pipeline graphics processing circuit 34
`according to one embodimentofthe present invention. The graphics processing system
`30 can be implemented with a single graphics processing circuit 34 or with two or more
`graphics processing circuits 34, 54. The components and corresponding functionality of
`the graphics processing circuits 34, 54 are substantially the same. Therefore, only the
`structure and operation of graphics processingcircuit 34 will be describedin detail. An
`alternate embodiment, employing both graphics processingcircuits 34 and 54 will be
`
`discussed in greater detail below with reference to FIGS. 4-5.
`[0020]
`Graphicsdata 31, for example, vertex data of a primitive (e.g. triangle) 80
`(FIG.3) is transmitted asa series ofstrips to the graphics processing circuit 34. As used
`herein, graphics data 31 can also include video data or a combination ofvideo data and
`graphics data. The graphicsprocessing circuit 34 is preferably a portion of a stand-alone
`graphics processorchip or may also be integrated with a host processor or other circuit, if
`
`
`
`Ex. 8, p. 8
`
`Ex. 8, p. 8
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 9 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 9 of 23
`
`
`
`020053
`
`desired, or part of a larger system. The graphics data 31 is provided by a host (not
`
`shown). The host may be a system processor (not shown) or a graphics application
`
`running on the system processor. In an alternate embodiment, an Accelerated Graphics
`Port (AGP) 32 or other suitable port receives the graphics data 31 from thehost and
`provides the graphics data 31 to the graphics processing circuit 34 for further processing.
`
`[0021] ‘The graphics processing circuit 34 includesafirst graphics pipeline 101
`
`operative to process graphics data inafirst set of tiles as discussed in greaterdetail
`
`below. Thefirst pipeline 101 includes front end circuitry 35, a scan converter 37, and
`
`back endcircuitry 39. The graphics processing circuit 34 also includes a second graphics
`
`pipeline 102, operative to process graphics data in a secondset of tiles as discussed in
`
`greater detail below. The first graphics pipeline 101 and the second graphics pipeline
`
`102 operate independently of one another. The second graphics pipeline 102 includes the
`
`front end circuitry 35, a scan converter 40, and back end circuitry 42. Thus, the graphics
`
`processing circuit 34 of the present invention is configured as a multi-pipeline circuit,
`
`where the back endcircuitry 39 of the first graphics pipeline 101 and the back end
`
`circuitry 42 of the second graphics pipeline 102 share the front end circuitry 35, in that
`
`the first and second graphics pipelines 101 and 102 receive the same pixel data 36
`
`provided by the front end circuitry 35. Alternatively, the back end circuitry 39 ofthefirst
`
`graphics pipeline 101 and the back end circuitry 42 of the second pipeline 102 may be
`
`coupled to separate front end circuits. Additionally, it will be appreciated that a single
`
`graphics processing circuit can be configured in similar fashion to include more than two
`
`graphics pipelines. Theillustrated graphics processing circuit 34 has thefirst and,second
`
`pipelines 101-102 present on the same chip. However, in alternate embodiments, thefirst
`
`and second graphics pipelines 101-102 may be present on multiple chips interconnected
`
`by suitable communication circuitry or a communication path, for example, a
`
`synchronization signal or data bus interconnecting the respective memory controllers.
`
`[0022]
`
`The front end circuitry 35 may include, for example, a vertex shader, set
`
`up circuitry, rasterizer or other suitable circuitry operative to receive the primitive data 31
`
`and generate pixel data 36 to be further processed by the back endcircuitry 39 and 42,
`
`respectively. The front end circuitry 35 generates the pixel data 36 by performing, for
`
`example,clipping, lighting, spatial transformations, matrix operations and rasterizing
`
`
`
`Ex. 8, p. 9
`
`Ex. 8, p. 9
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 10 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 10 of 23
`
`\
`
`
`
`operations on the primitive data 31. The pixel data 36 is then transmitted to the
`
`respective scan converters 37 and 40of the two graphics pipelines 101-102.
`
`[0023]
`
`The scan converter 37 ofthe first graphics pipeline 101 receives the pixel
`
`data 36 and sequentially provides the position (e.g. x, y) coordinates 60 in screen space of
`the pixels to be processed by the back end circuitry 39 by determining or identifying
`those pixels of the primitive, for example, the pixels within portions 81-82 of the triangle
`
`80 (FIG.3) that intersect the tile or set of tiles that the back end circuitry 39 is
`
`responsible for processing. The particular tile(s) that the back end circuitry 39 is
`responsible for is determined based onthetile identification data present on the pixel
`identification line 38 of the scan converter 37. The pixel identification line 38 is
`
`illustrated as being hard wired to ground. Thus,the tile identification data corresponds to
`
`a logical zero. This correspondsto the back endcircuitry 39 being responsible for
`
`processingthetiles labeled “A”(e.g. 72 and 75) in FIG. 3. Although the pixel
`
`identification line 38 is illustrated as being hard wiredto a fixed value,it is to be
`
`understood and appreciatedthat the tile identification data can be programmable data,for
`
`example, from a suitable driver and such a configuration is contemplated by the present
`
`invention and is within the spirit and scopeofthe instant disclosure.
`
`[0024]
`
`Back endcircuitry 39 may include, for example, pixel shaders, blending
`
`circuits, z-buffers or any othercircuitry for performing pixel appearance attribute
`
`operations (e.g. color, texture blending, z-buffering) on those pixels located, for example,
`
`in tiles 72, 75 (FIG. 3) corresponding to the position coordinates 60 provided by the scan
`
`converter 37. The processed pixel data 43 is then transmitted to graphics memory 48 via
`memory controller 46 for storage therein at locations corresponding to the position
`coordinates 60.
`
`[0025]
`
`The scan converter 40 of the second graphics pipeline 102, receives the
`
`pixel data 36 and sequentially provides position (e.g. x, y) coordinates 61 in screen space
`of the pixels to be processed by the back endcircuitry 42 by determining those pixels of
`the primitive, for example,the pixels within portions 83-84 ofthe triangle 80 (FIG.3)
`that intersect the tiles that the back end circuitry 42 is responsible for processing. Back
`
`end circuitry 42 tile responsibility is determined basedon thetile identification data
`
`present on the pixel identification line 41 of the scan converter 41. The pixel
`
`
`
`Ex. 8, p. 10
`
`Ex. 8, p. 10
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 11 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 11 of 23
`
`
`
`020053
`
`identification line 41 is illustrated as being hard wired to Vcc; thus, the tile identification
`
`data correspondsto a logical one. This correspondsto the back end circuitry 42 being
`responsible for processing thetiles labeled “B”(e.g. 73-74) in FIG. 3. Although thepixel
`identification line 41 is illustrated as being hard wired to a fixed value,it is to be
`understood and appreciated that the tile identification data can be programmable data, for
`example, from a suitable driver and such configuration is contemplated by the present
`
`invention and is within the spirit and scope of the instant disclosure.
`[0026}
`Back endcircuitry 42 mayinclude, for example, pixel shaders, blending
`circuits, z-buffers or any suitable circuitry for performing pixel appearanceattribute
`operations on those pixels located, for example,in tiles 73 and 74 (FIG. 3) corresponding
`to the position coordinates 61 provided by the scan converter 40. ‘he processed pixel
`data 44 is then transmitted to the graphics memory 48, via memory controller 46, for
`
`storage therein at locations corresponding to the position coordinates 61.
`[0027]
`The memory controller 46 is operative to transmit and receive the
`processed pixel data 43-44 from the back endcircuitry 39 and 42; transmit and retrieve
`pixel data 49 from the graphics memory 48; and in a single circuit implementation,
`transmit pixel data 50 for presentation on a suitable display 51. The display 51 may be a
`monitor, a CRT, a high definition television (HDTV)or any other device or combination
`
`thereof.
`
`Graphics memory 48 mayinclude, for example, a frame buffer that also
`[0023]
`stores one or more texture maps. Referring to FIG.3, the frame buffer portion of the
`graphics memory 48 is partitioned in a repeatingtile pattern of horizontal and vertical
`square regionsortiles 72-75, where the regions 72-75 provide a two dimensional
`partitioning of the framebuffer portion of the memory 48. Eachtile is implemented as a
`16 x 16 pixel array. The repeatingtile pattern of the frame buffer 48 correspondsto the
`partitioning of the corresponding display 51 (FIG. 2). When rendering a primitive(e.g.
`triangle) 80, the first graphics pipeline 101 processes only those pixels in portions 81, 82
`of the primitive 80 that intersects tiles labeled “A”, for example, 72 and 75, as the back
`end circuitry 39 is responsible for the processing oftiles correspondingtotile
`identification 0 present on pixelidentification line 38 (FIG. 2). In corresponding fashion,
`the secondgraphics pipeline 102 processes only those pixels in portions 83, 84 ofthe
`
`
`
`Ex. 8, p. 11
`
`Ex. 8, p. 11
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 12 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 12 of 23
`
`
`
`primitive 80 thatintersects tiles labeled “B”, for example 73-74,as the back end circuitry
`42 (FIG.2) is responsible for the processingoftiles correspondingtotile identification |
`
`present on pixel identification line 41 (FIG. 2).
`
`[0029]
`By configuring the frame buffer 48 according to the present invention,as
`the primitive data 31 is typically written instrips, the tiles (e.g. 72 and 75) being
`processed by the first graphics pipeline 101 and the tiles (e.g. 73 and 74) being processed
`
`by the second graphics pipeline 102 will be substantially equal in size, notwithstanding
`the primitive 80 orientation. Thus, the amount ofprocessing performed by the first
`graphics pipeline 101 and the second graphics pipeline 102, respectively, are
`substantially equal; thereby, effectively eliminating the load balance problems exhibited
`
`by conventional techniques.
`
`[0030]
`
`FIG.4 is a schematic block diagram of a frame buffer 68 partitioned into a
`
`super-tile pattern according to an alternate embodimentof the present invention. Sucha
`
`partitioning would be used, for example, in conjunction with a multi-processor
`
`implementation to be discussed below with reference to FIG. 5. Asillustrated, the frame
`buffer 68 is partitioned into a repeatingtile pattern where thetiles, for example, 92-99
`
`that form the repeatingtile pattern are the responsibility of and processed by a
`
`corresponding one of the graphics pipelines provided by the multi-processor
`
`implementation.
`
`[0031]
`FIG. 5 is a schematic block diagram of a graphics processing circuit 54
`which may be coupled with the graphics processing circuit 34 (FIG. 2), for example, by
`the AGP 32 orothersuitable port, to form one embodiment of a multi-processor
`
`implementation. The graphics processing circuit 54 is preferably a portion of a stand-
`alone graphics processor chip or may also be integrated with a host processor or other
`circuit, if desired, or port of a larger system. The multi-processor implementation
`exhibits an increasedfill rate of, for example, 9.6 billion pixels/sec with a triangle rate of
`
`300 million triangles/sec. This represents a tremendous performanceincrease as
`compared to conventional graphics processing systems. The triangle rate is defined as
`the numberoftriangles the graphics processing circuit can generate per second. Thefill
`rate is defined as the numberofpixels the graphics processing circuit can render per
`
`second.
`
`
`
`Ex. 8, p. 12
`
`Ex. 8, p. 12
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 13 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 13 of 23
`
`
`
`020053
`
`Referring briefly to FIG. 2, in the multi-processor implementation,
`[0032]
`processed pixel data 52 from the graphics processing circuit 34 is provided asa first of
`twoinputs to a high speed switch 70. The second input to the high speed switch 70 is the
`processedpixel data 55 from the graphics processing circuit 54. The high speed switch
`70 has a switching frequency(f) sufficient to provide the pixel information 71 to a
`suitable display device without any detectable latency.
`[0033]
`Returning to FIG.5, the graphics processingcircuit 54 includes a third
`graphics pipeline 201 operative to process graphics data in a third set oftiles. The third
`graphics pipeline 201 includes front end circuitry 135, which maybethe front end
`circuitry 35 discussed with reference to FIG. 2, a scan converter 137 and back end
`circuitry 139. The graphics processing circuit 54 also includes a fourth graphics pipeline
`202, operative to process graphics data in a fourth setoftiles. Thefourth graphics
`pipeline 202 includes the front end circuitry 135, a scan converter 140 and back end
`circuitry 142. The third graphics pipeline 201 and the fourth graphics pipeline 202 also
`operate independently of one another. Thus, the graphics processing circuit 54 is
`configured as a multi-pipeline circuit, where the back end circuitry 139 ofthe third
`graphics pipeline 201 and the back end circuitry 142 of the fourth graphicspipeline 202
`share the front end circuitry 135, in that the respective back endcircuitry 139 and 142
`receives the samepixel data from thefront end circuitry 135. Asillustrated, the
`components ofthe third and fourth graphics pipclines are present on a single chip.
`Additionally, the back end circuitry 139 and the back endcircuitry 142 may be
`configured to share the front end circuitry 35 of the graphics processing circuit 34.
`Alternatively, the third and fourth graphics pipelines may be configured to be on multiple
`chips interconnected by a communication path, for example, a synchronization signal or
`
`data bus.
`Thefront end circuitry 135 may include, for example, a vertex shader,set
`[0034]
`up circuitry, rasterizer or other suitable circuitry operative to receive the primitive data 31
`from the AGP 32 andgenerate pixel data 136 to be processed bythe third graphics
`pipeline 201 and fourth graphicspipeline 202, respectively. The front end circuitry 135
`generatesthe pixel data 136 by performing, for example, clipping,lighting, spatial
`transformations, matrix operations, rasterization or any suitable primitive operations or
`
`10
`
`Ex. 8, p. 13
`
`
`
`Ex. 8, p. 13
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 14 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 14 of 23
`
`
`
`020053
`
`combination thereof on the primitive data 31. The pixel data 136 is then transmitted to
`the respective scan converters 137 and 140ofthe two graphics pipelines 201-202.
`[0035]
`The scan converter 137 ofthe third graphics pipeline 201 receives the
`pixel data 136 and sequentially provides the position(e.g. x, y) coordinates 160 in screen
`space ofthe pixels to be processed by the back endcircuitry 139, based onthetile
`identification data present on pixelidentification line 138. In corresponding fashion, scan
`converter 140 of the fourth graphics pipeline 202 receives the pixel data 136 and
`sequentially provides the position (e.g. x, y) coordinates 161 in screen space of the pixels
`to be processedby the back end circuitry 143, based onthetile identification data present
`
`on pixel identification line 141.
`
`[0036] Referring to FIG.4, in the multi-processor implementation, whenalogical
`zero or other suitable value is present on pixel identification line 138 (e.g. corresponding
`to the pixel identification line 138 being tied to ground), the back endcircuitry 139 is
`responsible for processing, for example,tiles labeled “AO” (e.g. 92 and 95). In
`corresponding manner, whena logical one or other suitable value is present on pixel
`identification line 141 (e.g. corresponding to pixel identification line 142 beingtied to
`Vcc), the back end circuitry 142 will be responsible for processingthetiles labeled “BO”
`(e.g. 93 and 94). Whena logicalzero or other suitable value is present on pixel
`identification line 38 (FIG. 2), the back endcircuitry 39 is responsible for processing, for
`example, the tiles labeled “A1”(c.g. 96 and 99). Whenalogical one or othersuitable
`value is present on pixel identification line 41 (FIG. 2), the back end circuitry 42 is
`responsible for processing, for example,thetiles labeled “B1” (e.g. 97 and 98). Thetile
`pattern illustrated in FIG.4 is referred to as a super-tile pattern 68.
`[0037]
`Asillustrated, the super-tile pattern 68 is formed of a horizontally and
`vertically repeating pattern of regionsor tiles 92-99, where eachtile is a 16 x 16 pixel
`array. With this frame buffer configuration,as the primitive data 31 is typically written
`in strips, at least onetile (e.g. 92) being processedbythe third graphics pipeline 201 and
`at least onetile (e.g. 93) being processed by the fourth graphics pipeline 202 will be
`intersected or contain at least a portion ofthe primitive data 31, notwithstanding the
`primitive orientation; thereby achieving substantially equal load balancing between the
`pipelines.
`
`11
`
`Ex. 8, p.14
`
`
`
`Ex. 8, p. 14
`
`

`

`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 15 of 23
`Case 6:22-cv-00466-ADA-DTG Document 50-8 Filed 12/19/22 Page 15 of 23
`
`
`
`020053
`
`Thus, in the multi-processor implementation, each of the graphics
`[0033]
`pipelines is responsible for processing 1/(MxN)ofthetiles presentin the partitioned
`graphics memory 68, where M represents the number ofpipelines per circuit and N
`represents the numberofgraphics processing circuits being used. Thus, in an
`embodiment where graphicsprocessing circuit 34 and graphics processing circuit 54 are
`combined, for example, through AGP 32 (FIG.2), each graphicspipeline 101, 102, 201
`and 202 will be responsible for processing one-fourth of the tiles 92-99 ofthe repeating
`tile pattern. This results in increased graphics processing performance aseach graphics
`pipeline is responsible for processing one-quarter of total pixels maintainedin the frame
`
`buffer 68.
`
`FIG.6 is a flow chart of the operations performed by the graphics
`[0039]
`processing circuit 34 according to the present invention.
`In the multi-processor
`implementation, graphics processing circuits 34 and 54 perform substantially the same
`operations. In step 100, the front end circuitry 35 receives the graphics data 31 (FIG.2),
`for example, vertex data of an object to be rendered and generates corresponding pixel
`data 36 (FIG. 2) in response to the primitive data 31 in step 102. The pixel data may be
`generated by performing, for example, clipping, lighting, spatial transformations. matrix
`transformations and rasterizing operations on the graphicsdata 31.
`[0040]
`In step 104, the pixels within a setof tiles of the repeating tile pattern to be
`processed by a correspondingoneofthe at least two graphicspipelines in res

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket