Patents by Inventor Michael Brian Cox

Michael Brian Cox 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: 9741098
    Abstract: A digital camera includes an image optimization engine configured to generate an optimized image based on a raw image captured by the digital camera. The image optimization engine implements one or more machine learning engines in order to select rendering algorithms and rendering algorithm arguments that may then be used to render the raw image.
    Type: Grant
    Filed: October 12, 2012
    Date of Patent: August 22, 2017
    Assignee: NVIDIA Corporation
    Inventor: Michael Brian Cox
  • Patent number: 9158896
    Abstract: A method, system on a chip, and computer system for generating more robust keys which utilize data occupying relatively small die areas is disclosed. Embodiments provide a convenient and effective mechanism for generating a key for use in securing data on a portable electronic device, where the key is generated from repurposed data and a relatively small amount. A multi-stage encryption algorithm may be performed to generate the key, where the first stage may include encrypting the secure data, and the second stage may include encrypting the result of a logical operation on the encrypted secure data with a unique identifier of the portable electronic device. A secret key may be used as the encryption key for each stage. The result of the second encryption stage may include the generated key which may be used to perform subsequent operations on the portable electronic device.
    Type: Grant
    Filed: February 11, 2008
    Date of Patent: October 13, 2015
    Assignee: NVIDIA CORPORATION
    Inventors: Michael Brian Cox, Phillip Norman Smith, Stephen Donald Lew
  • Patent number: 9032101
    Abstract: A method for providing access to hardware devices by a processor without causing conflicts with other processors included in a computer system. The method includes receiving a first address map from a first processor and a second address map from a second processor, where each address map includes memory-mapped input/output (I/O) apertures for a set of hardware devices that the processor is configured to access. The method further includes generating a global address map by combining the first address map and the second address map, receiving a first access request from the first processor and routing the first access request to a hardware device based on an address mapping included in the global address map. Advantageously, heterogeneous processors included in multi-processor system can access any hardware device included in the computer system, without modifying the processors, one or more operating systems executed by each processor, or the hardware devices.
    Type: Grant
    Filed: December 10, 2008
    Date of Patent: May 12, 2015
    Assignee: NVIDIA Corporation
    Inventors: Michael Brian Cox, Brad W. Simeral
  • Patent number: 9015446
    Abstract: A method for providing a first processor access to a memory associated with a second processor. The method includes receiving a first address map from the first processor that includes an MMIO aperture for a NUMA device, receiving a second address map from a second processor that includes MMIO apertures for hardware devices that the second processor is configured to access, and generating a global address map by combining the first and second address maps. The method further includes receiving an access request transmitted from the first processor to the NUMA device, generating a memory access request based on the first access request and a translation table that maps a first address associated with the first access request into a second address associated with the memory associated with the second processor, and routing the memory access request to the memory based on the global address map.
    Type: Grant
    Filed: December 10, 2008
    Date of Patent: April 21, 2015
    Assignee: NVIDIA Corporation
    Inventors: Michael Brian Cox, Brad W. Simeral
  • Patent number: 8943584
    Abstract: A method for providing an operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an address space associated with either the software virtualized device or the hardware virtualized device into an address space associated with each operating system included in the corresponding permission list.
    Type: Grant
    Filed: August 6, 2012
    Date of Patent: January 27, 2015
    Assignee: NVIDIA Corporation
    Inventors: Brad W. Simeral, Michael Brian Cox
  • Patent number: 8782349
    Abstract: Techniques are disclosed for maintaining cache coherency across a serial interface bus such as a Peripheral Component Interconnect Express (PCIe) bus. The techniques include generating a snoop request (SNP) to determine whether first data stored in a local memory is coherent relative to second data stored in a data cache, the snoop request including destination information that identifies the data cache on the serial interface bus and causing the snoop request to be transmitted over the serial interface bus to a second processor. The techniques further include extracting a cache line address from the snoop request, determining whether the second data is coherent, generating a complete message (CPL) indicating that the first data is coherent with the second data, and causing the complete message to be transmitted over the bus to the first processor. The snoop request and complete messages may be vendor defined messages.
    Type: Grant
    Filed: July 25, 2012
    Date of Patent: July 15, 2014
    Assignee: NVIDIA Corporation
    Inventors: Brian Keith Langendorf, David B. Glasco, Michael Brian Cox, Jonah M. Alben
  • Publication number: 20140152848
    Abstract: A camera tuning engine within a digital camera includes a machine learning engine that generates a configuration file for the digital camera based on raw images captured by the digital camera. The digital camera implements a set of rendering algorithms that render trial images from the raw images based on parameters included in the configuration file. A training engine within the camera tuning engine then compares the trial images to target images provided from an external source. Based on differences between the trial images and the target images, the training engine adjusts weight values within the machine learning engine. By performing this process iteratively, the training engine trains the machine learning engine to generate a configuration file that may be used by the digital camera to render images that are similar to the target images.
    Type: Application
    Filed: December 4, 2012
    Publication date: June 5, 2014
    Applicant: NVIDIA CORPORATION
    Inventor: Michael Brian COX
  • Publication number: 20140104450
    Abstract: A digital camera includes an image optimization engine configured to generate an optimized image based on a raw image captured by the digital camera. The image optimization engine implements one or more machine learning engines in order to select rendering algorithms and rendering algorithm arguments that may then be used to render the raw image.
    Type: Application
    Filed: October 12, 2012
    Publication date: April 17, 2014
    Applicant: NVIDIA CORPORATION
    Inventor: Michael Brian COX
  • Patent number: 8645634
    Abstract: One embodiment of the present invention sets forth a technique for reducing the copying of data between memory allocated to a primary processor and a coprocessor is disclosed. The system memory is aliased as device memory to allow the coprocessor and the primary processor to share the same portion of memory. Either device may write and/or read the shared portion of memory to transfer data between the devices rather than copying data from a portion of memory that is only accessible by one device to a different portion of memory that is only accessible by the other device. Removal of the need for explicit primary processor memory to coprocessor memory and coprocessor memory to primary processor memory copies improves the performance of the application and reduces physical memory requirements for the application since one portion of memory is shared rather than allocating separate private portions of memory.
    Type: Grant
    Filed: January 16, 2009
    Date of Patent: February 4, 2014
    Assignee: NVIDIA Corporation
    Inventors: Michael Brian Cox, Nicholas Patrick Wilt, Richard Hough
  • Patent number: 8473750
    Abstract: A bridge is disclosed having a security engine to protect digital content at insecure interfaces of the bridge. The bridge permits cryptographic services to he offloaded from a central processing unit to the bridge. The bridge receives a clear text input from a central processing unit. The bridge encrypts the clear text input as cipher text for storage in a memory. The bridge provided the cipher text to a graphics processing unit.
    Type: Grant
    Filed: December 14, 2005
    Date of Patent: June 25, 2013
    Assignee: Nvidia Corporation
    Inventors: Michael Brian Cox, Henry Packard Moreton, Brian Keith Langendorf, David G. Reed
  • Publication number: 20120304285
    Abstract: A method for providing an operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an address space associated with either the software virtualized device or the hardware virtualized device into an address space associated with each operating system included in the corresponding permission list.
    Type: Application
    Filed: August 6, 2012
    Publication date: November 29, 2012
    Inventors: Brad W. Simeral, Michael Brian Cox
  • Publication number: 20120290796
    Abstract: Techniques are disclosed for maintaining cache coherency across a serial interface bus such as a Peripheral Component Interconnect Express (PCIe) bus. The techniques include generating a snoop request (SNP) to determine whether first data stored in a local memory is coherent relative to second data stored in a data cache, the snoop request including destination information that identifies the data cache on the serial interface bus and causing the snoop request to be transmitted over the serial interface bus to a second processor. The techniques further include extracting a cache line address from the snoop request, determining whether the second data is coherent, generating a complete message (CPL) indicating that the first data is coherent with the second data, and causing the complete message to be transmitted over the bus to the first processor. The snoop request and complete messages may be vendor defined messages.
    Type: Application
    Filed: July 25, 2012
    Publication date: November 15, 2012
    Inventors: Brian Keith LANGENDORF, David B. GLASCO, Michael Brian COX, Jonah M. ALBEN
  • Patent number: 8239938
    Abstract: A method for providing an operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an address space associated with either the software virtualized device or the hardware virtualized device into an address space associated with each operating system included in the corresponding permission list.
    Type: Grant
    Filed: December 8, 2008
    Date of Patent: August 7, 2012
    Assignee: NVIDIA Corporation
    Inventors: Brad W. Simeral, Michael Brian Cox
  • Patent number: 8234458
    Abstract: A method and system for maintaining cache coherency across a serial interface bus such as a Peripheral Component Interconnect Express (PCIe) bus. The method includes generating a snoop request (SNP) to determine whether first data stored in a local memory is coherent relative to second data stored in a data cache, the snoop request including destination information that identifies the data cache on the serial interface bus, and causing the snoop request to be transmitted over the serial interface bus to a second processor. The method further includes extracting a cache line address from the snoop request, determining whether the second data is coherent, generating a complete message (CPL) indicating that the first data is coherent with the second data, and causing the complete message to be transmitted over the bus to the first processor. The snoop request and complete messages may be vendor defined messages.
    Type: Grant
    Filed: December 9, 2008
    Date of Patent: July 31, 2012
    Assignee: NVIDIA Corporation
    Inventors: Brian Keith Langendorf, David B. Glasco, Michael Brian Cox, Jonah M. Alben
  • Patent number: 7920701
    Abstract: A digital content system is disclosed. A security engine disposed in a bridge provides cryptographic services. Clear text digital data received from a central processing unit is encrypted and transferred via the bridge over unsecured data paths as cipher text.
    Type: Grant
    Filed: December 14, 2005
    Date of Patent: April 5, 2011
    Assignee: Nvidia Corporation
    Inventors: Michael Brian Cox, Henry Packard Moreton, Brian Keith Langendorf, David G. Reed
  • Patent number: 7755624
    Abstract: A processor generates Z-cull information for tiles and groups of tiles. In one embodiment the processor includes an on-chip cache to coalesce Z information for tiles to identify occluded tiles. In a coprocessor embodiment, the processor provides Z-culling information to a graphics processor.
    Type: Grant
    Filed: November 7, 2008
    Date of Patent: July 13, 2010
    Assignee: Nvidia Corporation
    Inventors: Ziyad S. Hakura, Michael Brian Cox, Brian K. Langendorf, Brad W. Simeral
  • Publication number: 20100146222
    Abstract: A method for providing a first processor access to a memory associated with a second processor. The method includes receiving a first address map from the first processor that includes an MMIO aperture for a NUMA device, receiving a second address map from a second processor that includes MMIO apertures for hardware devices that the second processor is configured to access, and generating a global address map by combining the first and second address maps. The method further includes receiving an access request transmitted from the first processor to the NUMA device, generating a memory access request based on the first access request and a translation table that maps a first address associated with the first access request into a second address associated with the memory associated with the second processor, and routing the memory access request to the memory based on the global address map.
    Type: Application
    Filed: December 10, 2008
    Publication date: June 10, 2010
    Inventors: Michael Brian COX, Brad W. SIMERAL
  • Publication number: 20100146620
    Abstract: A method for providing an operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an address space associated with either the software virtualized device or the hardware virtualized device into an address space associated with each operating system included in the corresponding permission list.
    Type: Application
    Filed: December 8, 2008
    Publication date: June 10, 2010
    Inventors: Brad W. Simeral, Michael Brian Cox
  • Publication number: 20100146218
    Abstract: A method for executing processing operations using data stored in a memory. The method includes generating a snoop request configured to determine whether first data stored in a local memory is coherent relative to second data stored in a data cache, the snoop request including destination information that identifies the data cache on a bus, and a cache line address identifying where in the data cache the second data is located. The method further includes causing the snoop request to be transmitted over the bus to the second processor, extracting the cache line address from the snoop request, determining whether the second data is coherent, generating a complete message that includes completion information indicating that the first data is coherent with the second data, and causing the complete message to be transmitted over the bus to the first processor.
    Type: Application
    Filed: December 9, 2008
    Publication date: June 10, 2010
    Inventors: Brian Keith Langendorf, David B. Glasco, Michael Brian Cox, Jonah M. Alben
  • Patent number: 7650645
    Abstract: Circuits, methods, and apparatus that provide for trusted transactions between a device and system memory. In one exemplary embodiment of the present invention, a host processor asserts and de-asserts trust over a virtual wire. The device accesses certain data if the host processor provides a trusted instruction for it to do so. Once the device attempts to access this certain data, or perform a certain type of data access, a memory controller allows the access on the condition that the host processor previously made the trusted instruction. The device then accepts data if trust is asserted during the data transfer.
    Type: Grant
    Filed: May 20, 2005
    Date of Patent: January 19, 2010
    Assignee: NVIDIA Corporation
    Inventors: Brian Keith Langendorf, Michael Brian Cox