Patents by Inventor Steve Pronovost

Steve Pronovost 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: 8393008
    Abstract: Computer-readable media, computerized methods, and computer systems for managing dynamic allocation of one or more protected memory segments for storing content of secure data are provided. Initially, the secure data is recognized as being carried by a media stream being communicated from a media-reading device. One or more protected target segments and protected target segments are instantiated, where these protected memory segments are protected from illicit access by hardware-based rules. Regions of hardware memory are dynamically allocated to hold these protected memory segments and the secure data is iteratively written thereto. The protected source segments are associating with the media stream based on a license attached thereto, while the protected target segments are associating with presentation devices based on a standard of output protection supported thereby.
    Type: Grant
    Filed: May 21, 2008
    Date of Patent: March 5, 2013
    Assignee: Microsoft Corporation
    Inventors: Donald Scott MacDonald, Steve Pronovost, Patrik Schnell
  • Patent number: 8156565
    Abstract: Computer-readable media, computerized methods, and computer systems for protecting secure data by writing content of the secure data to a protected memory segment are provided. Initially, streaming media is received from a media-reading device and portions of the streaming media are identified as secure data. A data-management process to protect content within the secure data is executed. During execution, the protected memory segment is instantiated, a region of memory is dynamically allocated to hold the protected memory segment, and content of the secure data is written thereto. The protected memory segment is generally a data store that conditionally limits access thereto utilizing hardware-based rules, thereby guarding the content against exposure to unauthorized systems and to attackers. The region of memory may be allocated on CPU hardware, GPU hardware, or a combination thereof. The content may then be encrypted and released for conveyance to one or more presentation devices.
    Type: Grant
    Filed: April 28, 2008
    Date of Patent: April 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Donald Scott MacDonald, Steve Pronovost, David R. Blythe
  • Patent number: 7830387
    Abstract: Systems and methods that independently control divided and/or isolated processing resources of a Graphical Processing Unit (GPU). Synchronization primitives for processing are shared among such resources to process interaction with the engines and their associated different requirements (e.g. different language). Accordingly, independent threads can be created against particular nodes (e.g., a video engine node, 3D engine node), wherein multiple engines can exist under a single node, and independent control can subsequently be exerted upon the plurality of engines associated with the GPU.
    Type: Grant
    Filed: November 7, 2006
    Date of Patent: November 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Steve Pronovost, Anuj B. Gosalia, Ameet Arun Chitre
  • Publication number: 20100122259
    Abstract: Systems and methods are provided for scheduling the processing of a coprocessor whereby applications can submit tasks to a scheduler, and the scheduler can determine how much processing each application is entitled to as well as an order for processing. In connection with this process, tasks that require processing can be stored in physical memory or in virtual memory that is managed by a memory manager. The invention also provides various techniques of determining whether a particular task is ready for processing. A “run list” may be employed to ensure that the coprocessor does not waste time between tasks or after an interruption. The invention also provides techniques for ensuring the security of a computer system, by not allowing applications to modify portions of memory that are integral to maintaining the proper functioning of system operations.
    Type: Application
    Filed: January 15, 2010
    Publication date: May 13, 2010
    Applicant: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Patent number: 7673304
    Abstract: Systems and methods are provided for scheduling the processing of a coprocessor whereby applications can submit tasks to a scheduler, and the scheduler can determine how much processing each application is entitled to as well as an order for processing. In connection with this process, tasks that require processing can be stored in physical memory or in virtual memory that is managed by a memory manager. The invention also provides various techniques of determining whether a particular task is ready for processing. A “run list” may be employed to ensure that the coprocessor does not waste time between tasks or after an interruption. The invention also provides techniques for ensuring the security of a computer system, by not allowing applications to modify portions of memory that are integral to maintaining the proper functioning of system operations.
    Type: Grant
    Filed: January 22, 2004
    Date of Patent: March 2, 2010
    Assignee: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20090316889
    Abstract: Computer-readable media, computerized methods, and computer systems for protecting secure data by writing content of the secure data to a protected memory segment are provided. Initially, streaming media is received from a media-reading device and portions of the streaming media are identified as secure data. A data-management process to protect content within the secure data is executed. During execution, the protected memory segment is instantiated, a region of memory is dynamically allocated to hold the protected memory segment, and content of the secure data is written thereto. The protected memory segment is generally a data store that conditionally limits access thereto utilizing hardware-based rules, thereby guarding the content against exposure to unauthorized systems and to attackers. The region of memory may be allocated on CPU hardware, GPU hardware, or a combination thereof. The content may then be encrypted and released for conveyance to one or more presentation devices.
    Type: Application
    Filed: April 28, 2008
    Publication date: December 24, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: DONALD SCOTT MACDONALD, STEVE PRONOVOST, DAVID R. BLYTHE
  • Publication number: 20090290709
    Abstract: Computer-readable media, computerized methods, and computer systems for managing dynamic allocation of one or more protected memory segments for storing content of secure data are provided. Initially, the secure data is recognized as being carried by a media stream being communicated from a media-reading device. One or more protected target segments and protected target segments are instantiated, where these protected memory segments are protected from illicit access by hardware-based rules. Regions of hardware memory are dynamically allocated to hold these protected memory segments and the secure data is iteratively written thereto. The protected source segments are associating with the media stream based on a license attached thereto, while the protected target segments are associating with presentation devices based on a standard of output protection supported thereby.
    Type: Application
    Filed: May 21, 2008
    Publication date: November 26, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: DONALD SCOTT MACDONALD, STEVE PRONOVOST, PATRIK SCHNELL
  • Publication number: 20090132769
    Abstract: Systems and methods that optimize memory allocation in hierarchical and/or distributed data storage. A memory management component facilitates a compact manner of identifying approximately how often the memory chunk is being used, to promote efficient operation of the system as a whole. Each memory location can be changed based on the corresponding memory access that is determined through tracking of statistical usage counts of memory locations, and a comparison thereof with a threshold value.
    Type: Application
    Filed: November 19, 2007
    Publication date: May 21, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Steve Pronovost, Ketan K. Dalal, Ameet A. Chitre
  • Patent number: 7528838
    Abstract: A video memory manager manages and virtualizes memory so that an application or multiple applications can utilize both system memory and local video memory in processing graphics. The video memory manager allocates memory in either the system memory or the local video memory as appropriate. The video memory manager may also manage the system memory accessible to the graphics processing unit via an aperture of the graphics processing unit. The video memory manager may evict memory from the local video memory as appropriate, thereby freeing a portion of local video memory use by other applications. In this manner, a graphics processing unit and its local video memory may be more readily shared by multiple applications.
    Type: Grant
    Filed: March 25, 2005
    Date of Patent: May 5, 2009
    Assignee: Microsoft Corporation
    Inventors: Anuj Gosalia, Steve Pronovost, Bryan Langley
  • Publication number: 20080301687
    Abstract: Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
    Type: Application
    Filed: July 14, 2008
    Publication date: December 4, 2008
    Applicant: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20080276252
    Abstract: A visualization system may receive first data indicating a first occurrence of a first event. The first event may be associated with a first kernel at a first time. The second event may relate to a processor operation, a memory operation, a disk operation, and the like. The visualization system may receive second data indicating a second occurrence of a second event. The second event may be associated with a second kernel at a second time. The second event may relate to an operation of the second kernel. The first kernel may correspond to a central processing unit, and the second kernel may correspond to a graphic processing unit. The visualization system may provide, based on the first and second data, a human-perceptible representation of the duration between the first time and the second time. The visualization system may provide a timeline that represents the first data and the second data.
    Type: Application
    Filed: May 4, 2007
    Publication date: November 6, 2008
    Applicant: Microsoft Corporation
    Inventors: Steve Pronovost, Ameet Chitre, Matthew David Fisher
  • Patent number: 7444637
    Abstract: Systems and methods for scheduling coprocessing resources in a computing system are provided without redesigning the coprocessor. In various embodiments, a system of preemptive multitasking is provided achieving benefits over cooperative multitasking by any one or more of (1) executing rendering commands sent to the coprocessor in a different order than they were submitted by applications; (2) preempting the coprocessor during scheduling of non-interruptible hardware; (3) allowing user mode drivers to build work items using command buffers in a way that does not compromise security; (4) preparing DMA buffers for execution while the coprocessor is busy executing a previously prepared DMA buffer; (5) resuming interrupted DMA buffers; and (6) reducing the amount of memory needed to run translated DMA buffers.
    Type: Grant
    Filed: February 12, 2004
    Date of Patent: October 28, 2008
    Assignee: Microsoft Corporation
    Inventors: Steve Pronovost, Anuj B. Gosalia, Bryan L. Langley, Hideyuki Nagase
  • Patent number: 7421694
    Abstract: Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
    Type: Grant
    Filed: January 22, 2004
    Date of Patent: September 2, 2008
    Assignee: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20080109810
    Abstract: Systems and methods that independently control divided and/or isolated processing resources of a Graphical Processing Unit (GPU). Synchronization primitives for processing are shared among such resources to process interaction with the engines and their associated different requirements (e.g. different language). Accordingly, independent threads can be created against particular nodes (e.g., a video engine node, 3D engine node), wherein multiple engines can exist under a single node, and independent control can subsequently be exerted upon the plurality of engines associated with the GPU.
    Type: Application
    Filed: November 7, 2006
    Publication date: May 8, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Steve Pronovost, Anuj B. Gosalia, Ameet Arun Chitre
  • Patent number: 6947051
    Abstract: A video memory manager manages and virtualizes memory so that an application or multiple applications can utilize both system memory and local video memory in processing graphics. The video memory manager allocates memory in either the system memory or the local video memory as appropriate. The video memory manager may also manage the system memory accessible to the graphics processing unit via an aperture of the graphics processing unit. The video memory manager may evict memory from the local video memory as appropriate, thereby freeing a portion of local video memory use by other applications. In this manner, a graphics processing unit and its local video memory may be more readily shared by multiple applications.
    Type: Grant
    Filed: December 30, 2003
    Date of Patent: September 20, 2005
    Assignee: Microsoft Corporation
    Inventors: Anuj B. Gossalia, Steve Pronovost, Bryan Langley
  • Publication number: 20050168472
    Abstract: A video memory manager manages and virtualizes memory so that an application or multiple applications can utilize both system memory and local video memory in processing graphics. The video memory manager allocates memory in either the system memory or the local video memory as appropriate. The video memory manager may also manage the system memory accessible to the graphics processing unit via an aperture of the graphics processing unit. The video memory manager may evict memory from the local video memory as appropriate, thereby freeing a portion of local video memory use by other applications. In this manner, a graphics processing unit and its local video memory may be more readily shared by multiple applications.
    Type: Application
    Filed: March 25, 2005
    Publication date: August 4, 2005
    Applicant: Microsoft Corporation
    Inventors: Anuj Gosalia, Steve Pronovost, Bryan Langley
  • Publication number: 20040231000
    Abstract: A video memory manager manages video data in a computer environment having a main processing unit for executing an operating system and an application, a system memory, and a graphics processing unit having an aperture that maps, in a tiled manner, between a portion of system memory and the graphics processing unit. The video memory manager manages memory for video data in a heap located in a private address space of the application. The video memory manager allocates and maintains virtual memory mappings between the allocated virtual memory, the heap, and the aperture such that both the main processing unit and the graphics processing unit can view the data in an untiled manner.
    Type: Application
    Filed: February 13, 2004
    Publication date: November 18, 2004
    Inventors: Anuj B. Gossalia, Steve Pronovost
  • Publication number: 20040187122
    Abstract: Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
    Type: Application
    Filed: January 22, 2004
    Publication date: September 23, 2004
    Applicant: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20040187135
    Abstract: Systems and methods for scheduling coprocessing resources in a computing system are provided without redesigning the coprocessor. In various embodiments, a system of preemptive multitasking is provided achieving benefits over cooperative multitasking by any one or more of (1) executing rendering commands sent to the coprocessor in a different order than they were submitted by applications; (2) preempting the coprocessor during scheduling of non-interruptible hardware; (3) allowing user mode drivers to build work items using command buffers in a way that does not compromise security; (4) preparing DMA buffers for execution while the coprocessor is busy executing a previously prepared DMA buffer; (5) resuming interrupted DMA buffers; and (6) reducing the amount of memory needed to run translated DMA buffers.
    Type: Application
    Filed: February 12, 2004
    Publication date: September 23, 2004
    Applicant: Microsoft Corporation.
    Inventors: Steve Pronovost, Anuj B. Gosalia, Bryan L. Langley, Hideyuki Nagase
  • Publication number: 20040160446
    Abstract: Systems and methods are provided for scheduling the processing of a coprocessor whereby applications can submit tasks to a scheduler, and the scheduler can determine how much processing each application is entitled to as well as an order for processing. In connection with this process, tasks that require processing can be stored in physical memory or in virtual memory that is managed by a memory manager. The invention also provides various techniques of determining whether a particular task is ready for processing. A “run list” may be employed to ensure that the coprocessor does not waste time between tasks or after an interruption. The invention also provides techniques for ensuring the security of a computer system, by not allowing applications to modify portions of memory that are integral to maintaining the proper functioning of system operations.
    Type: Application
    Filed: January 22, 2004
    Publication date: August 19, 2004
    Inventors: Anuj B. Gosalia, Steve Pronovost