throbber
LINITED STATES PATENT AND TRADEMARK OFFICE
`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`
`
`BEFORE TFIE PATENT TRIAL AND APPEAL BOARD
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`LG ELECTRONICS, [NTC.,
`LG ELECTRONICS, INC.,
`Petitioner,
`Petitioner,
`
`v.
`V
`
`ATI TECHNOLOGIES ULC,
`ATI TECHNOLOGIES ULC,
`Patent Owner.
`Patent Owner.
`
`Case IPR2015-00326
`Case IPR2015-00326
`Patent 6,897,871
`Patent 6,897,871
`
`DECLARATION OF' II¡'VENTOR LAURENT LEFEBVRE
`DECLARATION OF INVENTOR LAURENT LEFEBVRE
`REGARDTNG THE INVENTTON DATE OF U.S. PATENT NO. 6,897,871.
`REGARDING THE INVENTION DATE OF U.S. PATENT NO. 6,897,871
`
`Maíl Stop "Patent Board"
`Mail Stop "Patent Board"
`Patent Trial and Appeal Board
`Patent Trial and Appeal Board
`U.S. Patent and Trademark Office
`U.S. Patent and Trademark Office
`P.O. Box 1450
`P.O. Box 1450
`Alexandria, VA 223 13 -1450
`Alexandria, VA 22313-1450
`
`$ (cid:9)
`
`EXHIBIT
`
`i4fi* -,§
`(--Fq" (cid:9)
`6
`6 4..irn
`
`ATI2006
`ATI 2006
`LG v. ATI
`LG v. ATI
`IPR2015-00326
`rPR2015-00326
`
`LG Ex. 1037
`LG v. ATI
`IPR2015­00330
`
`LG Ex. 1037, pg 1
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 1 of 66
`
`

`

`
`
`Table of Contents
`Table of Contents
`
`I.
`BACKGROUND
`I. BACKGROUND (cid:9)
`II. CONCEPTION
`II. CONCEPTION (cid:9)
`A.
`A. R400 Architecture Proposal (cid:9)
`R400 Architecture Proposal
`
`B.
`B.
`
`R400 Top Level Specification (cid:9)
`R400 Top Level Specification.
`R400 Shader Processor
`C. R400 Shader Processor (cid:9)
`C.
`D. R400 Sequencer Specification (cid:9)
`D.
`R400 Sequencer Specification
`
`1
`1
`
`aJ
`3
`
`4
`
`5
`5
`
`7
`..........7
`
`7
`7
`
`2.
`2
`
`R400 Sequencer Specification (Version 0.4): August
`1. R400 Sequencer Specification (Version 0.4): August
`I
`24,200r....,;...........
`24, 2001 (cid:9)
`R400 Sequencer Specification (Version 2.0): April 19,
`R400 Sequencer Specification (Version 2.0): April 19,
`2002
`2002 (cid:9)
`18
`...........18
`ru. DILIGENCE
`III. DILIGENCE (cid:9)
`I Periodically Updated the R400 Sequencer Specification .................21
`A.
`21
`I Periodically Updated the R400 Sequencer Specification (cid:9)
`A.
`
`8
`.......8
`
`21
`2T
`
`My Colleagues and I Continuously Developed and
`B. My Colleagues and I Continuously Developed and
`B.
`Debugged Emulation Code and RTL Code for the R400
`Debugged Emulation Code and RTL Code for the R400 (cid:9)
`IV. TESTING SHOWED THAT TI{E RTL IMPLEMENTATION
`IV. (cid:9)
`TESTING SHOWED THAT THE RTL IMPLEMENTATION
`WORKED FOR ITS INTENDED PURPOSE..
`WORKED FOR ITS INTENDED PURPOSE (cid:9)
`V. DILIGENCE CALENDAR
`V. (cid:9)
`DILIGENCE CALENDAR (cid:9)
`VI. EXHIBITS
`VI. EXHIBITS (cid:9)
`
`22
`22
`
`28
`28
`
`aa
`33
`JJ
`
`61
`6T
`
`LG Ex. 1037, pg 2
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 2 of 66
`
`

`

`
`
`I, Laurent Lefebvre, declare as follows:
`I, Laurent Lefebvre, declare as follows:
`
`I. BACKGROT]ND
`I. BACKGROUND
`1.
`I am a computer-graphics hardware architect at AMD Inc. I have been
`I am a computer-graphics hardware architect at AMD Inc. I have been
`1.
`
`designing computer-graphics processors for the past fifteen years. I specialize in
`designing computer-graphics processors for the past fifteen years. I specialize in
`
`sequencers, shaders, 3 D-computer graphics, and integrated-circuit design
`sequencers, shaders, 3D-computer graphics, and integrated-circuit design.
`
`2. From September 2000 to November 2006,I worked as an engineer
`From September 2000 to November 2006, I worked as an engineer
`2.
`
`and hardware architect for ATI Technologies Inc. ("ATI"). It is my understanding
`and hardware architect for ATI Technologies Inc. ("ATI"). It is my understanding
`
`that ATI hired me to develop technologies for the R400, which is a graphics
`that ATI hired me to develop technologies for the R400, which is a graphics
`
`processor. Information relating to ATI's development of the R400 is confidential
`processor. Information relating to ATI's development of the R400 is confidential
`
`and proprietary.If this information became public, it would put ATI/AMD at a
`and proprietary. If this information became public, it would put ATI/AMD at a
`
`competitive disadvantage because it would give ATI/AMD's competitors access to
`competitive disadvantage because it would give ATI/AMD's competitors access to
`
`proprietary algorithms, implementation details, and development schedules for the
`proprietary algorithms, implementation details, and development schedules for the
`
`R400 design.
`R400 design.
`
`3.
`Ilnlike conventional graphics processors at the time, the R400 used a
`3. Unlike conventional graphics processors at the time, the R400 used a
`
`unified shader for both pixel commands and vertex commands-two types of
`unified shader for both pixel commands and vertex commands—two types of
`
`commands required to produce an image. Conventional graphics processors had
`commands required to produce an image. Conventional graphics processors had
`
`separate shaders for pixel commands and vertex commands. But a unified shader,
`separate shaders for pixel commands and vertex commands. But a unified shader,
`
`like the R400's unified shader, enhances functionality and efficiency by allowing
`like the R400's unified shader, enhances functionality and efficiency by allowing
`
`the same shader complex to be used for both pixel commands and vertex
`the same shader complex to be used for both pixel commands and vertex
`
`I
`1
`
`LG Ex. 1037, pg 3
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 3 of 66
`
`

`

`
`
`commands. The R400's unified-shader architecture was later included in a chip
`
`called the Xenos chip. The Xenos chip was in the Microsoft® Xbox 360®.
`called the Xenos chip. The Xenos chip was in the Microsoft@ Xbox 360@
`
`4. The R400 includes many different functional blocks (e.g., the
`The R400 includes many different functional blocks (e.g., the
`4. (cid:9)
`
`sequencer, shader pipe, primitive assembly, texture cache, texture Pipe, raster
`sequencer, shader pipe, primitive assembly, texture cache, texture pipe, raster
`
`engine, display, etc.). See, e.g.,Ðx.2053, p. 6. The PowerPoint slide titled Block
`engine, display, etc.). See, e.g., Ex. 2053, p. 6. The PowerPoint slide titled Block
`
`Responsibility (reproduced below) shows tne ÁTI office responsible for designing
`Responsibility (reproduced below) shows the ATI office responsible for designing
`
`each block.
`each block.
`
`Block Responsibility
`ll¡
`
`P.100 tk.:St Dwr
`0+ ....ono,
`
`R404 Eiock
`lii 00.13
`
`R40 ttadS
`0.71 Mob.
`
`FGOO Deck
`'reetebo.
`
`nII
`
`
` (cid:9)
`▪ GM
`Yen Ideal.
`
`METT▪ F▪ ah7r
`
`VStea IVILI
`
`1
`:il
`IH
`"rrtlt,:
`hIprcey.fr4k-
`
`rlÌ
`
`
`emry M
`
`COM iller
`
`Pc
`
`iRefON Coma
`aad.6.Tari
`
`CG
`
`Us& beraufa,
`DOM Conteral
`
`'CUM
`
`TON I. CPO.,
`THU. Pip,
`
`oomoÃlllll,
`
`CP
`
`Rrelze
`
`Id
`Id.
`
`il
`
`-2-
`-2
`
`LG Ex. 1037, pg 4
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 4 of 66
`
`

`

`
`
`5. For the R400 project, I was responsible for the sequencer block,
`5.
`For the R400 project, I was responsible for the sequencer block,
`
`which is the block thatmanages the execution of pixel commands and vertex
`which is the block that manages the execution of pixel commands and vertex
`
`commands for the unified shader. In particular, I drafted the high-level
`commands for the unified shader. In particular, I drafted the high-level
`
`specification that describes the sequencer block's functionality, and I wrote
`specification that describes the sequencer block's functionality, and I wrote
`
`emulator code for the sequencer block. In addition, I was also co-responsible for
`emulator code for the sequencer block. In addition, I was also co-responsible for
`
`emulating the shader pipe block and the export block.
`emulating the shader pipe block and the export block.
`
`6.
`6.
`
`I am one of the named inventors of U.S. Patent No. 6,897,871 ("the
`I am one of the named inventors of U.S. Patent No. 6,897,871 ("the
`
`'871 patent"). The other named inventors are Steve Morein, Andy Gruber, and
`'871 patent"). The other named inventors are Steve Morein, Andy Gruber, and
`
`Andi Skende. W.e collectively conceived of the graphics-processing system
`Andi Skende. We collectively conceived of the graphics-processing system
`
`claimed in the '87I patent no later than early 2002, while working on the R400
`claimed in the '871 patent no later than early 2002, while working on the R400.
`
`See infra Part II. A team of my colleagues and I, which totaled about one hundred
`See infra Part II. A team of my colleagues and I, which totaled about one hundred
`
`engineers, worked on the R400 nearly every business day from no later than early
`engineers, worked on the R400 nearly every business day from no later than early
`
`2002 to November 20,2003. See infra Parts III, V. No later than the third quarter
`2002 to November 20, 2003. See infra Parts III, V. No later than the third quarter
`
`of 2002, we made a GPU in register-transfer-language ("RTL") code that worked
`of 2002, we made a GPU in register-transfer-language ("RTL") code that worked
`
`to process a first triangle. See infra Part IV.
`to process a first triangle. See infra Part IV.
`
`II. CONCEPTION
`II. CONCEPTION
`7 . No later than early 2002, Steve Morein, Andy Gruber, Andi Skende,
`7. No later than early 2002, Steve Morein, Andy Gruber, Andi Skende,
`
`and I collectively conceived of the graphics-processing system in the '87I patent.
`and I collectively conceived of the graphics-processing system in the '871 patent.
`
`We each contributed different aspects to this system. Steve Morein came up with
`We each contributed different aspects to this system. Steve Morein came up with
`
`the idea for a unified shader. This is shown, for example, in documents titled
`the idea for a unified shader. This is shown, for example, in documents titled
`
`-3-
`- 3 -
`
`LG Ex. 1037, pg 5
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 5 of 66
`
`

`

`
`
`"R400 Architecture Propos al" and "R400 Top Level Specification." Ex. 2040, p. l;
`"R400 Architecture Proposal" and "R400 Top Level Specification." Ex. 2040, p. 1;
`
`8x.2041, p. 1. Andy Gruber was the lead architect for the shader pipe. Andy
`Ex. 2041, p. 1. Andy Gruber was the lead architect for the shader pipe. Andy
`
`Gruber worked with Andi Skende to come up with ideas for implementing the
`Gruber worked with Andi Skende to come up with ideas for implementing the
`
`shader pipe and author the shader processor specification. This is shown, for
`shader pipe and author the shader processor specification. This is shown, for
`
`example, in a document titled "Shader Processor." Ex. 2042, p. 1. And I was the
`example, in a document titled "Shader Processor." Ex. 2042, p. 1. And I was the
`
`lead for the sequencer block. This is shown, for example, in a document titled
`lead for the sequencer block. This is shown, for example, in a document titled
`
`"R400 Sequencer Specification." 8.g., 8x.2007, p. l. I explain each of these
`"R400 Sequencer Specification." E.g., Ex. 2007, p. 1. I explain each of these
`
`documents in turn below
`documents in turn below.
`
`A. R400 Architecture Proposal
`A. R400 Architecture Proposal
`8. Steve Morein authored the "R400 Architecture Proposal." Ex. 2040,
`8. (cid:9)
`Steve Morein authored the "R400 Architecture Proposal." Ex. 2040,
`
`p. 1. In this proposal, the R400 includes a unified shader that performs both pixel
`p. 1. In this proposal, the R400 includes a unified shader that performs both pixel
`
`operations and vertex operations. See id. at 9. The R400 also includes a unified
`operations and vertex operations. See id. at 9. The R400 also includes a unified
`
`processing pipe (i.e., a single programmable pipeline for 2D video, 3D vertex, and
`processing pipe (i.e., a single programmable pipeline for 2D video,3D vertex, and
`
`3D pixel operations). ,See id. at 6 ("The most ambitious feature in this design is the
`3D pixel operations). See id. at 6 ("The most ambitious feature in this design is the
`
`'truly unified pipe': a single programmable pipeline."). V/ith a single pipeline for
``truly unified pipe': a single programmable pipeline."). With a single pipeline for
`
`both pixel commands and vertex commands, the graphics processor had higher
`both pixel commands and vertex commands, the graphics processor had higher
`
`color precision and the ability to support more registers, compared with a
`color precision and the ability to support more registers, compared with a
`
`conventional graphics pipeline. See id.
`conventional graphics pipeline. See id.
`
`-4-
`4
`
`LG Ex. 1037, pg 6
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 6 of 66
`
`

`

`
`
`B. R400 Top Level Specifïcation
`B. R400 Top Level Specification
`9. Steve Morein also authored the "R400 Top Level Specification,"
`9.
`Steve Morein also authored the "R400 Top Level Specification,"
`
`which sets forth the high-level architecture for the R400. Ex. 2047, p. 1. As shown
`which sets forth the high-level architecture for the R400. Ex. 2041, p. 1. As shown
`
`in this document, the R400 Top Level Specification includes a sequencer. See e.g.,
`in this document, the R400 Top Level Specification includes a sequencer. See e.9.,
`
`id. at27-28,30. The sequencer manages the instructions for the unified shader. ,See
`id. at 27-28, 30. The sequencer manages the instructions for the unified shader. See
`
`id. at 11 ("Before starting the processing . . . the rasterizer (which includes the
`id. at 11 ("Before starting the processing . . . the rasterizer (which includes the
`
`sequencer for the shader pipeline) checks to make sure that there are enough free
`sequencer for the shader pipeline) checks to make sure that there are enough free
`
`registers in the shader pipeline for the pixel shader program."),27 ("The raster
`registers in the shader pipeline for the pixel shader program."), 27 ("The raster
`
`engine . . . contains the sequencer for the shader pipe.")
`engine . . . contains the sequencer for the shader pipe.").
`
`10. The R400 Top Level Specification includes a block diagram of the
`10. The R400 Top Level Specification includes a block diagram of the
`
`sequencer's control flow (reproduced below for reference)
`sequencer's control flow (reproduced below for reference).
`
`5
`5
`
`LG Ex. 1037, pg 7
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 7 of 66
`
`

`

`
`
`
`
`
`mtlesipbset victor obits***
`
`dctry for r
`Possible delay for availibk OPR's
`
`c0
`ALII clause 0
`-41--esereation station
`staliou
`
`A (cid:9)
`
`FRR941 (cid:9)
`
`
`
`PP=I (cid:9)
`
`tram arbitrator
`
`cl
`.4_,ALLT rialto I
`reservation station
`¡trtioa
`
`ALU clause 2
`cta¡æ 2
`nsereattou station
`¡tolioa
`
`1-1= (cid:9)
`
`.4__ALTT clause 3
`3
`enervation station
`ç¿tioa
`
`,i_ALUclause 4
`4
`eserration station
`¡letioo
`
`0{7751
`.4—Frrai (cid:9)
`
`0.= (cid:9)
`
`
`ALU ciraM 5
`5
`reservation station
`¡16tio|¡
`
`din__ALU clause 6
`cln¡se 6
`reservation station
`Etâtior¡
`
`c7
`ALU clause 7
`reservation station
`st¿tim
`
`411- FIFO
`
`astute clause 0
`0
`'overran= station
`I
`
`cl
`intim clans' 1
`lit (cid:9)
`nervation station
`g
`
`rill.
`
`Wise arbitrator
`ot
`
`c¿
`astute clause 2
`¡l
`sariution station
`
`n
`
`c3
`libtexttire clause 3
`morainal' station
`
`E
`
`IIPPTexture clause 4
`cl¡u¡c 4
`reservation station
`¿lrtim
`
`Ir'finsture clause 5
`teservation oration

`
`Texture dame 6
`6
`teservation station
`
`1111 'Texture clause 7
`7
`-starvation station
`
`Id. at30.
`Id. at 30.
`
`-6-
`
`LG Ex. 1037, pg 8
`
`(cid:9)
`(cid:9)
`ATI Ex. 2118
`
`IPR2023-00922
`Page 8 of 66
`
`

`

`
`
`11. This block diagram includes three arbitratorst: (1) a "vertex/pixel
`11. (cid:9)
`This block diagram includes three arbitrators': (1) a "vertex/pixel
`
`vector arbitrator" atthe top of the diagram; (2) a"texture arbitrator" on the left side
`vector arbitrator" at the top of the diagram; (2) a "texture arbitrator" on the left side
`
`of the diagram; and (3) a "texture arbitrator" on the right side of the diagram. See
`of the diagram; and (3) a "texture arbitrator" on the right side of the diagram. See
`
`id. The "texture arbitrator" on the left side is mislabeled. This arbitrator should be
`id. The "texture arbitrator" on the left side is mislabeled. This arbitrator should be
`
`labeled "ALIJ arbitrator" to correspond to the ALU reservation stations. I describe
`labeled "ALU arbitrator" to correspond to the ALU reservation stations. I describe
`
`the control flow for this block diagram in Part II.D.1 of this declaration.
`the control flow for this block diagram in Part II.D.1 of this declaration.
`
`C. R400 Shader Processor
`C. R400 Shader Processor
`12. Andy Gruber and Andi Skende authored the "Shader Processor,"
`12. (cid:9) Andy Gruber and Andi Skende authored the "Shader Processor,"
`
`which describes the shader architecture, interfaces, partitioning, and timing of the
`which describes the shader architecture, interfaces, partitioning, and timing of the
`
`shader. 8x.2042, p. 1. The shader processor had four identical Shader pipelines in
`shader. Ex. 2042, p. 1. The shader processor had four identical Shader pipelines in
`
`the R400 architecture, each pipe capable of operating on ALU instructions for
`the R400 architecture, each pipe capable of operating on ALU instructions for
`
`vertex parameters and pixel values. See id. at 5
`vertex parameters and pixel values. See id. at 5
`
`D. R400 Sequencer Specification
`D. R400 Sequencer Specification
`13. I authored the "R400 Sequencer Specificatioî," which is the
`I authored the "R400 Sequencer Specification," which is the
`13. (cid:9)
`
`architectural specification for the R400 sequencer block. Ex. 2007, p. 1. There are
`architectural specification for the R400 sequencer block. Ex. 2007, p. 1. There are
`
`1 The term"arbitratot" is interchangeable with the term "arbiter." See, e.g.,
`'The term "arbitrator" is interchangeable with the term "arbiter." See, e.g.,
`
`Ex.2023, pp. 9-10 (identi$'ing the control flow diagram as: "Figure 2: Reservation
`Ex. 2023, pp. 9-10 (identifying the control flow diagram as: "Figure 2: Reservation
`
`stations and arbiters").
`stations and arbiters")
`
`-7 -
`7
`
`LG Ex. 1037, pg 9
`
`(cid:9)
`(cid:9)
`(cid:9)
`ATI Ex. 2118
`
`IPR2023-00922
`Page 9 of 66
`
`

`

`
`
`at least thirty three revisions of this specification. SeeEx.2039, pp. 4-5;8xs.2007-
`at least thirty three revisions of this specification. See Ex. 2039, pp. 4-5; Exs. 2007-
`
`38. Each revision updates the specification.
`38. Each revision updates the specification.
`
`14. I developed two versions of the sequencer's control flow. SeeEx.
`14. 1 developed two versions of the sequencer's control flow. See Ex.
`2010;8x.2028. 'When I filed the patent application that led to the '871 pafent,I
`2010; Ex. 2028. When I filed the patent application that led to the '871 patent, I
`
`intended this patent application to cover both versions of the sequencer's control
`intended this patent application to cover both versions of the sequencer's control
`
`flow
`flow.
`
`15. The first version, described in Version 0.4 of the R400 Sequencer
`15. The first version, described in Version 0.4 of the R400 Sequencer
`
`Specification, was designed for sixteen vertex clauses and sixteen pixel clauses.
`Specification, was designed for sixteen vertex clauses and sixteen pixel clauses.
`
`SeeEx.2010, pp. 5, 14-15. ATI presented this version to Microsoft to see whether
`See Ex. 2010, pp. 5, 14-15. ATI presented this version to Microsoft to see whether
`
`the R400 was compatible with the application-programming interface ("API") that
`the R400 was compatible with the application-programming interface ("API") that
`
`Microsoft was developing, called DXl0. Microsoft rejected this version because
`Microsoft was developing, called DX10. Microsoft rejected this version because
`
`Microsoft's API required a sequencer that could process an unlimited number of
`Microsoft's API required a sequencer that could process an unlimited number of
`
`clauses. To be compatible with this requirement, I developed a second version of
`clauses. To be compatible with this requirement, I developed a second version of
`
`the sequencer control flow. This second version is described in Version 2.0 of the
`the sequencer control flow. This second version is described in Version 2.0 of the
`
`R400 Sequencer Specification. SeeEx.2028.I explain these versions in turn
`R400 Sequencer Specification. See Ex. 2028. I explain these versions in turn
`
`below.
`below
`
`1. R400 Sequencer Specfficøtion (Versíon 0.4): August 24, 2001
`1. R400 Sequencer Specification (Version 0.4): August 24, 2001
`16. Version 0.4 of the R400 Sequencer Specification is dated August24,
`16. Version 0.4 of the R400 Sequencer Specification is dated August 24,
`
`2001. See Ex. 2010, p. 3; see also Ex. 2043 (for the log entry on August 24, 2001)
`2001. See Ex. 2010, p. 3; see also Ex. 2043 (for the log entry on August 24, 2001).
`
`-8-
`-8
`
`LG Ex. 1037, pg 10
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 10 of 66
`
`

`

`
`
`This version includes the same sequencer-block diagram as the sequencer-block
`This version includes the same sequencer-block diagram as the sequencer-block
`
`diagram in the R400 Top Level Specification (reproduced again below for
`diagram in the R400 Top Level Specification (reproduced again below for
`
`convenience). CompareEx.2010, p. 5 withEx.2047, p. 30. Version 0.4 also
`convenience). Compare Ex. 2010, p. 5 with Ex. 2041, p. 30. Version 0.4 also
`
`includes an example of the flow of pixels and vertices through the system. SeeEx.
`includes an example of the flow of pixels and vertices through the system. See Ex.
`
`2070, pp.3, l7-19.
`2010, pp. 3, 17-19.
`
`ûbikib
`adage arbitrator
`
`ALIdnr. 0
`..e.eniervaltos 66666
`
`.4--ALUelausa I
`raleevauall steam
`
`.4,—.ALtlaW“
`f•WIVE106 01,102
`
`.4__ALIJelama 3
`releMpliel 616666
`
`.4l2.U6116.6
`
`611361.66.6
`reoerrdiao mtiap
`
`clæ6
`..--Allicleuse 6
`weevil:la swam
`
`dame 7
`lea-mien uatlea
`
`Ex. 2010, p. 5.
`Ex. 2010, p. 5.
`
`wt6/FiRl Glqúikltq
`vertex/pixel vector exbaratoe
`
`Pe (cid:9)
`
`debt), for available OM; 4 (cid:9)
`drlry fø milabh
`
`Taxtotrclaap 0
`0
`.errs km ualioe
`
`Malan dem I r*
`INfs7472 1101101
`
`ream
`
`11.1151M6 11611011
`
`11)1661. drum
`dation
`
`-.
`
`(cid:9) MO 4 (cid:9)
`
`77 (cid:9) •
`4.761
`
`tliallaidA Aga]
`
`1.11-‘6,666 .06•6
`rsertshoo deice
`
`'16rIvre clause 6 riP4
`cl¡R 6
`
`marculioa gs66a r„.
`
`,....,,kAtt 7
`11141.1i0¢ g -Lai=
`
`n=1
`
`-9-
`9
`
`LG Ex. 1037, pg 11
`
`(cid:9)
`ATI Ex. 2118
`
`IPR2023-00922
`Page 11 of 66
`
`

`

`
`
`17. The sequencer has two sets of reservation stations, one for pixels d
`The sequencer has two sets of reservation stations, one for pixels and
`17. (cid:9)
`
`one for vertices. Id. at 4-5. A representation of the two sets of reservation stations
`one for vertices. Id at 4-5. A representation of the two sets of reservation stations
`
`is shown below. Each set has eight ALU reservation stations and eight texture
`is shown below. Each set has eight ALU reservation stations and eight texture
`
`reservation stations . Id. Each reservation station stores clauses. Id. These clauses
`reservation stations. Id. Each reservation station stores clauses. Id. These clauses
`
`contain a sequence of instructions. Id. at4 ("fthe sequencer] . . . executes all of the
`contain a sequence of instructions. Id. at 4 ("[the sequencer] . . . executes all of the
`
`instructions in a clause"); see alsoEx.2042, p. 7 ("instructions in a clause will be
`instructions in a clause"); see also Ex. 2042, p. 7 ("instructions in a clause will be
`
`executed sequentially").
`executed sequentially")
`
`Pixel Reservation Stations
`Pixel Reservation Stations
`
`Vertex Reservation Stations
`Vertex Reservation Stations
`
`1.12Li
`
`Awe,*
`nrrradoa New
`
`0
`
`—eV" I— *Iron eiram 1
`
`.4--ALLtaiaal -M*
`
`N4r.r. Oh.
`
`4-1M14-
`
`rp.m.m.utm
`
`.4—ALIJILou
`
`41....41.U. bk.
`
` =
`
`
`
`úUçk ¿
`u eels .
`
`.\*-{13711
`
`Èucb* t
`kumea.
`
`9. Wel
`
`IV. • 161.1.•
`
`_
`-4—÷","" •
`
`- 1Wflwr<Nrl 1
`111T.V.01
`
`IMO. Mit:PM
`
`Wm-,n wew
`

`
`18. Clauses flow down each set of reservation stations. See Ex. 2010, pp.
`Clauses flow down each set of reservation stations. See Ex. 2010, pp.
`18. (cid:9)
`
`4-5. Pixel clauses flow down the set of pixel reservation stations, and vertex
`4-5. Pixel clauses flow down the set of pixel reservation stations, and vertex
`
`clauses flow down the vertex reservation stations. See id. Reservation stations
`clauses flow down the vertex reservation stations. See id. Reservation stations
`
`touch the arbiter, so the ALU arbiters and the texture arbiters can select clauses
`touch the arbiter, so the ALU arbiters and the texture arbiters can select clauses
`
`traveling down the reservation stations. See id. at 17 ("the control packet continues
`traveling down the reservation stations. See id. at 17 ("the control packet continues
`
`-10-
`- 10 -
`
`LG Ex. 1037, pg 12
`
`(cid:9)
`ATI Ex. 2118
`
`IPR2023-00922
`Page 12 of 66
`
`

`

`
`
`to travel down the path of reservation stations until all clauses have been
`
`executed").
`executed").
`
`19. The arbiterlarbitration logic has two levels of arbitration, collectively
`The arbiter/arbitration logic has two levels of arbitration, collectively
`19. (cid:9)
`
`shown in red on the figure below.
`shown in red on the figure below.
`
`Vertex Clauses
`Vertex Clauses
`
`Pixel Clauses
`Pixel Clauses
`
`0
`
`41...r.tve
`
`.40.67.
`
`I
`orroko..1.
`
`•
`
`.47Jit.vr
`vornutztiv
`
`%Waive 1
`nrerrielma
`¡¡d6
`
`
`tii[ bizo 4 14 (cid:9)
`..1--14 veaifol vim!
`o
`
`
`
`I-4 (cid:9)
`4. 27[ (cid:9)
`I.Tninv Ave
`rianavvev
`4-417,
`
`ear.
`nrtnli • N.
`
`—1.7731-1" a.
`
`'4 .}wai.ecwHen —
`
`Max.?
`OrTribi1.11•1
`
`to
`
`Viral (cid:9)
`
`pre dav
`wnYW .td—s,
`
`0
`Viimig
`
`VW
`
`,d
`14-1116
`*4.. 1 (cid:9)
`eam (cid:9)
`—141".1 (cid:9)
`
`r
`
`/ }evo 4.2
`
`ALl'4feeewl
`
`t t
`
`4 tUttwe
`
`J
`
`lr ivw
`wnxenww
`
`t
`ue--M11.1.4b.1 5
`illitraily11•11011
`
`dna
`a
`
`ellw
`WPM
`
`ow=
`
`Maribor r
`
`"SEQ arbitrates between the Pixel FIFO and the Vertex FIFO"
`"SEQ arbitrates between the Pixel FIFO and the Vertex FIFO"
`
`20. The first level of arbitration is between ALU clauses and texture
`The first level of arbitration is between ALU clauses and texture
`20. (cid:9)
`
`clauses for both the vertex set of reservation stations and the pixel set of
`clauses for both the vertex set of reservation stations and the pixel set of
`
`reservation stations. This first level of arbitration is represented by the ALU
`reservation stations. This first level of arbitration is represented by the ALU
`
`arbitrators and texture arbitrators labeled in the figure above. ALU arbitration logic
`arbitrators and texture arbitrators labeled in the figure above. ALU arbitration logic
`
`- 11-
`
`LG Ex. 1037, pg 13
`
`(cid:9)
`ATI Ex. 2118
`
`IPR2023-00922
`Page 13 of 66
`
`

`

`
`
`chooses one of the eight potentially pending ALU clauses stored within the ALU
`chooses one of the eight potentially pending ALU clauses stored within the ALU
`
`reservation stations. See id. at 14-15. Texture arbitration logic chooses one of the
`reservation stations. See id. at 74-15. Texture arbitration logic chooses one of the
`
`eight potentially pending texture clauses stored within the texture reservation
`eight potentially pending texture clauses stored within the texture reservation
`
`stations. See id. at 14.
`stations. See id. at 14
`
`2I. For the second level of arbitration, the arbitration logic selects
`21. For the second level of arbitration, the arbitration logic selects
`
`between the pixel and the vertex. See id. at 17 (2) ("SEQ arbitrates between the
`between the pixel and the vertex. See id. at 17 (2) ("SEQ arbitrates between the
`
`Pixel FIFO and the Vertex FIFO"), 18 (4) ("SEQ arbitrates between Pixel FIFO
`Pixel FIFO and the Vertex FIFO"), 18 (4) ("SEQ arbitrates between Pixel FIFO
`
`and Vertex FIFO"). So, not only does the arbiter select which clauses to execute,
`and Vertex FIFO"). So, not only does the arbiter select which clauses to execute,
`
`the arbiter also selects which order to execute pixels and vertices. See id. at 4 ("a
`the arbiter also selects which order to execute pixels and vertices. See id. at 4 ("a
`
`pixel can pass a vertex and a vertex can pass a pixel").
`pixel can pass a vertex and a vertex can pass a pixel").
`
`22. The ALU arbitration and the texture arbitration give priority to
`22. The ALU arbitration and the texture arbitration give priority to
`
`reservation stations/clauses closer to the bottom of the pipeline. See id. After this
`reservation stations/clauses closer to the bottom of the pipeline. See id. After this
`
`arbitration selects winning pixel and vertex clauses, the pixel/vertex arbitration
`arbitration selects winning pixel and vertex clauses, the pixel/vertex arbitration
`
`logic selects between the pixel and the vertex. Id. at 17 (2),18 (4). Vertices
`logic selects between the pixel and the vertex. Id. at 17 (2), 18 (4). Vertices
`
`generally have priority. Id at 77 (2). When a vertex is not pending or the register
`generally have priority. Id. at 17 (2). When a vertex is not pending or the register
`
`files do not have open space for a vertex, the arbiter selects a pixel. Id. at l8 (4)
`files do not have open space for a vertex, the arbiter selects a pixel. Id. at 18 (4).
`
`23. Once arbitration logic selects the pixel/vertex clauses, the sequencer's
`23. Once arbitration logic selects the pixel/vertex clauses, the sequencer's
`
`arbitration logic provides the clauses to a register file in the shader pipe. See id. at
`arbitration logic provides the clauses to a register file in the shader pipe. See id. at
`
`pp. 17 (5) ("SEQ constructs a control packet for the vector and sends it to the first
`pp. 17 (5) ("SEQ constructs a control packet for the vector and sends it to the first
`
`-12-
`- 12 -
`
`LG Ex. 1037, pg 14
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 14 of 66
`
`

`

`
`
`reservation station (the FIFO in front of texture state machine 0, or TSMO FIFO)
`reservation station (the FIFO in front of texture state machine 0, or TSMO FIFO)
`
`the control packet contains the state pointer, the tag to the position cache and a
`the control packet contains the state pointer, the tag to the position cache and a
`
`register file base pointer."),17 (9) ("ASM0 accepts the control packet (after being
`register file base pointer."), 17 (9) ("ASMO accepts the control packet (after being
`
`selected by the ASM arbiter) and gets the instructions for ALU clause 0 from the
`selected by the ASM arbiter) and gets the instructions for ALU clause 0 from the
`
`global instruction store")
`global instruction store").
`
`24. The shader pipe, as of Version 0.4 of the R400 Sequencer
`24. (cid:9)
`The shader pipe, as of Version 0.4 of the R400 Sequencer
`
`Specification (reproduced below for reference), has four physical register file
`Specification (reproduced below for reference), has four physical register file
`
`memories per shader pipeline.Id. at 10.
`memories per shader pipeline. Id. at 10.
`
`-t3-
`- 13 -
`
`LG Ex. 1037, pg 15
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 15 of 66
`
`

`

`
`
`it
`
`Register RI!
`RËgide¡Fil!
`
`R.CifsH€
`Register File
`
`MAC
`t¡AC
`
`hCi{erFh
`Amisfer Fla
`
`È{icüRú
`
`=V In •
`
`p¡pdE d!!r
`pipaine Maga
`
`pbdiÈ at!É
`
`E
`:f
`
`õIgt
`41 (cid:9) C. (cid:9)
`Lixprim@,,tvi
`
`.Octow Lui
`
`pirdil f4!
`
`CNN 111pUtou
`
`=U:ILA.XL:
`
`II
`
`Mux
`M x
`
`PN1n1,1758e.tlytinga Flondart.siend
`
`Id.
`rd.
`
`25. Each register file is coupled to a bank of ALUs. See id. at 11. The
`Each register file is coupled to a bank of ALUs. See id. at 11. The
`25. (cid:9)
`
`gray area of the Figure reproduced below shows the logical view of the four
`gray area of the Figure reproduced below shows the logical view of the four
`
`register files within the shader pipe as software would see it. Id. The Figure also
`register files within the shader pipe as software would see it. Id. The Figure also
`
`-14-
`- 14 -
`
`LG Ex. 1037, pg 16
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 16 of 66
`
`

`

`shows an ALU bank, a texture unit, an instruction store/cache, and a constant store.
`shows an ALU bank, a texture unit, an instruction store/cache, and a constant store.
`
`
`
`See id.
`See id.
`
`_.J".
`
`IIüÑEüil
`tlwuot
`
`c66nlff
`tfoñl
`
`Id.
`rd.
`
`26. In the Figure reproduced above, the sequencer block comprises the
`In the Figure reproduced above, the sequencer block comprises the
`26. (cid:9)
`
`instruction store and the constant store. In a different representation, reproduced
`instruction store and the constant store. In a different representation, reproduced
`
`below, the instruction store and the constant store are within the sequencer block.
`below, the instruction store and the constant store are within the sequencer block.
`
`-15-
`- 15 -
`
`LG Ex. 1037, pg 17
`
`ATI Ex. 2118
`
`IPR2023-00922
`Page 17 of 66
`
`

`

`
`
`c
`f+Rö/
`Clause # 8rdy
`
`WTAö
`WrAddr
`
`cfiilt
`CMS
`
`csT
`CST
`
`IS
`IS
`
`SEQ
`SEQ
`
`c
`CST
`
`WrAder
`
`RdArkk
`PARB
`
`PlËe
`Phtsch
`
`RdAddr
`R
`
`ChM CST1 Is/2 (cid:9)
`CST¿
`
`AB
`A B C WsVec
`
`Wr col
`
`WrAü
`WrAckk
`
`TX
`TX
`
`WrAckk
`
`OF
`OF
`
`Id. at 72.
`Id. at 12.
`
`27. Later versions of the R400 Sequencer Specification show the
`Later versions of the R400 Sequencer Specification show the
`27. (cid:9)
`
`sequencer and the shader pipe within the R400 architecture. See, e.g.,Bx.2012, pp.
`sequencer and the shader pipe within the R400 architecture. See, e.g., Ex. 2012, pp.
`
`3, 5. Th

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