throbber
IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`––––––––––
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`––––––––––
`ADVANCED MICRO DEVICES, INC. and PENSANDO SYSTEMS, INC.,
`Petitioners,
`v.
`CONCURRENT VENTURES, LLC and XTREAMEDGE, INC.,
`Patent Owners.
`––––––––––
`Case No. IPR2025-00478
`U.S. Patent 8,924,596
`––––––––––
`Declaration of Dr. Samuel Russ
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000001
`IPR2025-00478 (Advanced Micro Devices, Inc., Pensando Systems, Inc. v. Concurrent Ventures, LLC, XtreamEdge, Inc.)
`
`

`

`TABLE OF CONTENTS
`
`I.
`
`II.
`
`V.
`
`Pages
`OVERVIEW OF THE TECHNOLOGY ......................................................... 6
`A. Multiprocessor Architectures ................................................................ 8
`B. Memory Mapping ................................................................................ 10
`C. Multi Threading and Semaphores ....................................................... 12
`THE ’596 PATENT ....................................................................................... 18
`A.
`Prosecution History ............................................................................. 19
`B.
`Priority Date ........................................................................................ 21
`C.
`District Court Allegations ................................................................... 22
`D.
`Challenged Claims .............................................................................. 23
`LEVEL OF ORDINARY SKILL IN THE ART ........................................... 24
`III.
`IV. CLAIM CONSTRUCTION .......................................................................... 25
`A.
`“input/output queue implemented in hardware” ................................. 26
`INVALIDITY ................................................................................................ 27
`A.
`Ground 1: Claims 1-2, 5-8, 11-14, and 17-18 are Rendered
`Obvious in View of Dongare and Gewirtz .......................................... 28
`1.
`Dongare (Ex-1005) ................................................................... 29
`2.
`Gewirtz (Ex-1006) .................................................................... 32
`3.
`Independent Claim 1 ................................................................. 36
`4.
`Dependent Claim 2 ................................................................... 79
`5.
`Dependent Claim 5 ................................................................... 80
`6.
`Dependent Claim 6 ................................................................... 82
`7.
`Independent Claim 7 ................................................................. 83
`8.
`Dependent Claim 8 ................................................................... 91
`9.
`Dependent Claim 11 ................................................................. 91
`10. Dependent Claim 12 ................................................................. 92
`11.
`Independent Claim 13 ............................................................... 92
`12. Dependent Claim 14 ................................................................. 99
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000002
`
`

`

`B.
`
`C.
`
`D.
`
`13. Dependent Claim 17 ................................................................. 99
`14. Dependent Claim 18 ............................................................... 100
`Ground 2: Claims 3-4, 9-10, and 15-16 are Rendered Obvious
`in view of Dongare, Gewirtz, and Matsunami .................................. 100
`1.
`Matsunami (Ex-1007) ............................................................. 100
`2.
`Dependent Claims 3-4 ............................................................. 102
`3.
`Dependent Claims 9-10 ........................................................... 109
`4.
`Dependent Claims 15-16 ......................................................... 110
`Ground 3: Claims 1-2, 6-8, 12-14, and 18 are Rendered
`Obvious by Khawand and Rosenthal ................................................ 110
`1.
`Khawand (Ex-1008) ................................................................ 111
`2.
`Rosenthal (Ex-1009) ............................................................... 113
`3.
`Independent Claim 1 ............................................................... 115
`4.
`Dependent Claim 2 ................................................................. 147
`5.
`Dependent Claim 6 ................................................................. 148
`6.
`Independent Claim 7 ............................................................... 150
`7.
`Dependent Claim 8 ................................................................. 158
`8.
`Dependent Claim 12 ............................................................... 158
`9.
`Independent Claim 13 ............................................................. 159
`10. Dependent Claim 14 ............................................................... 165
`11. Dependent Claim 18 ............................................................... 165
`Ground 4: Claims 1-2, 6-8, 12-14, and 18 are Rendered
`Obvious by Khawand, Rosenthal, and Ohkawa ................................ 166
`1.
`Ohkawa (Ex-1010) .................................................................. 166
`2.
`Independent Claim 1 ............................................................... 168
`3.
`Dependent Claim 2 ................................................................. 179
`4.
`Dependent Claim 6 ................................................................. 179
`5.
`Independent Claim 7 ............................................................... 180
`6.
`Dependent Claim 8 ................................................................. 184
`7.
`Dependent Claim 12 ............................................................... 184
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000003
`
`

`

`E.
`
`Independent Claim 13 ............................................................. 185
`8.
`Dependent Claim 14 ............................................................... 191
`9.
`10. Dependent Claim 18 ............................................................... 191
`Ground 5: Claims 3-4, 9-10, and 15-16 are Rendered Obvious
`in view of Khawand, Rosenthal, Ohkawa, and Matsunami .............. 191
`1.
`Dependent Claims 3-4 ............................................................. 192
`2.
`Dependent Claims 9-10 ........................................................... 197
`3.
`Dependent Claims 15-16 ......................................................... 197
`VI. BACKGROUND AND QUALIFICATIONS ............................................. 198
`A.
`Compensation .................................................................................... 200
`B. Materials and Other Information Considered ................................... 200
`VII. UNDERSTANDING OF THE LAW .......................................................... 200
`VIII. RESERVATION OF RIGHTS .................................................................... 201
`APPENDIX 1: CURRICULUM VITAE OF DR. SAMUEL RUSS ..................... 202
`APPENDIX 2: MATERIALS CONSIDERED IN THE PREPARATION OF
`THIS DECLARATION ............................................................................... 216
`APPENDIX 3: CHALLENGED CLAIMS ............................................................ 219
`APPENDIX 4: UNDERSTANDING OF THE LAW ...........................................225
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000004
`
`

`

`I, Samuel Russ declare as follows:
`1.
`My name is Samuel Russ. I am an Associate Professor of Electrical
`
`Engineering at the University of South Alabama. I have prepared this report as an
`
`expert witness retained by Advanced Micro Devices, Inc. and Pensando Systems,
`
`Inc. In this report I give my opinions as to whether certain claims of U.S. Patent
`
`No. 8,924,596 (“the ’596 patent”) are invalid. I provide technical bases for these
`
`opinions as appropriate.
`
`2.
`
`This report contains statements of my opinions formed to date and the
`
`bases and reasons for those opinions. I may offer additional opinions based on
`
`further review of materials in this case, including opinions and/or testimony of
`
`other expert witnesses. I make this declaration based upon my own personal
`
`knowledge and, if called upon to testify, would testify competently to the matters
`
`contained herein.
`
`3.
`
`The ’596 patent seeks to avoid software synchronization (e.g., with
`
`semaphores and mutexes) when accessing command or input queues. But the
`
`alleged invention—a “reservation register” that stores the amount of space in the
`
`input queue—was trivial and already known in the art, for example as taught by
`
`Gewirtz (Ground 1) and Rosenthal (Ground 3). Grounds 1 and 3 simply combine
`
`these references with conventional computer architecture arrangements that
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000005
`
`

`

`describe the various processing elements and queues recited in the Challenged
`
`Claims.
`
`I.
`
`OVERVIEW OF THE TECHNOLOGY
`4.
`One of the basic data structures used in computers is called a queue.
`
`A queue is a line, like a queue of people in line to see a movie. In the computing
`
`arts, a queue is a linear data structure in which the first element put into the queue
`
`is the first element that comes out. In other words, like a line of people at a movie,
`
`the first one entering the line is also the first one to exit. Queues, in life and in
`
`computing, maintain the “first come, first served” policy or, stated differently, the
`
`first one in is the first one out. First-in-first-out is often abbreviated “FIFO.”
`
`5.
`
`If a queue is implemented in ordinary memory, it has a “write pointer”
`
`(a pointer to the place where elements enter the queue) and a “read pointer” (a
`
`pointer to the place where elements exit the queue).
`
`6.
`
`Queues are a powerful way to synchronize concurrently running
`
`processes or threads. For example, if one thread has access to the write pointer and
`
`another has access to the read pointer, there is not a thread safety issue because
`
`only one thread can update the write pointer (write data to the queue) and only one
`
`thread can update the read pointer (read data from the queue). This is why queues
`
`are often placed by design between concurrently running processes.
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000006
`
`

`

`7.
`
`Because queues are so useful, chip manufacturers have created
`
`dedicated chips called FIFOs. FIFOs have a write port, a read port, and flags that
`
`indicate how full the FIFO is and whether there is space available, and how much
`
`space is available. Examples include the Texas Instruments SN74V273 FIFO.
`
`The datasheet is dated 2001 and we used it recently in our (successful) satellite
`
`design at the University of South Alabama.
`
`8.
`
`Queue have finite size. Once a queue is full, no new data can be
`
`placed into it. That is why queue structures included mechanisms to indicate how
`
`much space was left. By being able to obtain this information, whoever was
`
`writing to the queue was able to avoid overflowing it with too much data.
`
`9.
`
`A common mechanism for reporting queue space was with registers,
`
`which have been one of the basic building blocks of computers for many decades.
`
`For example, Gewirtz described a reservation register that tracked the “available
`
`entries for reservation” in a queue. Ex-1006, 4:5-7. Rosenthal also described a
`
`flow control register that “stores an indication of the number of available spaces
`
`for commands” in its command queue. Ex-1009, 16:33-37. The prior art is replete
`
`with examples of registers that tracked the amount of space free in a queue. See
`
`also Ex-1011, 9:47-58 (describing a counter for a queue and setting a queue full
`
`flag when the counter reaches the queue’s size limit); Ex-1026, 9:12-18 (describing
`
`a counter that is checked against the queue size to determine if a request can be
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000007
`
`

`

`issued to that queue); Ex-1027, 8:26-32 (describing using a counter to determine
`
`the available space in a FIFO); Ex-1028, 8:32-43 (describing a counter that counts
`
`the number of available storage locations in a buffer).
`
`A. Multiprocessor Architectures
`10. By 2013, it was common for computers to have multiple processors
`
`inside them. For example, multiprocessor systems consisting of CPUs, dedicated
`
`hardware engines, DSPs, embedded processors, and other types of processors were
`
`widely known and used. Queues were often used to facilitate communications
`
`between these processors. See Ex-1005, Abstract (describing multi-engine
`
`processing system with queues); Ex-1006, 4:51-5:6 (describing software running
`
`on multiple processor cores using a reservation register to determine if it can write
`
`to a queue); Ex-1007, 6:10-12 (describing multiprocessor used in a network
`
`channel adapter); Ex-1008, Abstract (describing a multiprocessor system with
`
`queues that delegates tasks from processor to another); Ex-1009, 4:49-59
`
`(describing multiple bus masters and bus slaves connected to an I/O bus); Ex-1010,
`
`Abstract (describing coordinated processing using queues for groups of
`
`processors).
`
`11. Another example of a multiprocessor system with queue-based
`
`synchronization among three processors is found in a 2008 article by Ou.
`
`Ex-1016. Ou’s Fig. 3 is illustrative of the architecture:
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000008
`
`

`

`
`
`Ex-1016, Fig. 3.
`
`12. Ou’s Figure 3 illustrates a task manager that coordinates the MPU
`
`(processor) and DSP (digital signal processor) by use of command queues. As
`
`described:
`
`The proposed HPI consists of three interactive controllers (FSMs)
`including the MPU manager, the DSP manager, and the task manager
`as depicted in Fig. 3. Communication among those controllers is
`through command queues. The MPU manager takes care of commands
`such as data push/pull from the MPU or the DSP. The DSP manager
`will receive commands from the MPU or the DSP. Some commands
`such as “free memory page request/release” are handled by the DSP
`manager itself while others like “dequeue/enqueue” are bypassed to the
`task manager. The main function of the task manager is to monitor all
`task status and schedule any ready-to-run task to idle DSP thread for
`execution.
`
`Ex-1016, 000001-2.
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000009
`
`

`

`13. The Ou article also describes an embodiment, in which a third “task
`
`manager” processor manages enqueuing and dequeuing commands going to/from a
`
`DSP and interfacing with an MPU manager running on the main processor.
`
`Ex-1016, 000001-2. In general, well before the filing of the ’596 patent, it was
`
`well known in the art that there were several ways to arrange multiple processors
`
`to interact with and to manage queues, and Ou’s embodiment is one example.
`
`By 2013, a particular arrangement of tasks among processors would not be novel,
`
`as many possible arrangements would have been well known in the art. To restate,
`
`in Ou’s embodiment the addition of a separate task manager co-processor enabled
`
`the MPU and DSP both to operate more efficiently. The MPU is freed from
`
`having to create and assign tasks (processes) to the DSP and the DSP is able to be
`
`kept busier because the dedicated task manager can assign another task as soon as
`
`one finishes.
`
`B. Memory Mapping
`14. One common way to allow a processor to access internal control
`
`registers is by mapping the registers to addresses in memory space, where accesses
`
`to that address will be directed to the register. Consider, for example, the Atmel
`
`8-bit microcontroller. This is a common, inexpensive microcontroller. Consider
`
`this excerpt from its datasheet:
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000010
`
`

`

`
`
`Ex-1025, 000008.
`
`15. This shows that the “UCSR0C” register is accessed via address
`
`location 0xC2 (hexadecimal C2). A read from address 0xC2 reads the values
`
`found inside that register. This is why all modern processors (that I am aware of)
`
`use this technique—a CPU can easily read and write control registers simply by
`
`reading and writing to specific addresses.
`
`16. Examining the table in the datasheet, it is clear that the defined
`
`memory range goes from memory address 0x00 to memory address 0xFF.
`
`Ex-1025, 000008-11. In other words, it would be a simple matter for a hardware
`
`designer to add more registers and map them into the processor’s memory space at
`
`an address higher than 0xFF without disrupting the operation of any other registers.
`
`A processor’s memory map is determined by the address decoder that selects and
`
`activates the specific memory location or device that corresponds to the given
`
`address. By using different address ranges for various memory components and
`
`devices (like RAM, ROM, I/O ports, registers), the address decoder determines
`
`which device to access based on the address being used.
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000011
`
`

`

`C. Multi Threading and Semaphores
`17. Binary electronic computers are only approximately 75 years old.
`
`The first electronic computers, based on vacuum tubes, came along during World
`
`War 2 and their better-known transistorized versions came out shortly after. Even
`
`in my childhood, computers were roughly the size of refrigerators.
`
`18. Early computers contained a single central processing unit (CPU) that
`
`fetched and executed instructions. In that world, programs were relatively
`
`straightforward—one CPU ran one program. Even then problems arose.
`
`Computers performed input/output operations and, as storage technology evolved,
`
`access to input/output soon became necessary to store a non-trivial amount of
`
`information.
`
`19.
`
`In the emerging world where bulk data storage was much slower than
`
`the CPU, CPUs migrated from polling input/output (waiting for the I/O operation
`
`to complete before continuing) to interrupt driven to improve overall performance.
`
`In the interrupt-driven model, a CPU assigns an operation to an I/O unit and then
`
`resumes its main program. Later, when the I/O unit is finished, the CPU is notified
`
`via an interrupt. Importantly, an interrupt can occur at any time while the program
`
`is running. At this point, programming becomes significantly more complicated.
`
`20.
`
`I teach interrupts in my sophomore-level undergraduate
`
`microprocessor class. The important feature is that the main program can be
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000012
`
`

`

`interrupted at any moment. The only way that the main program can run reliably is
`
`if the interrupt software maintains the illusion, to the main program, that nothing is
`
`happening behind the program’s back. For example, if an interrupt could
`
`overwrite the variable “x” then the main program would live in a world where “x”
`
`could spontaneously change with no warning. It rapidly becomes clear that
`
`something fundamental has shifted.
`
`21.
`
`In the history of computing, this issue came to the surface rather
`
`quickly. For example, it was discussed in a seminal paper by Djiskstra in 1966 (as
`
`cited in a paper by Wirth in 1969). In other words, the problem of two pieces of
`
`software that can execute in any order was recognized as a problem almost 60
`
`years ago.
`
`22.
`
`In short, the main program and the interrupt service routine are
`
`separate threads (to be clear, the name “thread” did not come along until later, but
`
`the concept is clear). In the computing arts, a thread is a single schedulable piece
`
`of software. Each thread has its own set of instructions, access to its own set of
`
`data (variables), and its own program state. Importantly, one thread cannot alter
`
`the instructions, data, or state of another thread, or else the result will be chaotic
`
`and unpredictable execution.
`
`23. This situation was explained in a 1969 paper by Niklaus Wirth.
`
`Ex-1012. Wirth’s paper explains the following:
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000013
`
`

`

`Most modern data processing systems consist of several machines
`which can operate concurrently, and most programs make use of many
`of these concurrently operating units. This is particularly the case for
`input and output (I/O) activities. ...
`
`The difficulties arising with multiprogramming compared with
`uniprogramming (programming a single sequential algorithm) are such
`that every effort is made to save the programmer from having to specify
`concurrent operations.
`
`On the machine code level, however, these difficulties cannot be
`circumvented: the activities of every unit must be specified in detail.
`Unfortunately this level offers the least safety against programming
`mistakes, because there is no redundancy as provided by higher level
`languages, which can be used by compilers to check against errors. It
`is therefore particularly desirable that at the machine code level the
`programmer be able to work on the basis of clear and systematic
`concepts of concurrent activities--their initiation, termination, and
`synchronization.
`
`Ex-1012, 000001.
`
`24.
`
`In other words, programmers needed access to a simple set of
`
`concepts to enable concurrently running threads to be able to work together
`
`harmoniously on a single computer. The paper goes on to explain the concept of
`
`semaphores.
`
`Synchronization among concurrent processes is performed by means of
`variables common to those processes. Dijkstra has thoroughly
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000014
`
`

`

`investigated the problems arising from access of common variables
`(and the reader is encouraged to study his treatise at this point [3, 7]).
`He postulates two basic operations which constitute an interlocking
`mechanism, named P and V. These operations act on variables which
`assume integral values (0, 1, 2, • • • ). Dijkstra appropriately calls these
`variables semaphores, and it is subsequently postulated that P and V be
`the only operations applicable to variables designated as semaphores.
`(The observation of this postulate will be crucial for the implementation
`discussed below.) The operation V(s) (3) increments the value of the
`semaphore S by 1. The operation P(S) (4) can only be performed when
`the value of S is positive, which is decremented by 1. From this it
`follows that P may effectuate a delay of program execution until
`another process performs a V operation on the semaphore S. Thereby
`a synchronization of the two processes is obtained.
`
`Ex-1012, 000002.
`
`25. To recap, by the mid-1960s, it was clear that concurrently running
`
`pieces of software need a mechanism to synchronize their actions. For example,
`
`one purpose of a semaphore is to make sure that only one thread has access to a
`
`resource at a time.
`
`26. Consider what happens when two threads have write access to the
`
`same area of memory without coordination between them. When one thread writes
`
`to a variable in memory and reads back the variable, normal programming practice
`
`demands that the variable have the same value. The analogy I use in my class is
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000015
`
`

`

`this: imagine a world where you drive to work and when you return home, it has
`
`been replaced by an elephant sanctuary. Like threads, we expect the world to
`
`remain the same when we are not observing it.
`
`27. The semaphores described by Dijkstra serve as a safeguard. A thread
`
`can only obtain write access if it successfully performs a P operation with a
`
`positive result.
`
`28. A subtle side effect of semaphores is that a single semaphore has to be
`
`updated atomically. That is, the process of reading and updating (and specifically
`
`the internal steps of the P operation) must be executed without any interruptions.
`
`In computing circles, this is sometimes called atomic test and set.
`
`29. Circling back to the P and V example in the Wirth paper, a common
`
`approach was to extend the P and V concept incrementally, e.g., to modify P and V
`
`such that the integer value of the semaphore represents the amount of empty space
`
`available for storage. If a thread requested “100” and the value of the integer
`
`was 110, the integer would be lowered to 10 and the 100 bytes would be made
`
`available to the thread. If a thread requested “200” and the value of the integer
`
`was 110, the thread would block until more space was available. In other words,
`
`semaphores are very useful tools for providing concurrent access to hardware
`
`resources.
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000016
`
`

`

`30.
`
`It is worth noting that semaphores were implemented in software or
`
`hardware. In software, semaphores were maintained as long as the “P” process can
`
`occur without interrupts. In other words, the heart of the “P” process contains a
`
`critical section, a piece of code that runs with interrupts disabled. In hardware,
`
`many mechanisms existed to permit atomic (that is, uninterruptible or indivisible)
`
`access. For example, U.S. Patent No. 5,276,886 to Dror describes a hardware
`
`semaphore. Ex-1013. A 2006 article describes the creation of a set of operating-
`
`system-accessible hardware semaphores to permit more rapid and more efficient
`
`access to hardware co-processors. Ex-1014. As explained in this article, hardware
`
`implementations were more efficient, and included the ability to arbitrate as
`
`necessary and to perform atomic operations on shared resources, such as a read of
`
`a queue status register, or writing or reading to queue, and updating the queue
`
`status register accordingly based on read (increment) or write (decrement). See
`
`generally Ex-1014.
`
`31. Modern CPUs, such as the commonly used ARM CPU, have
`
`instructions in their instruction set architecture specifically for accessing memory
`
`locations with mutual exclusion, a foundational step for creating a semaphore. For
`
`example, the LDREX (“load register exclusive”) and STREX (“store register
`
`exclusive”) instructions perform these steps. Ex-1015, 000004. In other words,
`
`ARM processors include instructions to maintain variables in memory that can be
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000017
`
`

`

`“locked” and “unlocked” by running processes. This enables processes to maintain
`
`semaphores or to track other information without concerns of another process
`
`overwriting it without permission.
`
`32. To recap, the notion of communicating processes is quite old, as is the
`
`notion of a simple set of constructs to manage their interaction. One common way
`
`to manage their interaction is with a semaphore, a construct that can exist in
`
`software or hardware.
`
`33. To summarize, semaphores, hardware status registers, and/or memory
`
`locations accessed atomically by multiple processors, queues, multiple independent
`
`processors / processes, and concurrent queue access were all extremely well known
`
`in the art by 2013.
`
`II. THE ’596 PATENT
`34. The ’596 patent does not purport to invent FIFO buffers or queues; it
`
`admits these existed in the prior art. Ex-1001, 1:22-25. The ’596 patent also
`
`admits that software techniques used for synchronization such as semaphores and
`
`mutexes existed in the prior art. Ex-1001, 1:25-27.
`
`35. According to the ’596 patent, “[i]t can become a challenge to ensure
`
`the module command queues (FIFOs) are not overfilled, thus synchronization is
`
`required amongst the multiplicity of processing elements.” Ex-1001, 1:22-32. “In
`
`the prior art, such synchronization is performed using software techniques, such as
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000018
`
`

`

`semaphores and mutexes to a shared available space count variable in memory.”
`
`Ex-1001, 1:25-27. “However, this takes additional processing time, making this
`
`process non-optimal.” Ex-1001, 1:27-29.
`
`36. To address these supposed shortcomings of software semaphores, the
`
`’596 patent purports to invent a “shared counter resource (e.g. a register) in the
`
`hardware representing how much free space there is in the command queue,
`
`accessible to one or more processing elements.” Ex-1001, 3:30-34.
`
`37. However, as explained above, the prior art already included
`
`multiprocessor architectures with queues, along with registers indicating the
`
`amount of free space in those queues. Supra §I.
`
`A.
`38.
`
`Prosecution History
`I understand that the ’596 patent is the start of a family of patents,
`
`including patents in the United States and China, and an application filed in
`
`Europe.
`
`39. On August 19, 2014, the ’596 patent received a first action allowance.
`
`Ex-1002, 000060-74. Prior to the allowance, an examiner-initiated interview
`
`occurred, in which the applicant agreed to the Examiner’s claim amendments as
`
`reflected in the claims of the issued patent. Ex-1002, 000075.
`
`40.
`
`In the Examiner’s reasons for allowance, the Examiner stated the
`
`reason as:
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000019
`
`

`

`the inclusion of the specific details of a reservation register that is
`accessed by the second processing element and the feature of the second
`processing element notifying the first processing element to issue a
`command to the input queue if the reservation register value indicates
`that there is available space in the input queue as are now included in
`independent claim 1
`
`…
`
`the inclusion of the specific details of a reservation register that is
`accessed by the second processing element and the feature of the second
`processing element receiving a command from the first processing
`element and the second processing element issuing said command to
`the input queue if the reservation register value indicates that there is
`available space in the input queue, as are now included in independent
`claims 7 and 13.
`
`Ex-1002, 000072-73.
`
`41.
`
`I understand that there was no substantive discussion of any prior art
`
`references, including the cited prior art references, during the prosecution of the
`
`’596 patent.
`
`42. Before the ’596 patent issued in the United States, a European
`
`counterpart application, EP14867963 (the “EU Counterpart”) was filed. Ex-1004,
`
`000080-83. During prosecution of the EU Counterpart, on June 7, 2016, an
`
`International Search Report and Written Opinion on Patentability were issued.
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000020
`
`

`

`Ex-1004, 000084-88. On June 23, 2016, the application Entered into the European
`
`phase of prosecution. Ex-1004, 000089-93.
`
`43. On May 19, 2017, a Supplementary European Search Report was
`
`issued that identified U.S. Patent No. 8,051,227 to Gewirtz and U.S. Patent
`
`Application Publication No. 2002/069245 to Kim. Ex-1004, 000111-113.
`
`44. On June 13, 2017, an EU Search Opinion was issued rejecting all
`
`claims on the basis of the Gewirtz and Kim. Ex-1004, 000114-123. The EU
`
`Search Opinion specifically noted that “[i]t is common general knowledge of the
`
`skilled person [] that an output queue [] is an implementation choice for buffering
`
`request results from a storage device.” Ex-1004, 000119.
`
`45. On April 23, 2018, the Applicant responded to the EU Search
`
`Opinion, by amending the claims to address the issues identified in the EU Search
`
`Opinion and argued against the rejections based on Gewirtz and Kim. Ex-1004,
`
`000128-144.
`
`46. On July 21, 2021, the EU Counterpart was considered withdrawn for
`
`non-payment of the 7-year renewal fee. Ex-1004, 000159.
`
`Priority Date
`B.
`47. The ’596 patent was filed on December 6, 2013, and did not claim
`
`priority to any earlier filed application. I have not conducted any analysis as to
`
`whether the ’596 patent is entitled to any claim of earlier priority. For the purposes
`
`
`
`
`
`
`
`
`
`
`
`
`Advanced Micro Devices, Inc., Pensando Systems, Inc. - Ex. 1003, Page 000021
`
`

`

`of this declaration, I have applied a December 6, 2013, priority date for my
`
`opinions.
`
`C. District Court Allegations
`In the District Cou

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