Patents by Inventor John Erik Lindholm

John Erik Lindholm has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7103720
    Abstract: Methods and systems for caching graphics data using dedicated level one caches and a shared level two cache are described. Furthermore, each method includes a protocol for maintaining coherency between the level one caches and between the level one caches and the level two cache. The level one caches may store different versions of the graphics data, permitting simultaneous processing of execution threads, each thread accessing a different version of the graphics data.
    Type: Grant
    Filed: October 29, 2003
    Date of Patent: September 5, 2006
    Assignee: NVIDIA Corporation
    Inventors: Simon S. Moy, John Erik Lindholm
  • Patent number: 7095414
    Abstract: A system and method are provided for a hardware implementation of a blending technique during graphics processing in a graphics pipeline. During processing in the pipeline, a plurality of matrices and a plurality of weight values are received. Also received is vertex data to be processed. A sum of a plurality of products may then be calculated by the multiplication of the vertex data, one of the matrices, and at least one of the weights.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: August 22, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, David B. Kirk, Paolo E. Sabella
  • Patent number: 7064763
    Abstract: A graphics pipeline system and method are provided for graphics processing. Such system includes a transform module positioned on a single semiconductor platform for transforming graphics data from object space to screen space. Coupled to the transform module is a lighting module which is positioned on the single semiconductor platform for lighting the graphics data. Also included is a rasterizer coupled to the lighting module and positioned on the single semiconductor platform for rendering the graphics data.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: June 20, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, Kevin Dawallu, Mingjian Yang, John Montrym, David B. Kirk, Paolo E. Sabella, Matthew N. Papakipos, Douglas A. Voorhies, Nicholas J. Foskett
  • Patent number: 7053904
    Abstract: Apparatuses and methods for detecting position conflicts during fragment processing are described. Prior to executing a program on a fragment, a conflict detection unit, within a fragment processor checks if there is a position conflict indicating a RAW (read after write) hazard may exist. A RAW hazard exists when there is a pending write to a destination location that source data will be read from during execution of the program. When the fragment enters a processing pipeline, each destination location that may be written during the processing of the fragment is entered in conflict detection unit. During processing, the conflict detection unit is updated when a pending write to a destination location is completed.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: May 30, 2006
    Assignee: NVIDIA Corporation
    Inventors: David B. Kirk, Matthew N. Papakipos, Rui M. Bastos, John Erik Lindholm, Steven E. Molnar, John S. Montrym, Walter E. Donovan
  • Patent number: 7050055
    Abstract: A graphics pipeline system and associated method are provided for graphics processing. Such system includes a transform module adapted for receiving graphics data. The transform module serves to transform the graphics data from a first space to a second space. Coupled to the transform module is a lighting module which is positioned on the single semiconductor platform for lighting the graphics data. During use, the graphics pipeline system is capable of carrying out a fog and blending operation.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: May 23, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, Kevin Dawallu, Mingjian Yang, John Montrym, David B. Kirk, Paolo E. Sabella, Matthew N. Papakipos, Douglas A. Voorhies, Nicholas J. Foskett
  • Patent number: 7038686
    Abstract: A programmable graphics processor for multithreaded execution of program instructions including a thread control unit. The programmable graphics processor is programmed with program instructions for processing primitive, pixel and vertex data. The thread control unit has a thread storage resource including locations allocated to store thread state data associated with samples of two or more types. Sample types include primitive, pixel and vertex. A number of threads allocated to processing a sample type may be dynamically modified.
    Type: Grant
    Filed: November 14, 2003
    Date of Patent: May 2, 2006
    Assignee: NVIDIA Corporation
    Inventor: John Erik Lindholm
  • Patent number: 7038685
    Abstract: A programmable graphics processor for multithreaded execution of program instructions including a thread control unit. The programmable graphics processor is programmed with program instructions for processing primitive, pixel and vertex data. The thread control unit has a thread storage resource including locations allocated to store thread state data associated with samples of two or more types. Sample types include primitive, pixel and vertex. A number of threads allocated to processing a sample type may be dynamically modified.
    Type: Grant
    Filed: June 30, 2003
    Date of Patent: May 2, 2006
    Assignee: NVIDIA Corporation
    Inventor: John Erik Lindholm
  • Patent number: 7034829
    Abstract: A graphics pipeline system with an integrated masking operation is provided. Included is a transform module adapted for being coupled to a buffer to receive graphics data therefrom. Such transform module is positioned on a single semiconductor platform for transforming the graphics data from a first space to a second space. Also included is a lighting module coupled to the transform module and positioned on the same single semiconductor platform as the transform module. The lighting modules serves for performing lighting operations on the graphics data received from the transform module. In use, a masking operation is further performed on the single semiconductor platform.
    Type: Grant
    Filed: September 20, 2001
    Date of Patent: April 25, 2006
    Assignee: Nvidia Corporation
    Inventors: John Erik Lindholm, Simon Moy, Kevin Dawallu, Mingjian Yang, John Montrym, David B. Kirk, Paolo E. Sabella, Matthew N. Papakipos, Douglas A. Voorhies, Nicholas J. Foskett
  • Patent number: 7027062
    Abstract: A graphics processing unit can queue a large number of texture requests to balance out the variability of texture requests without the need for a large texture request buffer. A dedicated texture request buffer queues the relatively small texture commands and parameters. Additionally, for each queued texture command, an associated set of texture arguments, which are typically much larger than the texture command, are stored in a general purpose register. The texture unit retrieves texture commands from the texture request buffer and then fetches the associated texture arguments from the appropriate general purpose register. The texture arguments may be stored in the general purpose register designated as the destination of the final texture value computed by the texture unit. Because the destination register must be allocated for the final texture value as texture commands are queued, storing the texture arguments in this register does not consume any additional registers.
    Type: Grant
    Filed: February 27, 2004
    Date of Patent: April 11, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, John R. Nickolls, Simon S. Moy, Brett W. Coon
  • Patent number: 7015913
    Abstract: A graphics processor and method for executing a graphics program as a plurality of threads where each sample to be processed by the program is assigned to a thread. Although threads share processing resources within the programmable graphics processor, the execution of each thread can proceed independent of any other threads. For example, instructions in a second thread are scheduled for execution while execution of instructions in a first thread are stalled waiting for source data. Consequently, a first received sample (assigned to the first thread) may be processed after a second received sample (assigned to the second thread). A benefit of independently executing each thread is improved performance because a stalled thread does not prevent the execution of other threads.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: March 21, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Rui M. Bastos, Harold Robert Feldman Zatz
  • Patent number: 7009607
    Abstract: A method, apparatus and article of manufacture are provided for a transform system for graphics processing as a computer system or on a single integrated circuit. Included is an input buffer adapted for being coupled to a vertex attribute buffer for receiving vertex data therefrom. A multiplication logic unit has a first input coupled to an output of the input buffer. Also provided is an arithmetic logic unit having a first input coupled to an output of the multiplication logic unit. Coupled to an output of the arithmetic logic unit is an input of a register unit. An inverse logic unit is provided including an input coupled to the output of the arithmetic logic unit or the register unit for performing an inverse or an inverse square root operation. Further included is a conversion module coupled between an output of the inverse logic unit and a second input of the multiplication logic unit. In use, the conversion module serves to convert scalar vertex data to vector vertex data.
    Type: Grant
    Filed: January 31, 2001
    Date of Patent: March 7, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, David B. Kirk, Paolo E. Sabella
  • Patent number: 7002577
    Abstract: A graphics pipeline system and associated method are provided with an integrated clipping operation. First included is a transform module positioned on a single semiconductor platform for transforming graphics data from a first space to a second space. Also provided is a lighting module positioned on the same single semiconductor platform as the transform module. The lighting module is adapted for performing lighting operations on the graphics data. A clipping operation is also performed utilizing the single semiconductor platform.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: February 21, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, Kevin Dawallu, Mingjian Yang, John Montrym, David B. Kirk, Paolo E. Sabella, Matthew N. Papakipos, Douglas A. Voorhies, Nicholas J. Foskett
  • Patent number: 7002588
    Abstract: A system, method and computer program product are provided for branching during graphics processing. Initially, a first operation is performed on data. In response to the first operation, a branching operation is performed to a second operation. The first operation and the second operation are associated with instructions selected from a predetermined instruction set.
    Type: Grant
    Filed: March 19, 2003
    Date of Patent: February 21, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon S. Moy, Robert Steven Glanville
  • Patent number: 6992667
    Abstract: A graphics hardware system and method are provided for graphics processing. Such system includes a transform module positioned on a single semiconductor platform for transforming graphics data. Coupled to the transform module is a lighting module which is positioned on the single semiconductor platform for lighting the graphics data. Also included is a rasterizer coupled to the lighting module and positioned on the single semiconductor platform for rendering the graphics data. As an option, the graphics hardware system may further be equipped with skinning, swizzling and masking capabilities.
    Type: Grant
    Filed: March 31, 2003
    Date of Patent: January 31, 2006
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Simon Moy, Kevin Dawallu, Mingjian Yang, John Montrym, David B. Kirk, Paolo E. Sabella, Matthew N. Papakipos, Douglas A. Voorhies, Nicholas J. Foskett
  • Patent number: 6987517
    Abstract: A programmable graphics processor including an execution pipeline and a texture unit is described. The execution pipeline processes graphics data as specified by a fragment program. The fragment program may include one or more opcodes. The texture unit includes one or more sub-units which execute the opcodes to perform specific operations such as an LOD computation, generation of sample locations used to read texture map data, and address computation based on the sample locations.
    Type: Grant
    Filed: January 6, 2004
    Date of Patent: January 17, 2006
    Assignee: NVIDIA Corporation
    Inventors: Walter E. Donovan, John Erik Lindholm
  • Patent number: 6975321
    Abstract: A system and method are provided for generating multiple output packets in a single processing pass of a shader in a hardware graphics pipeline. Initially, graphics data is received, after which it is processed utilizing the shader of the hardware graphics pipeline to generate a plurality of output packets. The plurality of output packets is outputted from the shader of the hardware graphics pipeline in the single processing pass.
    Type: Grant
    Filed: May 5, 2003
    Date of Patent: December 13, 2005
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Steven E. Molnar, Harold Robert Feldman Zatz
  • Patent number: 6954204
    Abstract: A programmable graphics system and method for processing high precision graphics data represented in one or more data formats in one or more passes. Graphics program instructions executed by the system control the processing and format conversion of the data. The program instructions and the data are stored in a memory accessible by the system. Within the memory, contiguous memory entries can contain program instructions or data represented in different formats. The format used to represent a particular data element within the data, is specified in the state information maintained in the system and is used to configure format conversion units within the system. High precision data, such as floating color, is processed by the programmable graphics system and output via a digital to analog converter (DAC) for display.
    Type: Grant
    Filed: November 22, 2002
    Date of Patent: October 11, 2005
    Assignee: NVIDIA Corporation
    Inventors: Harold Robert Feldman Zatz, Walter E. Donovan, John Erik Lindholm, Steven E. Molnar, John S. Montrym
  • Patent number: 6950107
    Abstract: System and method for reserving a memory space for multithreaded processing is described. Memory space within a memory resource is allocated responsive to thread type. Examples of thread types for graphics processing include primitive, vertex and fragment types. Memory space allocated may be of a predetermined size for a thread type. Memory locations within a first memory space may be interleaved with memory locations within a second memory space.
    Type: Grant
    Filed: December 2, 2003
    Date of Patent: September 27, 2005
    Assignee: NVIDIA Corporation
    Inventors: Henry P. Moreton, John Erik Lindholm, Matthew N. Papakipos, Rul M. Bastos
  • Patent number: 6947047
    Abstract: A programmable, pipelined graphics processor (e.g., a vertex processor) having at least two processing pipelines, a graphics processing system including such a processor, and a pipelined graphics data processing method allowing parallel processing and also handling branching instructions and preventing conflicts among pipelines. Preferably, each pipeline processes data in accordance with a program including by executing branch instructions, and the processor is operable in any one of a parallel processing mode in which at least two data values to be processed in parallel in accordance with the same program are launched simultaneously into multiple pipelines, and a serialized mode in which only one pipeline at a time receives input data values to be processed in accordance with the program (and operation of each other pipeline is frozen).
    Type: Grant
    Filed: June 10, 2002
    Date of Patent: September 20, 2005
    Assignee: NVIDIA Corporation
    Inventors: Simon Moy, John Erik Lindholm
  • Patent number: 6894687
    Abstract: A system, method and article of manufacture are provided for aliasing vertex attributes during vertex processing. Initially, a plurality of identifiers are each mapped to one of a plurality of parameters associated with vertex data. Thereafter, the vertex data is processed by calling the parameters utilizing a vertex program capable of referencing the parameters using the identifiers.
    Type: Grant
    Filed: June 8, 2001
    Date of Patent: May 17, 2005
    Assignee: NVIDIA Corporation
    Inventors: Mark J. Kilgard, John Erik Lindholm, Robert Steven Glanville, Michael I. Gold