Patents by Inventor John Lindholm

John 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).

  • Publication number: 20070214343
    Abstract: Instruction dispatch in a multithreaded microprocessor such as a graphics processor is not constrained by an order among the threads. Instructions for each thread are fetched, and a dispatch circuit determines which instructions in the buffer are ready to execute. The dispatch circuit may issue any ready instruction for execution, and an instruction from one thread may be issued prior to an instruction from another thread regardless of which instruction was fetched first. If multiple functional units are available, multiple instructions can be dispatched in parallel.
    Type: Application
    Filed: October 10, 2006
    Publication date: September 13, 2007
    Applicant: NVIDIA Corporation
    Inventors: John Lindholm, Brett Coon, Simon Moy
  • Publication number: 20070159488
    Abstract: A parallel array architecture for a graphics processor includes a multithreaded core array including a plurality of processing clusters, each processing cluster including at least one processing core operable to execute a pixel shader program that generates pixel data from coverage data; a rasterizer configured to generate coverage data for each of a plurality of pixels; and pixel distribution logic configured to deliver the coverage data from the rasterizer to one of the processing clusters in the multithreaded core array. The pixel distribution logic selects one of the processing clusters to which the coverage data for a first pixel is delivered based at least in part on a location of the first pixel within an image area. The processing clusters can be mapped directly to the frame buffers partitions without a crossbar so that pixel data is delivered directly from the processing cluster to the appropriate frame buffer partitions.
    Type: Application
    Filed: December 15, 2006
    Publication date: July 12, 2007
    Applicant: NVIDIA Corporation
    Inventors: John Danskin, John Montrym, John Lindholm, Steven Molnar, Mark French
  • Publication number: 20070143582
    Abstract: Multiple threads are divided into buddy groups of two or more threads, so that each thread has assigned to it one or more buddy threads. Only one thread in each buddy group actively executes instructions and this allows buddy threads to share hardware resources, such as registers. When an active thread encounters a swap event, such as a swap instruction, the active thread suspends execution and one of its buddy threads begins execution using that thread's private hardware resources and the buddy group's shared hardware resources. As a result, the thread count can be increased without replicating all of the per-thread hardware resources.
    Type: Application
    Filed: December 16, 2005
    Publication date: June 21, 2007
    Inventors: Brett Coon, John Lindholm
  • Publication number: 20070130447
    Abstract: A SIMD processor efficiently utilizes its hardware resources to achieve higher data processing throughput. The effective width of a SIMD processor is extended by clocking the instruction processing side of the SIMD processor at a fraction of the rate of the data processing side and by providing multiple execution pipelines, each with multiple data paths. As a result, higher data processing throughput is achieved while an instruction is fetched and issued once per clock. This configuration also allows a large group of threads to be clustered and executed together through the SIMD processor so that greater memory efficiency can be achieved for certain types of operations like texture memory accesses performed in connection with graphics processing.
    Type: Application
    Filed: December 2, 2005
    Publication date: June 7, 2007
    Inventors: Brett Coon, John Lindholm
  • Publication number: 20060119607
    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: Application
    Filed: January 25, 2006
    Publication date: June 8, 2006
    Applicant: NVIDIA Corporation
    Inventors: John Lindholm, John Nickolls, Simon Moy, Brett Coon
  • Publication number: 20060012603
    Abstract: An apparatus and method for simulating a multiported memory using lower port count memories as banks. A portion of memory is allocated for storing data associated with a thread. The portion of memory allocated to a thread may be stored in a single bank or in multiple banks. A collector unit coupled to each bank gathers source operands needed to process a program instruction as the source operands output from one or more banks. The collector unit outputs the source operands to an execution unit when all of the source operands needed to process the program instruction have been gathered.
    Type: Application
    Filed: July 13, 2004
    Publication date: January 19, 2006
    Inventors: John Lindholm, Ming Siu, Simon Moy, Samuel Liu, John Nickolls
  • Publication number: 20050190195
    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: Application
    Filed: February 27, 2004
    Publication date: September 1, 2005
    Applicant: NVIDIA Corporation
    Inventors: John Lindholm, John Nickolls, Simon Moy, Brett Coon
  • Publication number: 20050138328
    Abstract: Instruction dispatch in a multithreaded microprocessor such as a graphics processor is not constrained by an order among the threads. Instructions are fetched into an instruction buffer that is configured to store an instruction from each of the threads. A dispatch circuit determines which instructions in the buffer are ready to execute and may issue any ready instruction for execution. An instruction from one thread may be issued prior to an instruction from another thread regardless of which instruction was fetched into the buffer first. Once an instruction from a particular thread has issued, the fetch circuit fills the available buffer location with the following instruction from that thread.
    Type: Application
    Filed: December 18, 2003
    Publication date: June 23, 2005
    Applicant: NVIDIA Corporation
    Inventors: Simon Moy, John Lindholm
  • Patent number: D513788
    Type: Grant
    Filed: May 4, 2004
    Date of Patent: January 24, 2006
    Assignee: Hansgrohe AG
    Inventor: John Lindholm
  • Patent number: D514665
    Type: Grant
    Filed: October 28, 2004
    Date of Patent: February 7, 2006
    Assignee: Hansgrohe AG
    Inventor: John Lindholm