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: 8393008Abstract: 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: GrantFiled: May 21, 2008Date of Patent: March 5, 2013Assignee: Microsoft CorporationInventors: Donald Scott MacDonald, Steve Pronovost, Patrik Schnell
-
Patent number: 8156565Abstract: 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: GrantFiled: April 28, 2008Date of Patent: April 10, 2012Assignee: Microsoft CorporationInventors: Donald Scott MacDonald, Steve Pronovost, David R. Blythe
-
Patent number: 7830387Abstract: 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: GrantFiled: November 7, 2006Date of Patent: November 9, 2010Assignee: Microsoft CorporationInventors: Steve Pronovost, Anuj B. Gosalia, Ameet Arun Chitre
-
Publication number: 20100122259Abstract: 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: ApplicationFiled: January 15, 2010Publication date: May 13, 2010Applicant: Microsoft CorporationInventors: Anuj B. Gosalia, Steve Pronovost
-
Patent number: 7673304Abstract: 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: GrantFiled: January 22, 2004Date of Patent: March 2, 2010Assignee: Microsoft CorporationInventors: Anuj B. Gosalia, Steve Pronovost
-
Publication number: 20090316889Abstract: 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: ApplicationFiled: April 28, 2008Publication date: December 24, 2009Applicant: MICROSOFT CORPORATIONInventors: DONALD SCOTT MACDONALD, STEVE PRONOVOST, DAVID R. BLYTHE
-
Publication number: 20090290709Abstract: 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: ApplicationFiled: May 21, 2008Publication date: November 26, 2009Applicant: MICROSOFT CORPORATIONInventors: DONALD SCOTT MACDONALD, STEVE PRONOVOST, PATRIK SCHNELL
-
Publication number: 20090132769Abstract: 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: ApplicationFiled: November 19, 2007Publication date: May 21, 2009Applicant: MICROSOFT CORPORATIONInventors: Steve Pronovost, Ketan K. Dalal, Ameet A. Chitre
-
Patent number: 7528838Abstract: 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: GrantFiled: March 25, 2005Date of Patent: May 5, 2009Assignee: Microsoft CorporationInventors: Anuj Gosalia, Steve Pronovost, Bryan Langley
-
Publication number: 20080301687Abstract: 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: ApplicationFiled: July 14, 2008Publication date: December 4, 2008Applicant: Microsoft CorporationInventors: Anuj B. Gosalia, Steve Pronovost
-
Publication number: 20080276252Abstract: 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: ApplicationFiled: May 4, 2007Publication date: November 6, 2008Applicant: Microsoft CorporationInventors: Steve Pronovost, Ameet Chitre, Matthew David Fisher
-
Patent number: 7444637Abstract: 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: GrantFiled: February 12, 2004Date of Patent: October 28, 2008Assignee: Microsoft CorporationInventors: Steve Pronovost, Anuj B. Gosalia, Bryan L. Langley, Hideyuki Nagase
-
Patent number: 7421694Abstract: 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: GrantFiled: January 22, 2004Date of Patent: September 2, 2008Assignee: Microsoft CorporationInventors: Anuj B. Gosalia, Steve Pronovost
-
Publication number: 20080109810Abstract: 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: ApplicationFiled: November 7, 2006Publication date: May 8, 2008Applicant: MICROSOFT CORPORATIONInventors: Steve Pronovost, Anuj B. Gosalia, Ameet Arun Chitre
-
Patent number: 6947051Abstract: 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: GrantFiled: December 30, 2003Date of Patent: September 20, 2005Assignee: Microsoft CorporationInventors: Anuj B. Gossalia, Steve Pronovost, Bryan Langley
-
Publication number: 20050168472Abstract: 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: ApplicationFiled: March 25, 2005Publication date: August 4, 2005Applicant: Microsoft CorporationInventors: Anuj Gosalia, Steve Pronovost, Bryan Langley
-
Publication number: 20040231000Abstract: 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: ApplicationFiled: February 13, 2004Publication date: November 18, 2004Inventors: Anuj B. Gossalia, Steve Pronovost
-
Publication number: 20040187122Abstract: 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: ApplicationFiled: January 22, 2004Publication date: September 23, 2004Applicant: Microsoft CorporationInventors: Anuj B. Gosalia, Steve Pronovost
-
Publication number: 20040187135Abstract: 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: ApplicationFiled: February 12, 2004Publication date: September 23, 2004Applicant: Microsoft Corporation.Inventors: Steve Pronovost, Anuj B. Gosalia, Bryan L. Langley, Hideyuki Nagase
-
Publication number: 20040160446Abstract: 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: ApplicationFiled: January 22, 2004Publication date: August 19, 2004Inventors: Anuj B. Gosalia, Steve Pronovost