throbber
Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`________________
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`________________
`
`LG ELECTRONICS, INC.,
`Petitioner,
`
`v.
`
`ATI TECHNOLOGIES ULC,
`Patent Owner.
`________________
`
`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`________________
`
`PATENT OWNER’S PRELIMINARY RESPONSE
`PURSUANT TO 37 C.F.R. § 42.107(a)
`
`

`

`I.
`II.
`
`III.
`
`IV.
`
`TABLE OF CONTENTS
`
`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`PAGE
`
`2.
`
`i
`
`Introduction & Summary of Arguments..........................................................1
`Graphics Processing Primer.............................................................................2
`Graphics Processors Use Vertex And Pixel Data To Create
`A.
`Display Images......................................................................................2
`Graphics Processors Use Instruction “Threads” To Transform
`Vertex and Pixel Data ...........................................................................5
`Conventional Graphics Processors Executed Vertex And Pixel
`Threads Using Separate Vertex Shaders And Pixel Shaders................7
`The ’454 Patent................................................................................................9
`The ’454 Patent’s Unified Shader.........................................................9
`A.
`The Unified Shader Can Simultaneously Execute Vertex And
`B.
`Pixel Threads.......................................................................................11
`The ’454 Patent’s Challenged Claims.................................................12
`1.
`Challenged claim 2 is directed to a unified shader
`processor that executes pixel or vertex thread instructions
`in response to receiving selected data from a register ..............12
`Challenged claims 3-11 are directed to a unified shader
`that includes a processor that can switch back and forth
`between performing unfinished vertex and pixel threads.........13
`LG’s Petition Fails To Establish The Required Likelihood Of Success
`On Any Grounds............................................................................................15
`Challenged Claim 2: LG’s Grounds 1-4 Fail To Identify A
`A.
`Processor Unit That Generates Pixel Color, Vertex Position,
`And Vertex Appearance Data In Response To Selected Data
`From The General Purpose Register...................................................16
`Challenged Claims 3-11: LG’s Petition Fails To Identify A
`Unified Shader Processor That Can Switch Back And Forth
`Between Performing Unfinished Vertex And Pixel Threads..............19
`Grounds 1 & 2: Lindholm .........................................................21
`1.
`
`B.
`
`C.
`
`C.
`
`B.
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`2.
`
`a.
`
`The purported Lindholm unified shader processor does not
`switch back and forth between unfinished vertex and pixel
`threads ...............................................................................21
`b. LG’s Petition fails to identify a Lindholm unified shader
`processor that can switch back and forth between
`performing unfinished vertex and pixel threads ...............25
`Grounds 3 & 4: Stuttard............................................................26
`The purported Stuttard unified shader processor does not
`a.
`switch back and forth between unfinished vertex and pixel
`threads ...............................................................................26
`b. LG’s Petition fails to identify a Stuttard unified shader
`processor that can switch back and forth between
`performing unfinished vertex and pixel threads ...............31
`i.
`Claim 11..................................................................31
`
`ii. Claims 3-10.............................................................35
`
`V.
`
`Conclusion .....................................................................................................35
`
`ii
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`TABLE OF AUTHORITIES
`
`Page(s)
`
`Cases
`Ariosa Diagnostics v. Verinata Health, Inc., et al.,
`IPR2013-00276, Paper 43 (PTAB Oct. 23, 2014)..............................................34
`
`Callcopy v. Verint Americas, et al.,
`IPR2013-00486, Paper 11 (PTAB Feb. 5, 2014)................................................33
`
`In re Chaganti,
`554 Fed. Appx. 917 (Fed. Cir. 2014)..................................................................33
`
`In re Karn,
`441 F.3d 997 (Fed. Cir. 2006) ............................................................................33
`
`Symantec Corp. v. RPost Communications Ltd.,
`IPR2014-00355, Paper 12 (PTAB Jul. 15, 2014)...............................................33
`
`iii
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`I.
`
`Introduction & Summary of Arguments
`
`For at least the following reasons, LG’s Petition fails to establish the
`
`required likelihood that it will prove that challenged claims 2-11 of ATI’s U.S.
`
`Patent No. 8,760,454 are unpatentable.
`
` Challenged claims 3-11 are directed to a unified shader processor
`
`that can switch back and forth between executing unfinished vertex and pixel
`
`threads, but LG fails to identify any such unified shader processor in the asserted
`
`references. In the Lindholm reference of Grounds 1 and 2, the purported processor
`
`cannot switch between unfinished threads at all, be they pixel, vertex, or other. In
`
`the Stuttard reference of Grounds 3 and 4, the purported processor unit likewise
`
`cannot switch back and forth between unfinished vertex and pixel threads, but must
`
`instead finish executing all vertex threads before it can begin executing any pixel
`
`threads.
`
` Challenged claim 2 requires a unified shader processor that executes
`
`certain pixel or vertex thread instructions in response to receiving selected data
`
`from a data register. But LG’s Petition does not even allege that the purported
`
`processor units of Lindholm or Stuttard execute any of those pixel or vertex thread
`
`instructions “in response to” the selected data as required by the explicit claim
`
`language. Instead, the Petition ignores the limitation altogether.
`
`1
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`For each and all of these reasons, the Board should deny LG’s Petition in its
`
`entirety and not institute inter partes review of the ’454 Patent.
`
`II. Graphics Processing Primer
`
`The ’454 Patent and its challenged claims generally concern graphic
`
`processors and, more specifically, graphics processors that use a “unified shader”
`
`to perform both “vertex” and “pixel” operations. (E.g., ’454 Patent at 1:32-34,
`
`2:58-61).
`
`A.
`
`Graphics Processors Use Vertex And Pixel Data To Create
`Display Images
`
`Graphics processors are designed to convert a three-dimensional object into
`
`an image for display on a two-dimensional screen. As part of this process, a three-
`
`dimensional object is rendered as a collection of simple shapes, called primitives.
`
`For example, in the figure below, a three-dimensional character has been rendered
`
`as a collection of triangular primitives.
`
`2
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Each triangular primitive is defined by the positions of its three corner
`
`points, i.e., its “vertices.” After a three-dimensional object is rendered as a group
`
`of primitives, subsequent processing steps include converting the vertices of each
`
`primitive from three-dimensional coordinates to two-dimensional coordinates. To
`
`illustrate, in the example shown below, a triangular primitive is being used to
`
`render a portion of a sphere and has vertices with three-dimensional position
`
`coordinates along the X-, Y-, and Z- axes. These three-dimensional vertices
`
`coordinates are converted into two-dimensional coordinates (along only the X- and
`
`Y- axes) for display on a two-dimensional screen.
`
`3
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`X Y
`
`X Y
`
`X
`
`Y
`
`X Y
`
`Z
`
`X YZ
`
`X YZ
`
`X YZ
`
`Y
`
`X
`
`Subsequent processing steps include rendering each primitive as two-
`
`dimensional collection of dots on a screen called “pixels.” As part of this process,
`
`the graphics processor uses the two-dimensional vertices coordinates to determine
`
`which pixels fill a particular primitive. In the illustration below, the pixels that fill
`
`the primitive defined by the XY coordinates are depicted in blue.
`
`4
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`X Y
`
`X Y
`
`Y
`
`X Y
`
`X
`
`Further processing includes identifying the correct color and texture for each
`
`pixel filling the primitive.
`
`B.
`
`Graphics Processors Use Instruction “Threads” To Transform
`Vertex and Pixel Data
`
`Graphics processors use various collections of instructions to transform a
`
`three-dimensional object
`
`into a two-dimensional display.
`
`Each particular
`
`collection of instructions is called a “thread.”
`
`5
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Each thread contains a sequence of instructions to be performed one after
`
`another. Each instruction consists of an “OpCode” and an “Operand.” The
`
`OpCode indicates which calculation operation is required by the instruction, such
`
`as an arithmetic or logical operation. The Operand indicates the location of the
`
`graphics data upon which the calculation operation is to be performed.
`
`An Exemplary 16-bit Instruction
`
`Some threads comprise instructions that manipulate and transform vertex
`
`data. These threads are known as “vertex threads,” and can include instructions
`
`that, for example, work together to transform a triangular primitive’s vertex
`
`coordinates from three-dimensional to two-dimensional (as discussed above), to
`
`translate or scale the primitive,
`
`to remove off any portion of the triangular
`
`primitive that may be off the screen, or to cull primitives that don’t project onto the
`
`screen.
`
`Other threads comprise instructions that manipulate and transform pixel
`
`data. These threads are known as “pixel threads,” and can include instructions
`
`that, for example, work together to transform pixel data by assigning color value to
`
`6
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`the pixels, determining lighting effects, determining texture coordinate values, and
`
`blending colors.
`
`C.
`
`Conventional Graphics Processors Executed Vertex And Pixel
`Threads Using Separate Vertex Shaders And Pixel Shaders
`
`Conventional graphics processors featured a number of circuits, each
`
`configured to perform a single type of transformation. These circuits are known as
`
`“shaders.”
`
`Conventionally, each shader was dedicated to executing a particular type of
`
`thread to transform a particular type of data. For example, a “vertex shader” would
`
`execute only vertex threads to transform vertex data, such as, for example,
`
`transforming the three-dimensional coordinates of a primitive’s vertices in object
`
`space into two-dimensional coordinates for a display screen. (’454 Patent at 1:63 –
`
`2:7). But to execute pixel threads to transform pixel data, another, separate shader
`
`was needed. This type of shader is known as a “pixel shader,” and was used, for
`
`example, determine and apply the color for each pixel making up a rendered
`
`object. (’454 Patent at 2:8-18).
`
`Thus, to execute the position and color threads and operations necessary to
`
`transform a three-dimensional object to a two-dimensional display, a conventional
`
`graphics processor needed at least two shaders, one a vertex shader and the other a
`
`pixel shader.
`
`(’454 Patent at 2:15-18). As described in the ’454 Patent, this
`
`7
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`requirement resulted in drawbacks in both size and performance. First, the need
`
`for multiple specialized shaders increased the size of graphics processors:
`
`Conventional graphics processors require the use of both a
`vertex shader and a pixel shader in order to generate an object.
`Because both types of shaders are required, known graphics
`processors are relatively large in size, with most of the real estate
`being taken up by the vertex and pixel shaders.
`
`(’454 Patent at 2:20-29).
`
`Second, sequencing the pixel shader after the vertex shader meant that one
`
`shader was dependent on – and had to wait for – the output of the other before it
`
`could continue processing, leading to idle downtime that slowed down the graphics
`
`processor and resulted in relatively poor performance:
`
`In addition to the real estate penalty associate with conventional
`graphics processors,
`there is also a corresponding performance
`penalty associated therewith. In conventional graphics processors, the
`vertex shader and the pixel shader are juxtaposed in sequential,
`pipelined fashion, with the vertex shader being positioned before and
`operating on vertex data before the pixel shader can operate on
`individual pixel data.
`
`(’454 Patent at 2:20-29).
`
`Such a prior art “pipeline” is illustrated in Figure 3 of the ’454 Patent, which
`
`depicts a vertex shader 46 in series with pixel shader 54.
`
`8
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`III. The ’454 Patent
`
`The ’454 Patent issued June 24, 2014 and is titled “Graphics Processing
`
`Architecture Employing A Unified Shader.”
`
`A.
`
`The ’454 Patent’s Unified Shader
`
`As its title suggests, the ‘454 patent solves the real estate and performance
`
`problems of separate vertex and pixel shaders by providing a shader that is capable
`
`of executing both vertex threads and pixel threads to transform both vertex and
`
`pixel data, respectively. (’454 Patent at 2:58-61). This multipurpose shader “is
`
`referred to as a ‘unified’ shader.”
`
`9
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`In an embodiment described in the patent, the unified shader includes a
`
`register, a sequencer, and a processor.
`
`(’454 Patent at 3:4-10). The unified
`
`shader’s register stores the inputs transmitted to the unified shader, including the
`
`vertex and pixel data that are to be transformed by the unified shader. (’454 Patent
`
`at 3:4-5, 4:29-39).
`
`The unified shader’s sequencer stores the individual instructions that, when
`
`sequenced together, comprise the vertex and pixel threads that the unified shader
`
`will use to manipulate and transform the stored vertex and pixel data. (’454 Patent
`
`at 3:4-10, 4:52 - 5:31). The ’454 Patent refers to those individual instructions (i.e.,
`
`the logical and arithmetic operations) as vertex and pixel “calculation operations.”
`
`(’454 Patent at 3:4-7, 3:63-66, 4:42-45, 4:53-60, 5:36-52). The resulting threads
`
`are called vertex and pixel “manipulation operations.” (’454 Patent at 3:4-7. 5:19-
`
`36).
`
`The unified shader’s processor can execute the vertex and pixel instructions
`
`and threads (stored in the sequencer) on the vertex and pixel data (stored in the
`
`register). (’454 Patent at 3:4-12). The unified shader is thus configured to perform
`
`as both a pixel shader and a vertex shader. (’454 Patent at 2:58-61, 3:10-12, 5:19-
`
`31).
`
`10
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`B.
`
`The Unified Shader Can Simultaneously Execute Vertex And
`Pixel Threads
`
`In addition to describing a unified shader that can handle both vertex data
`
`and pixel data, the ’454 Patent further addresses issues associated with such a
`
`unified shader. For example, one such issue is how to allocate the unified shader’s
`
`resources among vertex and pixel data in a manner that prevents backlogs of data
`
`waiting to be processed and idle downtime for the shader.
`
`One approach the ’454 Patent discloses for increasing efficiencies and
`
`decreasing processing time is to employ a unified shader that can execute vertex
`
`and pixel threads at the same time, switching back and forth between unfinished
`
`threads to prevent downtime and backlogs of data sitting waiting to be processed.
`
`(E.g., ’454 Patent at 5:32-36).
`
`For example, when executing the sequence of instructions in a vertex thread,
`
`the unified shader may encounter a vertex calculation operation instruction that it
`
`cannot yet perform because the necessary data or memory is not yet available.
`
`(’454 Patent at 5:36-44).
`
`Rather than having the unified shader sitting idle,
`
`waiting for the necessary data or memory so that it can execute the next vertex
`
`calculation operation and proceed with the vertex thread, the ’454 Patent discloses
`
`the unified shader switching to pending pixel
`
`threads and instructions and
`
`11
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`executing pixel instructions until the idle vertex thread is ready to proceed. (’454
`
`Patent at 5:32-52).
`
`Thus, the ’454 Patent discloses a unified shader that “has the ability to
`
`simultaneously perform vertex manipulation operations [vertex threads] and pixel
`
`manipulation operations [pixel threads] at various degrees of completion by being
`
`able to freely switch between such program or instructions [stored in the unified
`
`shader’s register] very quickly.” (’454 Patent at 5:32-36). “[T]hrough the sharing
`
`or resources within the unified shader 62, processing of image data is enhanced as
`
`there is no down time associated with the processor 96.” (’454 Patent at 5:49-52).
`
`C.
`
`The ’454 Patent’s Challenged Claims
`
`The Petition challenges claims 2-11 of the ’454 Patent. Challenged claims
`
`2, 3, 4, 5, and 11 are independent claims. Challenged claims 6-10 depend directly
`
`or indirectly from independent claim 5.
`
`1.
`
`Challenged claim 2 is directed to a unified shader processor
`that executes pixel or vertex thread instructions in response
`to receiving selected data from a register
`
`Challenged claim 2 is directed to a unified shader that includes (1) a register
`
`for storing data and (2) a processor unit that generates pixel color and vertex
`
`position and appearance data “in response to” receiving selected data from that
`
`register:
`
`2. A unified shader, comprising:
`
`12
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`a general purpose register block for maintaining data;
`
`a processor unit;
`
`a sequencer, coupled to the general purpose register block and the
`processor unit, the sequencer maintaining instructions operative
`to cause the processor to execute vertex calculation and pixel
`calculation operations on selected data maintained in the general
`purpose register block; and
`
`wherein the processor unit executes instructions that generate a
`pixel color in response to selected data from the general
`purpose register block and generates vertex position and
`appearance data in response to selected data from the general
`purpose register block.
`
`(’454 Patent at claim 2)(emphasis added).
`
`2.
`
`Challenged claims 3-11 are directed to a unified shader that
`includes a processor that can switch back and forth between
`performing unfinished vertex and pixel threads
`
`Claims 3-11 are all directed to a unified shader having a processor unit that
`
`can switch back and forth between unfinished vertex and pixel threads. For
`
`example, the unified shader of claim 11 includes a processor that is flexibly
`
`controlled to perform pixel and vertex threads (“manipulation operations”) and can
`
`switch back and forth between performing the instructions in those threads before
`
`the vertex and pixel threads are completed:
`
`11. A unified shader comprising:
`
`13
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`a processor unit flexibly controlled to perform vertex
`manipulation operations and pixel manipulation operations
`based on vertex or pixel workload; and
`an instruction store and wherein the processor unit of the unified
`shader performs the vertex manipulation operations and pixel
`operations at various degrees of completion based on
`switching between instructions in the instruction store.
`
`(’454 Patent at claim 11)(emphasis added).
`
`Similarly, each of the unified shaders of claims 3-10 includes a processor
`
`unit that can perform both vertex thread instructions and pixel thread instructions
`
`and can switch back forth between performing those instructions when certain
`
`conditions are met, regardless of whether the subject thread is completed. In claim
`
`3, for example, the claimed unified shader processor performs pixel thread
`
`instructions (“calculation operations”) until there are enough resources to perform
`
`a vertex thread instruction, at which point the processor starts performing the
`
`vertex thread instruction, regardless of whether that processor has completed the
`
`ongoing pixel thread:
`
`3. A unified shader comprising:
`a processor unit operative to perform vertex calculation operations
`and pixel calculation operations; and
`shared resources, operatively connected to the processor unit;
`the processor unit operative to use the shared resources for either
`vertex data or pixel information and operative to perform pixel
`
`14
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`calculation operations until enough shared resources are
`available and then use the shared resources to perform vertex
`calculation operations.
`(’454 Patent at claim 3 (emphasis added); see, also, claim 4 (“processor unit …
`
`operative to perform vertex calculation operations until enough shared resources
`
`are available and then use the shared resources to perform pixel calculation
`
`operations); claim 5 (“a sequencer … operative to cause the processor to execute
`
`vertex calculation and pixel calculation operations … depending on an amount of
`
`space available in the store).
`
`IV. LG’s Petition Fails To Establish The Required Likelihood Of Success
`On Any Grounds
`
`The Petition seeks institution and trial on the following Grounds:
`
`Ground
`
`1
`
`2
`
`3
`
`4
`
`Reference
`
`Lindholm
`
`Lindholm, OpenGL
`
`Stuttard
`
`Stuttard
`
`Basis
`
`Challenged Claims
`
`§ 102(e)
`
`§ 102(a)
`
`§ 103(a)
`
`§ 103(a)
`
`2-11
`
`2-11
`
`2, 11
`
`2-11
`
`LG’s Petition fails to establish the required likelihood success for any of
`
`these grounds, for at least the following reasons:
`
`(1)
`
`Challenged claim 2 requires a unified shader processor that
`
`generates specific pixel and vertex data “in response to” receiving selected data
`
`15
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`from a register, but LG’s Grounds 1-4 ignore this “in response to” limitation
`
`entirely.
`
`(2) Challenged claims 3-11 require a processor that can switch back and
`
`forth between executing unfinished vertex and pixel threads, but LG fails to
`
`identify any such unified shader processor in any of the asserted references.
`
`A.
`
`Challenged Claim 2: LG’s Grounds 1-4 Fail To Identify A
`Processor Unit That Generates Pixel Color, Vertex Position, And
`Vertex Appearance Data In Response To Selected Data From The
`General Purpose Register
`
`Challenged claim 2 requires a unified shader processor unit that generates
`
`pixel color, vertex position, and vertex appearance data in response to selected
`
`data from the general purpose register. For example, the claimed processor
`
`executes pixel instructions that generate a pixel’s color in response to receiving
`
`selected data from the register: “the processor unit executes instructions that
`
`generate a pixel color in response to selected data from the general purpose
`
`register block.” (’454 Patent at claim 2)(emphasis added). Similarly, the processor
`
`executes vertex instructions to generate vertex position and appearance data in
`
`response to receiving other selected data from the register: “the processor unit
`
`executes instructions that … generates vertex position and appearance data in
`
`response to selected data from the general purpose register block.” (’454 Patent at
`
`claim 2)(emphasis added).
`
`16
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`But LG’s Petition does not even allege in Counts 1-4 that the asserted
`
`references describe or make obvious such a processor unit, and therefore, the
`
`Petition against claim 2 fails on its face.
`
`Indeed, the phrase “in response to” is
`
`wholly and fatally missing from LG’s allegations and arguments – it does not even
`
`conclusorily allege or explain how that the limitation is disclosed in the references,
`
`much less identify evidence sufficient to meet its burden on that issue.
`
`For example, in Grounds 1-2, the Petition does not allege or identify any
`
`evidence that the purported “processor unit” (Lindholm’s Execution Unit 470)
`
`executes any pixel or vertex instructions to generate the specified pixel and vertex
`
`data “in response to” the selected data as required by claim 2.
`
`(E.g., Petition at
`
`18-19). Instead, the Petition addresses only whether, despite Lindholm’s silence on
`
`the subject, it was implicit or obvious that Lindholm’s Execution Unit 470 could
`
`execute instructions to generate pixel color and vertex location and appearance
`
`data as required by claim 2.
`
`(Petition at 18-19, 28-31). But LG fails to even
`
`allege, much less identify evidence supposedly showing, that the Execution Unit
`
`470 will perform any of such instructions “in response to” the selected data from
`
`the register.1 (Petition at 18-19, 28-31,35).
`
`1 Patent Owner does not concede any of the Petition’s allegations, including those
`
`not addressed in this Preliminary Response. For example, in addition to the claim
`
`17
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Grounds 3 and 4 likewise fail
`
`to address claim 2’s “in response to”
`
`limitation: they do not even allege that Stuttard’s purported “processor unit”
`
`(processing block 106) executes pixel or vertex instructions “in response to” the
`
`selected data. (E.g., Petition at 47-48, 49). Instead, the Petition again ignores the
`
`limitation altogether and argues merely that Stuttard either discloses or makes
`
`obvious that processing block 106 could execute instructions that generated a pixel
`
`color or vertex location and appearance data. (Petition at 47-48, 49-50). But LG
`
`fails to allege, much less identify evidence supposedly showing, that processing
`
`block 106 will perform either of those instructions “in response to” the particular
`
`selected data received from the register. 2 (Petition at 47-48, 49-50).
`
`element identified here, Patent Owner also disputes other allegations in the Petition
`
`concerning Lindholm, including those regarding priority and collateral estoppel.
`
`But the Lindholm Grounds 1 and 2 can and should be rejected without reaching
`
`those issues, and they are therefore are not addressed herein.
`
`2 Again, Patent Owner does not concede any of the Petition’s allegations, including
`
`those not addressed in this Preliminary Response. For example, in addition to the
`
`claim elements identified here, Patent Owner also disputes other allegations in the
`
`Petition concerning Stuttard, but the Stuttard Grounds 3 and 4 can and should be
`
`18
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Because the Petition’s Grounds 1-4 wholly fail to address the “in response
`
`to” limitations of claim 2, they necessarily fail to establish the required likelihood
`
`of success on those limitations and must be rejected.
`
`B.
`
`Challenged Claims 3-11: LG’s Petition Fails To Identify A Unified
`Shader Processor That Can Switch Back And Forth Between
`Performing Unfinished Vertex And Pixel Threads
`
`Claims 3-11 are all directed to a unified shader having a processor unit that
`
`can switch back and forth between unfinished vertex and pixel threads. For
`
`example, the unified shader of claim 11 includes a processor that is flexibly
`
`controlled to perform pixel and vertex threads (“manipulation operations”) and can
`
`switch back and forth between performing the instructions in those threads before
`
`either are completed: “the processor unit of the unified shader performs the vertex
`
`manipulation operations and pixel operations at various degrees of completion
`
`based on switching between instructions in the instruction store.” (’454 Patent at
`
`claim 11)(emphasis added).
`
`The unified shaders of claims 3-10 likewise include a processor unit that can
`
`perform both vertex thread instructions and pixel thread instructions and can
`
`switch back forth between performing those instructions when certain conditions
`
`rejected without reaching those issues, and they are therefore are not addressed
`
`herein.
`
`19
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`are met, regardless of whether the subject thread is completed. In claim 3, for
`
`example, the claimed unified shader processor performs pixel thread instructions
`
`(“calculation operations”) until there are enough resources to perform a vertex
`
`thread instruction, at which point the processor starts performing the vertex thread
`
`instruction, regardless of whether that processor has completed the ongoing pixel
`
`thread: “the processor unit operative to use the shared resources for either vertex
`
`data or pixel information and operative to perform pixel calculation operations
`
`until enough shared resources are available and then use the shared resources
`
`to perform vertex calculation operations.” (’454 Patent at claim 3 (see, also,
`
`claim 4 and 5).
`
`Despite having the burden to do so, LG neither identifies nor supports any
`
`proposed claim constructions for any of the foregoing processor unit limitations.
`
`(E.g., Petition at 8-9). Instead, without ascribing any meaning to the claims, the
`
`Petition generally alleges that the claimed processor unit is taught by Lindholm
`
`(Grounds 1 and 2) or Stuttard (Ground 3 and 4).3 (E.g., Petition at 20-25). But the
`
`3 In addition to Lindholm, LG’s Ground 2 also relies to a limited extent on the
`
`OpenGL reference. But Ground 2 does not rely on OpenGL for any of the missing
`
`limitations that are the subject of this Preliminary Response, and OpenGL is
`
`therefore irrelevant to the presented reasons for denying LG’s Petition.
`
`20
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Petition identifies no evidence that the purported Lindholm or Stuttard unified
`
`shader processors can switch back and forth between unfinished vertex and pixel
`
`threads as required by claims 3-11.
`
`1.
`
`Grounds 1 & 2: Lindholm
`
`a.
`
`The purported Lindholm unified shader processor
`does not switch back and forth between unfinished
`vertex and pixel threads
`
`Grounds 1 and 2 are based on U.S. Patent No. 7,038,685 to Lindholm
`
`(Exhibit 1003), which describes a programmable graphics processor for
`
`“processing and allocating threads for multithreaded execution of graphics
`
`programs.” (Ex. 1003, Lindholm, at 1:36-43).
`
`As shown in Lindholm’s Figure 2 reproduced below, Lindholm’s graphics
`
`processor includes numerous “Execution Pipelines,” each of which LG argues is
`
`the claimed “unified shader.” (Petition at 14, 16-17, 29-30).
`
`21
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Figure 2 further illustrates the Lindholm graphics processor also includes a
`
`Vertex Input Buffer 220, which stores all of the graphics input data (samples)
`
`provided by the host computer for processing by the Lindholm graphics processor.
`
`(Ex. 1003 at 3:9-26, 4:22-26, Figs. 1 & 2). Lindholm describes (and its Figure 4
`
`below illustrates) that each Execution Pipeline 240 (the alleged unified shader)
`
`includes a “Thread Control Unit,” which is configured to assign threads to a
`
`22
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`sample. (Ex. 1003 at 6:38 – 7:11). Once the Thread Control Unit 420 assigns a
`
`particular thread of instructions to a sample, a Thread Selection Unit 415 selects
`
`which of the assigned threads will be executed and identifies that thread (or
`
`threads) to Instruction Cache 410. (Ex. 1003 at 7:44-64, 8:15-17).
`
`Instruction Cache 410 is a cache that stores instructions and may (or may
`
`not) already include the instructions for the threads selected by Thread Selection
`
`23
`
`

`

`Case IPR2017-01225
`U.S. Patent No. 8,760,454
`
`Unit 415. (Ex. 1003 at 8:15-21). Instruction Cache determines which of the thread
`
`instructions it already has and then fetches any missing instructions from a
`
`graphics memory. (Ex. 1003 at 8L17-24). Instruction Cache 410 then outputs the
`
`selected thread’s sequence of instructions to an Instruction Scheduler 430.
`
`(Ex.
`
`1003 at 8:33-36).
`
`Instruction Scheduler 430 then determines which thread of instructions
`
`received from the Instruction Cache 430 will be executed. (Ex. 1003 at 8:47-58).
`
`After Lindholm’s Instruction Scheduler 430 schedules a thread for execution, the
`
`Instruction Dispatcher 440 fetches the sample data to be processed and provides it
`
`and the required instructions to Execution Unit 460 (see Figure 4 above).
`
`(Ex.
`
`1003 at 9:33-39). The Petition alleges that this Execution Unit 460 is the claimed
`
`“processor unit” from the challenged claims. (E.g., Petition at 18).
`
`Execution Unit 460 includes a Programmable Computation Units (PCU
`
`375), which executes the selected thread’s instructions. (Ex. 1003 at 5:25-30, 9:33-
`
`47). “When the program instructions associated with a thread have completed
`
`execution, the storage resources allocated to retain intermediate data generated
`
`during execution of the thread become available for allocation to another thread.”
`
`(Ex. 1003 at 9:57-60; see also 9:18-32).
`
`Because storage resources allocated to a thread will not be allocated to
`
`another thread until the instructions associated with that thread have completed
`
`24
`
`

`

`Case IPR2017-

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