Patents by Inventor Jason S. Wohlgemuth
Jason S. Wohlgemuth 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: 11704253Abstract: Performing speculative address translation in processor-based devices is disclosed herein. In one exemplary embodiment, a processor-based device provides a processing element (PE) that defines a speculative translation instruction such as an enqueue instruction for offloading operations to a peripheral device. The speculative translation instruction references a plurality of bytes including one or more virtual memory addresses. After receiving the speculative translation instruction, an instruction decode stage of an execution pipeline circuit of the PE transmits a request for address translation of the virtual memory address to a memory management unit (MMU) of the PE. The MMU then performs speculative address translation of the virtual memory address into a corresponding translated memory address.Type: GrantFiled: February 17, 2021Date of Patent: July 18, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Thomas Philip Speier, Jason S. Wohlgemuth, Artur Klauser, Gagan Gupta, Cody D. Hartwig, Abolade Gbadegesin
-
Publication number: 20220261355Abstract: Performing speculative address translation in processor-based devices is disclosed herein. In one exemplary embodiment, a processor-based device provides a processing element (PE) that defines a speculative translation instruction such as an enqueue instruction for offloading operations to a peripheral device. The speculative translation instruction references a plurality of bytes including one or more virtual memory addresses. After receiving the speculative translation instruction, an instruction decode stage of an execution pipeline circuit of the PE transmits a request for address translation of the virtual memory address to a memory management unit (MMU) of the PE. The MMU then performs speculative address translation of the virtual memory address into a corresponding translated memory address.Type: ApplicationFiled: February 17, 2021Publication date: August 18, 2022Inventors: Thomas Philip SPEIER, Jason S. WOHLGEMUTH, Artur KLAUSER, Gagan GUPTA, Cody D. HARTWIG, Abolade GBADEGESIN
-
Patent number: 11366769Abstract: Enabling peripheral device messaging via application portals in processor-based devices is disclosed herein. In one embodiment, a processor-based device comprises a processing element (PE) including an application portal configured to logically operate as a message store, and that is exposed as an application portal address within an address space visible to a peripheral device that is communicatively coupled to the processor-based device. Upon receiving a message directed to the application portal address from the peripheral device, an application portal control circuit enqueues the message in the application portal. In some embodiments, the PE may further provide a dequeue instruction that may be executed as part of the application, and that results in a top element of the application portal being dequeued and transmitted to the application.Type: GrantFiled: February 25, 2021Date of Patent: June 21, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Artur Klauser, Jason S. Wohlgemuth, Abolade Gbadegesin, Gagan Gupta, Soheil Ebadian, Thomas Philip Speier, Derek Chiou
-
Patent number: 10289853Abstract: Techniques described herein enable the implementation of a secure driver framework. In one example, a method includes managing an unsecure operating system execution environment comprising a first user mode and a first kernel mode. The method can also include managing a secure execution environment comprising a second user mode and a second kernel mode, and executing a secure driver within the second user mode of the secure execution environment in response to a system call from an unsecure driver in the first kernel mode or the first user mode, wherein the secure driver enables the unsecure driver to communicate with a secure device. Furthermore, the method can include providing one or more system services of the second kernel mode to the secure driver.Type: GrantFiled: March 31, 2016Date of Patent: May 14, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Minsang Kim, Kumar Rajeev, Jason S. Wohlgemuth, Aacer H. Daken, Peter Wieland
-
Patent number: 10102017Abstract: A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.Type: GrantFiled: February 19, 2013Date of Patent: October 16, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Shuvabrata Ganguly, Jason S. Wohlgemuth, Allen Marshall
-
Publication number: 20180113764Abstract: A computing device runs a hypervisor that manages a watchdog timer, referred to as a hypervisor watchdog timer, for each operating system in each partition. Each hypervisor watchdog timer is re-armed at various intervals by the operating system running in the associated partition. In response to a hypervisor watchdog timer expiring, the watchdog timer resets the operating system in the associated partition. Optionally, after a threshold amount of time elapses without being re-armed, the hypervisor watchdog timer issues a non-maskable interrupt (NMI) to the operating system in the associated partition to allow the operating system to store crash data. Operation of the hypervisor watchdog timers is paused when the computing device enters a low power mode and resumes when the computing device exits the low power mode, removing any need to re-arm the hypervisor watchdog timers while the computing device is in the low power mode.Type: ApplicationFiled: October 24, 2016Publication date: April 26, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Aditya Bhandari, Kenneth D. Johnson, Cody Dean Hartwig, Bruce J. Sherwin, JR., Jason S. Wohlgemuth
-
Publication number: 20170286701Abstract: Techniques described herein enable the implementation of a secure driver framework. In one example, a method includes managing an unsecure operating system execution environment comprising a first user mode and a first kernel mode. The method can also include managing a secure execution environment comprising a second user mode and a second kernel mode, and executing a secure driver within the second user mode of the secure execution environment in response to a system call from an unsecure driver in the first kernel mode or the first user mode, wherein the secure driver enables the unsecure driver to communicate with a secure device. Furthermore, the method can include providing one or more system services of the second kernel mode to the secure driver.Type: ApplicationFiled: March 31, 2016Publication date: October 5, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Minsang Kim, Kumar Rajeev, Jason S. Wohlgemuth, Aacer H. Daken, Peter Wieland
-
Patent number: 9424092Abstract: Heterogeneous thread scheduling techniques are described in which a processing workload is distributed to heterogeneous processing cores of a processing system. The heterogeneous thread scheduling may be implemented based upon a combination of periodic assessments of system-wide power management considerations used to control states of the processing cores and higher frequency thread-by-thread placement decisions that are made in accordance with thread specific policies. In one or more implementations, a system workload context is periodically analyzed for a processing system having heterogeneous cores including power efficient cores and performance oriented cores. Based on the periodic analysis, cores states are set for some of the heterogeneous cores to control activation of the power efficient cores and performance oriented cores for thread scheduling.Type: GrantFiled: September 26, 2014Date of Patent: August 23, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Neeraj Kumar Singh, Tristan A. Brown, Jeremiah S. Samli, Jason S. Wohlgemuth, Youssef Maged Barakat
-
Publication number: 20160092274Abstract: Heterogeneous thread scheduling techniques are described in which a processing workload is distributed to heterogeneous processing cores of a processing system. The heterogeneous thread scheduling may be implemented based upon a combination of periodic assessments of system-wide power management considerations used to control states of the processing cores and higher frequency thread-by-thread placement decisions that are made in accordance with thread specific policies. In one or more implementations, a system workload context is periodically analyzed for a processing system having heterogeneous cores including power efficient cores and performance oriented cores. Based on the periodic analysis, cores states are set for some of the heterogeneous cores to control activation of the power efficient cores and performance oriented cores for thread scheduling.Type: ApplicationFiled: September 26, 2014Publication date: March 31, 2016Inventors: Neeraj Kumar Singh, Tristan A. Brown, Jeremiah S. Samli, Jason S. Wohlgemuth, Youssef Maged Barakat
-
Patent number: 8635057Abstract: A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.Type: GrantFiled: March 30, 2009Date of Patent: January 21, 2014Assignee: Microsoft CorporationInventors: Shuvabrata Ganguly, Jason S. Wohlgemuth, Allen Marshall
-
Patent number: 8392917Abstract: A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.Type: GrantFiled: March 30, 2009Date of Patent: March 5, 2013Assignee: Microsoft CorporationInventors: Shuvabrata Ganguly, Jason S. Wohlgemuth, Allen Marshall
-
Publication number: 20100251235Abstract: A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.Type: ApplicationFiled: March 30, 2009Publication date: September 30, 2010Applicant: Microsoft CorporationInventors: Shuvabrata Ganguly, Jason S. Wohlgemuth, Allen Marshall
-
Publication number: 20100250230Abstract: A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.Type: ApplicationFiled: March 30, 2009Publication date: September 30, 2010Applicant: Microsoft CorporationInventors: Shuvabrata Ganguly, Jason S. Wohlgemuth, Allen Marshall