Nvidia Patent Applications

DYNAMICALLY DETECTING UNIFORMITY AND ELIMINATING REDUNDANT COMPUTATIONS TO REDUCE POWER CONSUMPTION

Granted: April 9, 2015
Application Number: 20150100764
One embodiment of the present invention includes techniques to decrease power consumption by reducing the number of redundant operations performed. In operation, a streamlining multiprocessor (SM) identifies uniform groups of threads that, when executed, apply the same deterministic operation to uniform sets of input operands. Within each uniform group of threads, the SM designates one thread as the anchor thread. The SM disables execution units assigned to all of the threads except the…

AUDIO ENCODER PERFORMANCE FOR MIRACAST

Granted: April 9, 2015
Application Number: 20150100324
A method for encoding audio comprises receiving an unencoded audio signal and monitoring a user interface for user interface events. The method continues by selecting one of a plurality of transform windows to hold a defined quantity of audio samples based upon a detected one or more user interface interaction events and associated transient information. The plurality of transform windows comprises a long window sequence comprising a single window with a first quantity of samples, and a…

METHOD AND SYSTEM FOR BUFFER LEVEL BASED FRAME RATE RECOVERY

Granted: April 9, 2015
Application Number: 20150098020
Embodiments of the present invention can measure internal buffer levels (e.g., queue levels) within the sink device and dynamically adjust step size values responsive to buffer level conditions that dynamically alter the sink frame rate. As such, embodiments of the present invention can find an equivalent of the source device frame rate on the sink device based on the sink device's own clock speed. In this manner, transmission bandwidth may be preserved as clocking information does not…

APPROACH TO CACHING DECODED TEXTURE DATA WITH VARIABLE DIMENSIONS

Granted: April 9, 2015
Application Number: 20150097851
A texture processing pipeline is configured to store decoded texture data within a cache unit in order to expedite the processing of texture requests. When a texture request is processed, the texture processing pipeline queries the cache unit to determine whether the requested data is resident in the cache. If the data is not resident in the cache unit, a cache miss occurs. The texture processing pipeline then reads encoded texture data from global memory, decodes that data, and writes…

MANAGING MEMORY REGIONS TO SUPPORT SPARSE MAPPINGS

Granted: April 9, 2015
Application Number: 20150097847
One embodiment of the present invention includes a memory management unit (MMU) that is configured to manage sparse mappings. The MMU processes requests to translate virtual addresses to physical addresses based on page table entries (PTEs) that indicate a sparse status. If the MMU determines that the PTE does not include a mapping from a virtual address to a physical address, then the MMU responds to the request based on the sparse status. If the sparse status is active, then the MMU…

HEURISTICS FOR IMPROVING PERFORMANCE IN A TILE-BASED ARCHITECTURE

Granted: April 9, 2015
Application Number: 20150097845
One embodiment of the present invention includes a technique for processing graphics primitives in a tile-based architecture. The technique includes storing, in a buffer, a first plurality of graphics primitives and a first plurality of state bundles received from a world-space pipeline, and transmitting the first plurality of graphics primitives to a screen-space pipeline for processing while a tiling function is enabled. The technique further includes storing, in the buffer, a second…

SPLIT DRIVER TO CONTROL MULTIPLE GRAPHICS PROCESSORS IN A COMPUTER SYSTEM

Granted: April 9, 2015
Application Number: 20150097844
A computer system includes an operating system having a kernel and configured to launch a plurality of computing processes. The system also includes a plurality of graphics processing units (GPUs), a front-end driver module, and a plurality of back-end driver modules. The GPUs are configured to execute instructions on behalf of the computing processes subject to a GPU service request. The front-end driver module is loaded into the kernel and configured to receive the GPU service request…

MASS CONSERVING EULERIAN FLUID SIMULATION

Granted: April 2, 2015
Application Number: 20150095006
A simulation engine performs a mass-conserving Eulerian fluid simulation by manipulating the distribution of density between nodes associated with the fluid simulation. The simulation engine traces a velocity field upstream to identify the source of mass that currently resides at a given node. The simulation engine then adjusts (i) the density contributions to that source from adjacent nodes and (ii) the density contributions provided by that source to the given node. In doing so, the…

CONTROLLING SHARING OF CONTENT BETWEEN DATA PROCESSING DEVICES

Granted: April 2, 2015
Application Number: 20150095980
A method includes executing an instance of a process on each of a data processing device and one or more another data processing device(s), and authenticating, registering or pairing the one or more another data processing device(s) with the data processing device through a Personal Area Network (PAN) associated with a user of the data processing device and/or a computer network based on an identifier. The method also includes sharing content generated and/or stored in the data…

MATH PROCESSING BY DETECTION OF ELEMENTARY VALUED OPERANDS

Granted: April 2, 2015
Application Number: 20150095394
One embodiment of the present invention includes a method for simplifying arithmetic operations by detecting operands with elementary values such as zero or 1.0. Computer and graphics processing systems perform a great number of multiply-add operations. In a significant portion of these operations, the values of one or more of the operands are zero or 1.0. By detecting the occurrence of these elementary values, math operations can be greatly simplified, for example by eliminating…

INDEPENDENT MEMORY HEAPS FOR SCALABLE LINK INTERFACE TECHNOLOGY

Granted: April 2, 2015
Application Number: 20150091912
A method to render graphics on a computer system having a plurality of graphics-processing units (GPUs) includes the acts of instantiating an independent physical-memory allocator for each GPU, receiving a physical-memory allocation request from a graphics-driver process, and passing the request to one of the independent physical-memory allocators. The method also includes creating a local physical-memory descriptor to reference physical memory on the GPU associated with that…

CONTROL OF WIRELESS BATTERY CHARGING

Granted: March 26, 2015
Application Number: 20150084583
One embodiment provides a method to store electrical energy in an electronic device, which has a central processing unit (CPU) to provide operating-system and application processing in the device. The method includes controlling, from the CPU of the electronic device, communication sent from the device and received at a wireless charger within communication range of the device. The method further includes computing, in the CPU of the electronic device, a set-point condition for wireless…

APPROACH TO REDUCING VOLTAGE NOISE IN A STALLED DATA PIPELINE

Granted: March 26, 2015
Application Number: 20150089284
Computer and graphics processing elements, connected generally in series, form a pipeline. Circuit elements known as di/dt throttles are inserted within the pipeline at strategic locations where the potential exists for data flow to transition from an idle state to a maximum data processing rate. The di/dt throttles gently ramp the rate of data flow from idle to a typical level. Disproportionate current draw and the consequent voltage droop are thus avoided, allowing an increased…

SECURE STORAGE WITH SCSI STORAGE DEVICES

Granted: March 26, 2015
Application Number: 20150089218
A security command protocol provides secure authenticated access to an auxiliary security memory within a SCSI storage device. The auxiliary security memory acts as an authenticated separate secure storage area that stores sensitive data separately from the user data area of the SCSI storage device. The security command protocol is used to access the auxiliary security memory. The security command protocol allows a trusted execution environment to transport sensitive data to and from…

MULTIPLE IMAGE CAPTURE AND PROCESSING

Granted: March 26, 2015
Application Number: 20150085159
Various embodiments relating to image capture with a camera and generation of a processed image having desired image characteristics are provided. In one embodiment, a plurality of images of a scene captured by a camera and associated image metadata are stored. Image metadata associated with each image of the plurality of images includes image characteristics of that image, and each image has a different set of values of image characteristics. A request for an image of the scene that…

METHOD AND SYSTEM FOR STORING CONTACT INFORMATION IN AN IMAGE USING A MOBILE DEVICE

Granted: March 26, 2015
Application Number: 20150085146
Using face detection procedures, embodiments of the present invention can detect the presence of multiple of contacts within an image. Embodiments of the present invention can also associate the faces detected within the image with contacts belonging to a list of contacts stored on a mobile device. Additionally, embodiments of the present invention are operable to store contact information associated with recognizable contacts found into the image. In this fashion, upon rendering an…

MULTIPLE IMAGE CAPTURE AND PROCESSING

Granted: March 26, 2015
Application Number: 20150085145
Various embodiments relating to image capture with a camera and generation of a processed image having desired image characteristics are provided. In one embodiment, a suggested range of values of one or more image characteristics based on preferences of one or more sources is received. Furthermore, settings of the camera are adjusted to capture a plurality of images of a scene. Each image has a different set of values within the suggested range of values of the one or more image…

LOAD/STORE OPERATIONS IN TEXTURE HARDWARE

Granted: March 26, 2015
Application Number: 20150084975
Approaches are disclosed for performing memory access operations in a texture processing pipeline having a first portion configured to process texture memory access operations and a second portion configured to process non-texture memory access operations. A texture unit receives a memory access request. The texture unit determines whether the memory access request includes a texture memory access operation. If the memory access request includes a texture memory access operation, then…

TECHNIQUES FOR INTERLEAVING SURFACES

Granted: March 26, 2015
Application Number: 20150084974
One embodiment sets forth a method for allocating memory to surfaces. A software application specifies surface data, including interleaving state data. Based on the interleaving state data, a surface access unit bloats addressees derived from discrete coordinates associated with the surface, creating a bloated virtual address space with a predictable pattern of addresses that do not correspond to data. Advantageously, by creating predictable regions of addresses that do not correspond to…

SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR RENDERING A SCREEN-ALIGNED RECTANGLE PRIMITIVE

Granted: March 26, 2015
Application Number: 20150084952
A system, method, and computer program product are provided for processing a screen-aligned rectangle within a processing pipeline. The method includes the steps of determining coordinates for a screen-aligned rectangle by projecting a specification line onto a screen-space plane, computing a plane equation associated with the specification line, and rasterizing the screen-aligned rectangle that is within the screen-space plane based on the coordinates and the plane equation. The…