Patents Assigned to NVidia
  • Patent number: 9489201
    Abstract: A system includes a processing unit and a register file. The register file includes at least a first memory structure and a second memory structure. The first memory structure has a lower access energy than the second memory structure. The processing unit is configured to address the register file using a single logical namespace for both the first memory structure and the second memory structure.
    Type: Grant
    Filed: November 18, 2013
    Date of Patent: November 8, 2016
    Assignee: NVIDIA Corporation
    Inventors: Brucek Kurdo Khailany, Mark Alan Gebhart
  • Patent number: 9489245
    Abstract: One embodiment of the present invention enables threads executing on a processor to locally generate and execute work within that processor by way of work queues and command blocks. A device driver, as an initialization procedure for establishing memory objects that enable the threads to locally generate and execute work, generates a work queue, and sets a GP_GET pointer of the work queue to the first entry in the work queue. The device driver also, during the initialization procedure, sets a GP_PUT pointer of the work queue to the last free entry included in the work queue, thereby establishing a range of entries in the work queue into which new work generated by the threads can be loaded and subsequently executed by the processor. The threads then populate command blocks with generated work and point entries in the work queue to the command blocks to effect processor execution of the work stored in the command blocks.
    Type: Grant
    Filed: October 26, 2012
    Date of Patent: November 8, 2016
    Assignee: NVIDIA Corporation
    Inventors: Ignacio Llamas, Craig Ross Duttweiler, Jeffrey A. Bolz, Daniel Elliot Wexler
  • Patent number: 9484815
    Abstract: A system and method are provided for controlling a switching voltage regulator circuit. An energy difference between a stored energy of a switching voltage regulator and a target energy is determined. A control variable of the switching voltage regulator is computed based on the energy difference and the control variable is applied to a current control mechanism of the switching voltage regulator. In one embodiment, the control variable is pulse width of a control signal.
    Type: Grant
    Filed: October 16, 2013
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventor: William J. Dally
  • Patent number: 9484115
    Abstract: A subsystem configured to select the power supply to a static random access memory cell compares the level of a dedicated memory supply voltage to the primary system supply voltage. The subsystem then switches the primary system supply to the SRAM cell when the system voltage is higher than the memory supply voltage with some margin. When the system voltage is lower than the memory supply voltage, with margin, the subsystem switches the memory supply to the SRAM cell. When the system voltage is comparable to the memory supply, the subsystem switches the system voltage to the SRAM cell if performance is a prioritized consideration, but switches the memory supply to the SRAM cell if power reduction is a prioritized consideration. In this manner, the system achieves optimum performance without incurring steady state power losses and avoids timing issues in accessing memory.
    Type: Grant
    Filed: May 13, 2015
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Stephen Felix, Hwong-Kwo Lin, Spencer Gold, Jing Guo, Andreas Gotterba, Jason Golbus, Karthik Natarajan, Jun Yang, Zhenye Jiang, Ge Yang, Lei Wang, Yong Li, Hua Chen, Haiyan Gong, Beibei Ren, Eric Voelkel
  • Patent number: 9483423
    Abstract: One embodiment sets forth a method for guiding the order in which a parallel processing subsystem executes memory copies. A driver creates semaphores for all but the lowest priority included in a plurality of priorities and associates one priority with each copy hardware channel included in the parallel processing subsystem. The driver then aliases prioritized streams to the copy hardware channels based on the priorities. Upon receiving a request to execute a memory copy within one of the streams, the driver inserts commands into the aliased copy hardware channel. These commands use the semaphores to direct the parallel processing subsystem to execute the memory copy based on the priority of the copy hardware channel. Advantageously, by assigning priorities to streams and, subsequently, strategically requesting memory copies within the prioritized streams, an application developer may fine-tune their software application to increase the overall processing efficiency of the software application.
    Type: Grant
    Filed: May 17, 2013
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Vivek Kini, Christopher Lamb, Mark Hairgrove
  • Patent number: 9483845
    Abstract: A video frame compression system includes a rendering engine that provides a current video frame and current additional rendering information. Additionally, the video frame compression system includes a warping engine that generates a warped video frame, wherein the warped video frame is a transformation of a previous video frame that is based on the current additional rendering information. Further, the video frame compression system includes a video encoder that compresses the current video frame by using the warped video frame as a reference frame and separately compresses the current additional rendering information. Still further, the video frame compression system includes a packetizer that provides main and auxiliary data streams corresponding to the compressed current video frame and the compressed current additional rendering information, respectively. A video frame decompression system and methods of video frame compression and decompression are also provided.
    Type: Grant
    Filed: April 26, 2013
    Date of Patent: November 1, 2016
    Assignee: Nvidia Corporation
    Inventors: Hassane S Azar, Dawid Pajak, Stefan Eckart, Swagat Mohapatra
  • Patent number: 9483068
    Abstract: One embodiment of the present invention sets for a method for monitoring the aging of a circuit. The method includes operating an aging unit included in the circuit beginning at a first time. The method also includes in response to a trigger event, operating a non-aging unit also included in the circuit beginning at a second time wherein the second time is subsequent to the first time. The method further includes detecting a frequency difference between a first frequency generated by the aging unit and a second frequency generated by the non-aging unit. The method also includes generating a modified power supply voltage based on the frequency difference. The method also includes applying the modified power supply voltage to the non-aging unit.
    Type: Grant
    Filed: April 19, 2013
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Tezaswi Raja, Andrew Charnas
  • Patent number: 9483235
    Abstract: Embodiments of the present invention provide a novel solution that supports the separate compilation of host code and device code used within a heterogeneous programming environment. Embodiments of the present invention are operable to link device code embedded within multiple host object files using a separate device linking operation. Embodiments of the present invention may extract device code from their respective host object files and then linked them together to form linked device code. This linked device code may then be embedded back into a host object generated by embodiments of the present invention which may then be passed to a host linker to form a host executable file. As such, device code may be split into multiple files and then linked together to form a final executable file by embodiments of the present invention.
    Type: Grant
    Filed: March 25, 2013
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Michael Murphy, Sean Y. Lee, Stephen Jones, Girish Bharambe, Jaydeep Marathe
  • Patent number: 9483270
    Abstract: One embodiment of the present invention sets forth a graphics subsystem configured to implement distributed tiled caching. The graphics subsystem includes one or more world-space pipelines, one or more screen-space pipelines, one or more tiling units, and a crossbar unit. Each world-space pipeline is implemented in a different processing entity and is coupled to a different tiling unit. Each screen-space pipeline is implemented in a different processing entity and is coupled to the crossbar unit. The tiling units are configured to receive primitives from the world-space pipelines, generate cache tile batches based on the primitives, and transmit the primitives to the screen-space pipelines. One advantage of the disclosed approach is that primitives are processed in application-programming-interface order in a highly parallel tiling architecture. Another advantage is that primitives are processed in cache tile order, which reduces memory bandwidth consumption and improves cache memory utilization.
    Type: Grant
    Filed: October 18, 2013
    Date of Patent: November 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Ziyad S. Hakura, Cynthia Ann Edgeworth Allison, Dale L. Kirkland, Walter R. Steiner
  • Patent number: 9477526
    Abstract: A system, method, and computer program product are provided for providing prioritized access for multithreaded processing. The method includes the steps of allocating threads to process a workload and assigning a set of priority tokens to at least a portion of the threads. Access to a resource, by each one of the threads, is based on the priority token assigned to the thread and the threads are executed by a multithreaded processor to process the workload.
    Type: Grant
    Filed: January 3, 2014
    Date of Patent: October 25, 2016
    Assignee: NVIDIA Corporation
    Inventors: Daniel Robert Johnson, Minsoo Rhu, James M. O'Connor, Stephen William Keckler
  • Patent number: 9477475
    Abstract: According to embodiments disclosed herein, there is disclosed a computer processor architecture; and in particular a computer processor, a method of operating the same, and a computer program product that makes use of an instruction set for the computer. In one embodiment, the computer processor includes: (1) a decode unit for decoding instruction packets fetched from a memory holding the instruction packets, (2) a control processing channel capable of performing control operations and (3) a data processing channel capable of performing data processing operations, wherein, in use the decode unit causes instructions of instruction packets comprising a plurality of only control instructions to be executed sequentially on the control processing channel, and wherein, in use the decode unit causes instructions of instruction packets comprising a plurality of instructions comprising at least one data processing instruction to be executed simultaneously on the data processing channel.
    Type: Grant
    Filed: April 30, 2015
    Date of Patent: October 25, 2016
    Assignee: Nvidia Technology UK Limited
    Inventor: Simon Knowles
  • Patent number: 9479709
    Abstract: A method for displaying a live preview image on a mobile device is disclosed. The method includes computing a history color value and confidence value for each pixel of a sensor of a camera. Further, it includes obtaining a new frame of pixels from the camera. Subsequently, for each pixel in the new frame, the method includes: (a) determining if a pixel color is similar to a corresponding history color value and if a confidence corresponding to a pixel is above a predetermined threshold; (b) if the pixel color is not similar to the history color value and the confidence is above the predetermined threshold, displaying the history color value on the preview when displaying the new frame; and (c) if the pixel color is similar to the history color value or the confidence is below the threshold, displaying the pixel color on the preview instead.
    Type: Grant
    Filed: October 10, 2013
    Date of Patent: October 25, 2016
    Assignee: NVIDIA CORPORATION
    Inventors: Syed Zahir Bokari, Josh Abbott, Jim van Welzen
  • Patent number: 9477480
    Abstract: A system, method, and computer program product are provided for scheduling interruptible hatches of instructions for execution by one or more functional units of a processor. The method includes the steps of receiving a batch of instructions that includes a plurality of instructions and dispatching at least one instruction from the batch of instructions to one or more functional units for execution. The method further includes the step of receiving an interrupt request that causes an interrupt routine to be dispatched to the one or more functional units prior to all instructions in the batch of instructions being dispatched to the one or more functional units. When the interrupt request is received, the method further includes the step of storing batch-level resources in a memory to resume execution of the batch of instructions once the interrupt routine has finished execution.
    Type: Grant
    Filed: January 30, 2014
    Date of Patent: October 25, 2016
    Assignee: NVIDIA Corporation
    Inventors: Olivier Giroux, Robert Ohannessian, Jr., Jack H. Choquette, Michael Alan Fetterman
  • Patent number: 9477477
    Abstract: A system, method, and computer program product are provided for executing casting-arithmetic instructions. The method comprises receiving a casting-arithmetic instruction that specifies an arithmetic operation to be performed on input data and at least one casting operation of an input casting operation and an output casting operation. Upon determining that the casting-arithmetic instruction specifies the input casting operation, the input casting operation is performed on identified terms comprising the input data. Then the arithmetic operation is performed on the input data to generate an arithmetic result. Upon determining that the casting-arithmetic instruction specifies the output casting operation, the output casting operation is performed on the arithmetic result.
    Type: Grant
    Filed: January 22, 2014
    Date of Patent: October 25, 2016
    Assignee: NVIDIA Corporation
    Inventor: William J. Dally
  • Patent number: 9478482
    Abstract: One embodiment of the present invention sets forth an integrated circuit package including a substrate, an integrated circuit die, and a plurality of solder bump structures. The substrate includes a first plurality of interconnects disposed on a first surface of the substrate. The integrated circuit die includes a second plurality of interconnects disposed on a first surface of the integrated circuit die. The plurality of solder bump structures couple the first plurality of interconnects to the second plurality of interconnects. The first plurality of interconnects are configured to be substantially aligned with the second plurality of interconnects when the integrated circuit package is at a first temperature within a range of about 0° C. to about ?100° C. The first plurality of interconnects are configured to be offset from the second plurality of interconnects when the integrated circuit package is at a temperature above the first temperature.
    Type: Grant
    Filed: November 21, 2012
    Date of Patent: October 25, 2016
    Assignee: NVIDIA CORPORATION
    Inventors: Leilei Zhang, Zuhair Bokharey
  • Patent number: 9477575
    Abstract: A method for debugging and includes receiving a request for capturing a frame generated by a graphics application implementing application threads executing function calls. The function calls are associated with one or more thread specific resources used at the beginning of the capturing process. For each application thread, a corresponding state is determined for each thread specific resource utilized, and a corresponding capture stream is established. For each application thread, executed function calls are captured into the corresponding capture stream. A plurality of captured function calls is arranged in the order they were executed by the graphics application. For each capture stream, a corresponding replay thread is established. Application threads, capture streams, and replay threads exist in a one-to-one-to-one relationship.
    Type: Grant
    Filed: June 12, 2013
    Date of Patent: October 25, 2016
    Assignee: NVIDIA CORPORATION
    Inventor: Michael C. Strauss
  • Patent number: 9477597
    Abstract: Embodiments of the present technology are directed toward techniques for enabling different memory partitions to have different memory depths.
    Type: Grant
    Filed: March 25, 2011
    Date of Patent: October 25, 2016
    Assignee: NVIDIA CORPORATION
    Inventors: Brian Kelleher, Emmett Kilgariff
  • Patent number: 9479001
    Abstract: A regulator draws power from a battery or power delivery system and supplies regulated power to a load according to alternating modes of operation. In a voltage control mode, the regulator supplies power with a nominal voltage level and a fluctuating current level that is allowed to float according to the current demands of the load. When the load demands an amount of current that could potentially cause damage, the regulator transitions to a current control mode. In the current control mode, the regulator supplies power with a fluctuating voltage level and a maximum current level. The regulator transitions between voltage control mode and current control mode in order to supply a maximum power level to the load without exceeding the maximum current level. The regulator is also configured to limit the power drawn from the battery by decreasing the maximum output current, potentially avoiding voltage droop.
    Type: Grant
    Filed: August 27, 2013
    Date of Patent: October 25, 2016
    Assignee: NVIDIA CORPORATION
    Inventors: Rene Marchand, Thomas Dean Skelton, Matthew Longnecker, Brian Smith
  • Patent number: 9478066
    Abstract: A system, method, and computer program product are provided for adjusting vertex positions. One or more viewport dimensions are received and a snap spacing is determined based on the one or more viewport dimensions. The vertex positions are adjusted to a grid according to the snap spacing. The precision of the vertex adjustment may increase as at least one dimension of the viewport decreases. The precision of the vertex adjustment may decrease as at least one dimension of the viewport increases.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: October 25, 2016
    Assignee: NVIDIA Corporation
    Inventors: Eric Brian Lum, Henry Packard Moreton, Kyle Perry Roden, Walter Robert Steiner, Ziyad Sami Hakura
  • Patent number: 9477482
    Abstract: A system, method, and computer program product are provided for implementing a multi-cycle register file bypass mechanism. The method includes the steps of receiving a set of control bits, combining the set of control bits with a set of valid bits associated with previously issued instructions, and enabling a bypass path for each thread based on the set of control bits and the set of valid bits. Each valid bit in the set of valid bits indicates whether execution of an instruction of the previously issued instructions was enabled for a thread in a thread block.
    Type: Grant
    Filed: September 26, 2013
    Date of Patent: October 25, 2016
    Assignee: NVIDIA Corporation
    Inventors: Xiaogang Qiu, Ian Chi Yan Kwong, Ming Yiu Siu, Jack H. Choquette, Michael Alan Fetterman