`
`Volkswagen 1002 - Part 1 of 8
`
`
`
`0002
`
`
`
`..r-.
`
`.
`
`:i-
`
`I
`
`:..-rru 4"!
`iii; 5.4 Ahelflll
`
`cu/at/soiii,iiii,liiii|iiii|giiilT
`
`PTOISEIOS (0503)
`Approved [or use iirmugh (‘M1’3£i.'2EIE|3. ONIB 0651-G032
`-
`U.S. Patent and Trademark Orifice. U.S. DEPARTMENT OF COMNERC
`no mans re :uiredtoresn in = ouiiecrnoiinfonnaiion unieesn disla E =v|i I Boonlml numb
`
`No.—me
`"”*""'“' L‘*""‘°’
`"
`3L1';’;".°.et:‘3,:‘.f:1".::;°-r:‘:.!:?;°.E'°°"‘°‘
`
`Under1hePa mark Reducliormci M199
`
`PATENT”l:;'i|=T.TcA1'ioN
`TRANSM|TI'AL
`(ca-uy iioroow nmorumiarbrrei apoiicaiioox under 3? CFR ‘l.53.{b)J
`I
`
`See
`
`APPLICATION ELEMENTS
`MPEP chapter 600 concurring uiimy patent appiicaiion canlianis.
`
`4099533 To;
`
`Cornmiuiomr tor Paum
`
`:3! :t:In1:::InI nwticalion
`‘iuhndm VA 2au_.“5°
`
`1. [Z| Fee Transmiital Form (a.g., PTO!SBi'1'r')
`fsuianrii an arigiraianda aupiibaia brine processing)
`APP"C3l'|l daims Srflall 9|'I1i|1i 5l€lU5-
`393 37 CFR 1.27.
`[T0984 P3995
`Silefiifififlfiofl
`ifarefanao‘ arranges-ienisar forth baiovid
`- Desuipiive ill: of me invention
`- Cross Reierenne Ia Fiaiateu Appiiwtone
`-Siaterri
`l'i1I'
`Fed
`ed H E: D
`- Refarazgat Eesggqulenngce rs:?.fg°.':°1.5.oia.
`or a colnpuner program Iisiing appencix
`- Eiaciigroundoflhe inveniinn
`- Brief Summary of ihe invenifion
`- ariamesaipuion of the Drawings (ifiiiad)
`2313'?‘-17:3 Dmfipmm
`-Abaliaci afthe Disclosure
`
`1
`
`1. CI CD-ROM or CD-R in duplicate, iange table at
`Computer Program (Appendix)
`8, Nucleotide andfor Amino Acid Sequence Submission
`{fag ‘ abfa. 311' ngggssgryj
`a.
`Computer Reader Fon'n (CRF)
`b
`Specification Sequence Usting an:
`.
`i- D CD-ROM or CD-Fl (2 copies): or
`ii. D Paper
`
`‘
`
`c_ I:I srargmanm .,e,1 -,1 -
`ACCOMPANYING APPLICATION PARTS
`
`.
`.
`
`1
`[Tote-‘Sheets [:__Ii
`Drawmeisl (35 U-3-C- 113)
`4-
`IT‘-"*3" 3‘"°°'s 1
`5- 03"‘ °' Dedarafim
`_
`_
`.
`3- E "W9 °"°°‘-'19“ ‘°"9"‘a' °' °°F‘3")
`.
`.
`.
`o. |:| Copy from a poor a[:_m_'fii:aIioi1_ (37 CFR 1.s3(o))
`_
`(I'Of oontrnuationfdwsianai Wilh 50!! 13 completed)
`_
`A
`LEI .
`3‘9"°“. 5"‘*""'?“' °"~"F"°*_1 fleierihg inventortsi
`$fi5'§f;,'§'§;'°a,f:2f3fi,‘f§','F“”“' 3*” 3’ CF"
`
`.
`
`6. El
`
`Aopiicaiion Data Sheet. see '3? CFR 1.70
`
`Assignment Papers (cover sheet & docurnent(s))
`37 cm 3.73(b)Si:atemant
`Power of
`(when there is an assigneej
`Ariaomey
`English Translation Document (ifs
`J
`infoimation Eiisciosure
`Ifilcopies of I03
`Statement (|DS):'PTO-1499
`Citaiions
`pmiminaw Amendment
`Rem"-I Receipt posmard (MpEp 5.33]
`(Should be specificaiiy itemized)
`Ceflified copy of Priority nocumenus)
`fiffarafgn prroniy is ciaimeo)
`Nonpublicaiion Request under 35 u.s.c. 122
`(b)(2](B){i). Auplicant must attach form PTCNSBB5
`gr'li:r*_*¢lJ"V3'E"'-
`
`18. If a CONTINUING APPLICATEON, check appropriate box. and supply the requisite infonnatian beiow andin the firsisenience of ihe
`specification foflawfng the rifle. onn an Application Data Sheet under 3? CFR 1.75:
`
`D cantinuaiion-in-parl (CI?)
`
`of primappiicalion No.: ............................... ..
`Z Divisional
`D continuation
`Ar! i.im'i:00
`Examiner
`Friar application inlbrrnaiianr.
`For CONTINUATION OF DWISIONAL APPS only: The entire disclosure of the prlar application, hum which an nail: or declaraiinn is supplied under Box
`5b. is considered a part of the diachsnra ol lha aconm panylng oortlnualion or rllvisional up piicatiori and is hereby Incorporated by reference.
`The Incorporation gggniz be Milan upon when a portion has been Inadvoruniiy omitted from the submilmrl applicauan parts.
`1 9. CORRESPONDENCE ADDR§§
`,_
`am‘!
`
`D Cusmnrerflumberarfiar Coda Laban‘
`
`code
`
`i
`
`OR E Correspondence adifrees baiouv
`
`-
`
`Address
`
`'
`
`'
`
`:=1_.‘.ll.. 34414
`.
`06112103
`This mllaminn of iniorrr-alion Is required by 37 -
`- 1 .530-.-3. The inrorrnauon is -ulred no oblain or retain a Donafll by the public which is to File (and by me uspro In process)
`an appiioaiion.conrIiaaniiaityisgo~en1od was U.-5.0. 122 and 3? cm 1.1-. This ooiieniion '3 aaiimaisa in rain: 12 ninuras no oompieie. imiuaing gatnunng. preparing. and
`sub-nilllng the oomnienoa application iarm 02 Inc USPTD. Time will vary dapandng upon I|'iB inuwiouai case. Any oommoms on Iho amount of lime you require in complete lhis
`form andior suggaaiion: ior rududng ihis burden. shoild be sannntne chief Inion-naiion officer. us. Patel’! and Trademark ofilce. u.s. Dopariment of commerce. P.o. Box
`1450. Noxandria, VA 22313-1450. DO NOT SEND FEES OR COMPLETED FORMS TO THIS ADDRESS. SEND TO: Mail Stop Pahanl Appliclfiofl. CoI'I'IIlI|C850|'|II' fD|'
`Patents. PD. Ben: 1450. Aloamlflrla. VA 22313-1150.
`ifynu need assistance in can-Waring the form. caii‘ 1'-800-PTO-9199 and seiecr option 2.
`
`1083973
`
`60601
`312-609-500
`
`0003
`
`
`
`so/zi/9ii
`
`for
`Erfecdivo 01lOrl2OD3. Petentfeeeare subjectto annualreviolori.
`
`I
`
`TOTAL AMOUNT OF PEYMENT
`
`862.00
`
`‘!
`MAI:
`
`{Em-.1“
`
`r.-
`
`.»_yn.r=
`
`..n-I‘..-I‘
`
`5:?‘ "W
`.—.'v...a"
`
`-1"
`:1 ii»
`
`P'l'0.'SSi|1'i' [O1-03)
`Approved for use through D4i|'3Dl‘2003. OMB 0551-0032
`U.S. Patent and Tradeniark Office: US. DEPARTMENT OF COMMERCE
`1. n Iection ofinfonnalion unless it disl
`-
`aiid OMB n I number.
`
`—
`
`miner me T
`T
`D0-10o_02_0o53
`
`l
`
`|:|n.....
`
`3. Annrrioi~iAL FEES
`La eEnIlt
`Sn1aIlEntil
`
`Check Ucrecliicarici Ci glf-::_ll' D Other
`Demsafimmnu
`Deposit
`50 0441
`Fee Description
`,.,°,,°m°,‘,',',':
`55 Surcharge - late filing fee or oath
`2051
`_
`Deposit
`_
`.
`.
`.
`Account An 1-echnomgles Inn
`25 :;Ivf:I:rfi|Eeel late plOVIElCiI1fll1lllI"lQ fee or
`2062
`Name
`.
`- Commissioner is aufltorlzod to: check efllhat apply)
`130 N°n'En9h$h specification
`1°53
`130
`1053
`riarga ieeisi indicated iieiow
`Credit anti °V9|'P3it|'|'|9|'|l3
`1812 2.520 1312 2,520 For filing a request for experts reexamination
`ncharge any additional fee{s)dui1ng the pundunisy of this application mm 920
`180‘
`920 gtgilgwcauon of SR prior to
`Dcharee feels) indicated below. rixeevi ier the filinti in
`1305 1340' 1505 1,a4o- Requesting puiaiir.-iiinn OISIR after
`in the above-identified deosii amount.
`E"3""i"'°' “"9"
`1251
`110
`2251
`55 Extension [or reply within first month
`FEE CJILCULATION
`1252
`410
`2252
`295 Exiension for reply within second monih
`1. BASIC FILING FEE
`1253
`930
`2253
`465 Extension for reply iiiiitiiln third month
`
`51"
`
`3.
`
`2001 375
`29.02 155
`2903 259
`good, 375
`2005 an
`
` £
`Utility fiiing fee
`ggstgn fling pm,
`plan; gm-,9 fag
`Reissue fiflng fee
`pro...-355°.-mi fi|ing fea
`
`2254
`1254 1.450
`1255 1370 2255
`
`725 Extension for reply within fourth rriciriih
`935 Extension for reply within fifth month
`
`320
`1401
`320
`1402
`280
`1403
`1451 1,510
`
`2401
`2402
`2403
`1451
`
`160 Noiioe oliitppeal
`160 Filing a brief in support of an appeal
`140 Request for oral hoaring
`1,510 Petition to institute a public use proceeding
`
`SUB-I-O-I-AL (1)
`
`75030
`
`‘I10
`1452
`1453 1.300
`
`2452
`2453
`
`55 Petition to revive - unavoidable
`650 Petilionto revive-unintentional
`
`3501
`2' EXTRA CLAIM FEES FOR UT"'”:e§:L?nRElssUE 1501 1.300
` s fl
`1502 no 2502
`730°
`-20“=
`3‘
`1503
`330
`2503
`E22332:
`l-:l - 3"= El 1'‘E ‘l-07°-£1 1430
`130 Men
`Claims
`liil
`iii
`E 4:1 180?
`50
`U pie Dependent
`1506
`180
`Foo Fee
`For Dncrtggion
`cod, 5:,
`1202
`18
`1201
`34
`1203 23!)
`1204 M
`
`'
`
`Claims in exiceee of Z!
`independent claims in excess are.
`Multiple dependant claim. it not paid
`.. Remus mapendem chime
`over original patent
`"“ Reissue claims in emoese of 20
`and over original patent
`
`550 Utility issue fee (or reissue}
`235 assign issue lee
`315 Plant issueiee
`130 Petitions ioiiie Commissioner
`50 Processing toe under 37 CFR 1.1?[q]
`130 submission or Information Disclosure Stmi
`
`40 Recoidingleach patentassignrrii.-nt per
`props”? (“mas number at pmpamesi
`3?5 Filing a submission eiter lino! rejection
`(37 CFR 1.129(3))
`3:5 For each additional hirention to be
`examined (3? CFR 1.129(o))
`375 Request for Continued Examination {RCE}
`500 Request toreiipaditad examination
`or a design application
`
`SUBTOTAL (3)
`(Complete {itngpiicsoio
`
`3021
`1309
`
`40
`3'50
`
`rso
`
`750
`
`2801
`1302
`1,
`
`SUBTOTAL (2)
`
`-. ,
`
`g ml
`
`niaina fPn7'iO‘Type}
`
`Christopher J. Reckamp
`
`_
`
`34_414
`
`Teieprtane 312-609-7598
`
`WARNING: informa -" on this fonn may been . public. Credit oard inforination should not
`be included on this form. Provide credit card infomtation and authorization on PTO-2033.
`This collection of iiiforrnalion is required by 37 CFR 1.17 and 1.27. The lnforrneiion is required to obtain or retain a benefit by the public which is to file (and by the
`USPTO to process) an application. Confidentiality is governed by 35 U.$.C. 122 and 37 CFR 1.14. This collection is estimated to take 12 minutes to oornpleie.
`iicluding gathering. preparing. and submitting the completed application form to the USPTO. Time with vary depending upon the individual case. Any comments on
`the amount of time you require to complete this town endior suggestions For reducing this burden. should be sent to the Chief intonnation Officer. U.5. Paieril and
`Trademark Oiifice. U.S. Depamuen: of commerce. Washington. DC 20231. DO NOT SEND FEES OR COMPLETED FORMS TO THIS ADDRESS. SEND TO:
`Commissioner for Patients. Washington, Dc 20231.
`" 954914
`iryou need assistance in completing the ram. call l~800~FTO-91.9£If1-800-?'£6-9199] and select option 2.
`
`0004
`
`
`
`-~s= WM arr
`es. "vi ...'._.,l.
`
`,.
`
`J"
`
`am Mr
`Jr J-"
`
`--.-.
`-
`-
`«-~u..-r
`l‘.»..im‘L'mii. 3:31‘ {ii.::§'
`
`_u.-
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`Applicants: Leather et al.
`
`Serial No.:
`
`Examiner:
`
`Art Group:
`
`Filing Date: June 12, 2003
`
`Docket No: 00100.02.00S3
`
`Title: DIVIDING WORK AMONG MULTIPLE GRAPHICS PIPELINES USING A
`
`SUPER-TILING TECHNIQUE
`
`Mail Stop Patent Application
`Commissioner for patents
`13.0. Box I 450
`.
`memaml va zzmso
`
`Cernfieale ofExpress Man‘
`I hereby certify that this paper is being deposited with the
`United States Pas-:a!.‘1‘ervice “Express Mail Post agree to
`Addressee” service under 37 CFR (.10, on the data
`indicated and is addressed to Mail Stop Patent
`A
`I"
`'
`C "
`P
`,
`.03" I450.
`,::;;:::?:V:*;;;:;::::'J°*
`"
`:*
`Express Mai! No. E V 0633 M627 US.
`a
`1
`It
`Do is
`Winona K. JECJUIJ-II
`
`PRELIMINARY AMENDMENT
`
`Dear Sir:
`
`Prior to examination, Applicants respectfully request that the above-identified application
`
`be amended as follows:
`
`In The Specification:
`
`Please add the following new paragraph directly below the invention title 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.
`
`CHIC AGO!!! 1083968.]
`
`0005
`
`
`
`._
`-.
`-.=“ ,..azr,-.- .|
`
`"'.3_’.’
`51"‘!
`'4.‘ ah." _--..:I
`
`REMARKS
`
`Applicants submit that the specification is fully supported by the original provisional
`
`application, and the claims are fully supported by the originally filed provisional application.
`
`Respectfully submitted,
`
`By: 4 4
`Chris opher J. Rcckamp
`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
`
`CHICAGOM I 083958. I
`
`0006
`
`
`
`Li.
`
`9
`
`§"i '3’
`.-.-.... t'J:I..'.!'JJl
`
`'
`
`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 GRAPHICS PIPELINES
`USING A SUPER-TILING TECHNIQUE
`
`INVENTORS:
`
`Mark M. Leather
`12187 Woodside Drive
`
`Saratoga, California 95070
`
`Eric Demers
`
`901 Sycamore Drive
`Palo Alto, California 94303
`
`ATTORNEY OF RECORD:
`CHRISTOPHER J. RECKAMP
`
`REGISTRATION NO. 34,414
`VEDDER PRICE KAUFMAN & KAMMHOLZ
`222 NORTH LASALLE STREE'I', SUITE 2600
`CHICAGO, ILLINOIS 60601
`PHONE (312) 509-7500
`FAX (312)609-5005
`
`Express Mail Label No.: EV 063310627 US
`Date of Deposit: J une 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 l.l0 on the
`‘Date of Deposit‘, indicated above, and is addressed
`to: Mail Stop Patent Application, Commissioner of Parents,
`P. 0. Box 1450, Alexandria, VA, 22313-1450.
`
`Name of Depositor: Winona K. Jackson
`
`0007
`
`
`
`.1
`
`'i~5i:3l§ _'.I‘-'-”’ 3-" ...
`
`(:51!
`
`020053
`
`DIVIDING WORK AMONG MULTIPLE GRAPHICS PIPELINES USING A
`
`SUPER-TILING TECHNIQUE
`
`RELATED CO—PENDING APPLICATION
`
`[0001]
`
`This is a related application to a co-pending application entitled “Parallel
`
`Pipeline Graphics System” having docket number 010025, having serial number
`
`, having Leather et al. as the inventors, filed on even date,
`
`owned by the same assignee and hereby incorporated by reference in its entirety.
`
`FIELD OF THE INVENTION
`
`[0001]
`
`The present invention generally relates to graphics processing circuitry
`
`and, more particularly, to dividing graphics processing operations among multiple
`
`pipelines.
`
`BACKGROUND OF THE INVENTION
`
`[0002]
`
`Computer graphics systems, set top box systems or other graphics
`
`processing systems typically 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 comprised of a 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 appearance attributes 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 manner that corresponds to the pixels location on the
`
`display device.
`
`[0003]
`
`FIG. 1 illustrates a conventional display device 10, having a screen 12
`
`partitioned into a series of vertical strips 13-18. The strips 13-13 are typically I-4 pixels
`
`in width. In like manner, the frame buffer of conventional graphics processing systems is
`
`partitioned into a series of vertical strips having the same screen space width.
`
`1
`
`0008
`
`
`
`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 performed by the graphics processing circuitry on each of the
`
`primitives provided by the host. Once all calculations have been performed on the
`
`primitives, the pixel data representing the object to be displayed is written into the frame
`
`buffer. Once the graphics calculations have been repeated for all primitives associated
`
`with a specific frame, the data stored in the frame buffer is rendered to create a video
`
`signal that is provided to the display device.
`
`[0004]
`
`The amount of time taken for an entire frame of infonnation to be
`
`calculated and provided to the frame buffer becomes a bottleneck in graphics systems as
`
`the calculations associated with the graphics become more complicated. Contributing to
`
`the increased complexity of the graphics calculation is the increased need for 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 becomes distorted or choppy when the amount
`
`of time taken to render an entire frame of video exceeds the amount of 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 primitive processing among several graphics processing circuits where,
`
`for example, one graphics processing circuit is responsible for one vertical strip (eg. 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. when all of
`
`the primitives 20-23 of a particular objector scene are located in one strip (e.g. strip 13)
`
`as illustrated in FIG. 1. When this occurs, only the graphics processing circuit
`
`responsible strip 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 performance is decreased as the system is only operating at a
`
`maximum of fifty percent capacity.
`
`0009
`
`
`
`020053
`
`[0006]
`
`Changing the width of the strips has been employed to counter the system
`
`performance problems. However, when the width of a strip is increased, the load
`
`balancing problem is enhanced as more primitives are located within a single strip;
`
`thereby, increasing the processing required of the graphics processing circuit responsible
`
`for that strip, while the remaining graphics processing circuits remain idle. When the
`
`width of the strip is decreased (e.g. four hits to two bits), cache (e.g. texture cache)
`
`efficiency is decreased as the number of cache lines employed in transferring data is
`
`reduced in proportion to the decreased width of the strip. In either case, graphics
`
`processing system perfonnance is still decreased due to the idle graphics processing
`
`circuits.
`
`[0007]
`
`Frame based subdivision has been used to overcome the performance
`
`problems associated with conventional partitioning systems. In fi-ame based subdivision,
`
`each graphics processor is responsible for processing an entire frame, not strips within the
`
`same frame. The graphics processors then alternate frames. However, frame subdivision
`
`introduces one or more frames of latency between the user and the screen, which is
`
`unacceptable in real-time interactive environments, for example, providing graphics for a
`
`flight simulator application.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0008]
`
`The present invention and the related advantages and benefits provided
`
`thereby, will be best appreciated and understood upon review of the 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 conventional display 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
`
`embodiment of 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;
`
`0010
`
`
`
`[(1012]
`
`FIG. 4 is a schematic block diagram of a memory partitioned into a super-
`
`tile pattern according to an altemate embodiment of the present invention;
`
`[0013]
`
`FIG. 5 is a schematic block diagram of a.n exemplary multi—pipelinc
`
`graphics processing circuit used in a multi processor configuration according to an
`
`alternate embodiment of the present invention;
`
`[0014]
`
`FIG. 6 is a flow chart of the operations performed by the graphics
`
`processing circuit according to the present invention;
`
`[0015]
`
`FIG. 7 is a diagram illustrating a polygon bounding box to determine
`
`which, if a polygon fits in a tile or super tile; and
`
`[0016]
`
`FIG. 8 is a schematic block diagram of an exemplary rnulti—pipeline
`
`graphics processing circuit used in a multi processor configuration according to an
`
`alternate embodiment of the present invention.
`
`0011
`
`
`
`DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
`
`[0017]
`
`A multi-pipeline graphics processing circuit includes at least two pipelines
`
`operative to process data in a corresponding tile of a repeating tile pattern, a respective
`
`one of the 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 coupled to a fiarne bufier
`
`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 cache utilization is enhanced.
`
`[0018]
`
`A multi-pipeline graphics processing method includes receiving vertex
`
`data for a primitive to be rendered, generating pixel data in response to the vertex data,
`
`detennining the pixels within a set of tiles of a repeating tile pattern to be processed by a
`
`corresponding one of at least two graphics pipelines in response to the pixel data, the
`
`repeating tile pattem including a horizontally and vertically repeating pattern of square
`
`regions, and performing pixel operations on the pixels within the determined set of tiles
`
`by the corresponding one of the at least two graphics pipelines. An exemplary
`
`embodiment of 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 embodiment of the 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 processing circuit 34 will be described in detail. An
`
`alternate embodiment, employing both graphics processing circuits 34 and 54 will be
`
`discussed in greater detail below with reference to FIGS. 4-5.
`
`[0020]
`
`Graphics data 31, for example, vertex data of a primitive (e.g. triangle) 80
`
`(FIG. 3) is transmitted as a series of strips to the graphics processing circuit 34. As used
`
`herein, graphics data 31 can also include video data or a combination of video data and
`
`graphics data. The graphics processing circuit 34 is preferably a portion of a stand-alone
`
`graphics processor chip or may also be integrated with a host processor or other circuit, if
`
`0012
`
`
`
`"1! "El"? mg"
`T! ‘:35.
`P.‘ um! um! 2-13.! Emu than Rial“
`
`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 thelhost and
`provides the graphics data 3] to the graphics processing circuit 34 for further processing.
`
`[0021]
`
`The graphics processing circuit 34 includes a first graphics pipeline 101
`
`operative to process graphics data in a first set of tiles as discussed in greater detail
`
`below. The first pipeline 101 includes front end circuitry 35, a scan converter 3?, and
`
`back end circuitry 39. The graphics processing circuit 34 also includes a second graphics
`
`pipeline 102, operative to process graphics data in a second set 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
`
`fiont end circuitry 35, a scan converter 40, and back end circuitry 42. Thus, the graphics
`
`processing circuit 34 of the present invention is contigured as a multi-pipeline circuit,
`
`where the back end circuitry 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 of the first
`
`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. The illustrated graphics processing circuit 34 has the first andisecond
`
`pipelines 101-102 present on the same chip. However, in alternate embodiments, the first
`
`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 end circuitry 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
`
`0013
`
`
`
`\
`
`operations on the primitive data 31. The pixel data 36 is then transmitted to the
`
`respective scan converters 3? and 40 of the two graphics pipelines 101-102.
`
`[0023]
`
`The scan converter 37 of the 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 on the tile 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 corresponds to the back end circuitry 39 being responsible for
`
`processing the tiles labeled “A” (e. g. 72 and 75) in FIG. 3. Although the pixel
`
`identification line 38 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 a configuration is contemplated by the present
`
`invention and is within the spirit and scope of the instant disclosure.
`
`[0024]
`
`Back end circuitry 39 may include, for example, pixel shaders, blending
`
`circuits, 2-buffers or any other circuitry for perfonning 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 end circuitry 42 by determining those pixels of
`
`the primitive, for example, the pixels within portions 83-84 of the 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 based on the tile identification data
`
`present on the pixel identification line 41 of the scan converter fill. The pixel
`
`0014
`
`
`
`identification line 4] is illustrated as being hard wired to Vcc; thus, the tile identification
`
`data corresponds to a logical one. This corresponds to the back end circuitry 42 being
`
`responsible for processing the tiles labeled “B” (e.g. 73-74) in FIG. 3. Although the pixel
`
`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 ofthe instant disclosure.
`
`[0026]
`
`Back end circuitry 42 may include, for example, pixel shaders, blending
`
`circuits, 2-butters or any suitable circuitry for performing pixel appearance attribute
`
`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. The 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 end circuitry 39 and 42; transmit and retrieve
`
`pixel data 49 from the graphics memory 43; 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 CR1‘, a high definition television (HDTV) or any other device or combination
`
`thereof.
`
`[0028]
`
`Graphics memory 48 may include, for example, a frame buffer that also
`
`stores one or more texture maps. Referring to FIG. 3, the frame buffer portion of the
`
`graphics memory 48 is partitioned in a repeating tile pattern of horizontal and vertical
`
`square regions or tiles 72-75, where the regions 72-75 provide a two dimensional
`
`partitioning of the flame buffer portion of the memory 48. Each tile is implemented as a
`
`16 x 16 pixel array. The repeating tile pattem of the frame buffer 48 corresponds to the
`
`partitioning of the corresponding display 51 (FIG. 2). When rendering a primitive (cg.
`
`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 7'5, as the back
`
`end circuitry 39 is responsible for the processing of tiles corresponding to tile
`
`identification 0 present on pixel identification line 38 (FIG. 2). In corresponding fashion,
`
`the second graphics pipeline 102 processes only those pixels in portions 83, 84 of the
`
`0015
`
`
`
`primitive 80 that intersects tiles labeled “B", for example 73-74, as the back end circuitry
`
`42 (FIG. 2) is responsible for the processing of tiles corresponding to tile identification 1
`
`present on pixel identification line 41 (FIG. 2).
`
`[0029]
`
`By configuring the flame buffer 48 according to the present invention, as
`
`the primitive data 31 is typically written in strips, the tiles (e.g. 72 and 75) being
`
`processed by the first graphics pipeline 10] 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 of processing perfonned by the first
`
`graphics pipeline 101 and the second graphics pipeline 102, respectively, are
`
`substantially equal; thereby, efiectively eliminating the load balance problems exhibited
`
`by conventional techniques.
`
`‘ [0030]
`
`FIG. 4 is a schematic block diagram of a ti-ame buffer 68 partitioned into a
`
`super-tile pattern according to an alternate embodiment ofthe present invention. Such a
`
`partitioning would be used, for example, in conjunction with a multi-processor
`
`implementation to be discussed below with reference to FIG. 5. As illustrated, the frame
`
`buffer 68 is partitioned into a repeating tile pattern where the tiles, for example, 92-99
`
`that form the repeating tile pattern are the responsibility of and processed by a
`
`corresponding one of the graphics pipelines provided by the muiti-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 or other suitable 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 increased fill rate of, for example, 9.6 billion pixels/sec with a triangle rate of
`
`300 million triangles/sec. This represents a tremendous performance increase as
`
`compared to conventional graphics processing