Patents by Inventor Jacob Oshins

Jacob Oshins 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).

  • Publication number: 20080098410
    Abstract: The present invention provides a unified layer for Plug and Play (PnP) components and power management components while relieving device drivers from system-level complexities associated with implementing PnP and/or power management functionality. The layer operates at a level between low-level device drivers and more complex operating system tasks. The subject invention simplifies designing device drivers having proper power management support by creating an infrastructure that allows a device driver to operate within a driver framework or model and without having to process Plug-and-Play or Power Management I/O Request Packets (IRPs) directly.
    Type: Application
    Filed: December 20, 2007
    Publication date: April 24, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Jacob Oshins, Doron Holan
  • Patent number: 7363407
    Abstract: The present invention relates to a system and methodology to facilitate negotiation, assignment, and management of interrupt resources in a flexible and dynamic manner. An interrupt arbitration system is provided to process at least one request associated with an interrupt resource, wherein the request includes at least two dimensions related to an interrupt and an interrupt service component. An arbiter processes the request and returns a subset of interrupt resource ranges in view of available system resources. This multi-dimensional mapping of resources enables coordination across resource pools, processors, buses, and/or other components while mitigating possible run-time problems attributed to one-dimensional systems that may find that suitable resources are unavailable.
    Type: Grant
    Filed: September 29, 2003
    Date of Patent: April 22, 2008
    Assignee: Microsoft Corporation
    Inventor: Jacob Oshins
  • Publication number: 20080082975
    Abstract: Mechanisms are disclosed herein that manage operations in virtual machine environments. A first partition can have a proxy driver object corresponding to a driver object in a second partition. The driver object can control a physical device, but because of the proxy driver object, the first partition can retain some measure of control over the physical device. The driver object can be surrounded by a first filter object beneath it, and a second filter object above it. The first filter object can provide interfaces to the driver object so that the driver object can perform various bus-related functionalities; and, the second filter object can receive redirected instructions from the first partition and provide them to the driver object, and intercept any instructions originating from within the second partition, such that if these instructions are inconsistent with policies set in the first partition, they can be manipulated.
    Type: Application
    Filed: September 29, 2006
    Publication date: April 3, 2008
    Applicant: Microsoft Corporation
    Inventors: Adrian J. Oney, Andrew John Thornton, Jacob Oshins
  • Patent number: 7334217
    Abstract: A system and method for an ejection failure mechanism is provided. The system receives a request to eject an ejectable resource, and, provides information associated with a failure of the ejection of the ejectable resource, if ejection of the ejectable resource is unsuccessful. The system thus provides a deterministic mechanism through which information associated with failure of the ejection of an ejectable resource can be communicated. As such, an initiator of the request to eject can receive information associated with a cause of the ejection failure.
    Type: Grant
    Filed: April 2, 2003
    Date of Patent: February 19, 2008
    Assignee: Microsoft Corporation
    Inventors: Adam B. Glass, Jacob Oshins
  • Patent number: 7328279
    Abstract: A system for adding multiple GPE blocks (in addition to the system/root GPE block device) to a computing system by creating a device entry in the ACPI namespace, and using a _CRS object to describe the system resources consumed by the device is described. The GPE block device may then access associated hardware devices through a well known mechanism (either I/O or Memory Mapped accesses). By creating additional GPE block devices within the ACPI namespace, general purpose events may be delivered using more traditional hardware interrupt mechanisms than with existing systems (e.g., wiring GPE blocks together). Moreover, by putting GPE block devices in the ACPI namespace, hardware components having hardware registers may be “hot plugged” to the computing system.
    Type: Grant
    Filed: April 4, 2005
    Date of Patent: February 5, 2008
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Stephane G. Plante, Tony D Pierce
  • Patent number: 7313708
    Abstract: The present invention provides a unified layer for Plug and Play (PnP) components and power management components while relieving device drivers from system-level complexities associated with implementing PnP and/or power management functionality. The layer operates at a level between low-level device drivers and more complex operating system tasks. The subject invention simplifies designing device drivers having proper power management support by creating an infrastructure that allows a device driver to operate within a driver framework or model and without having to process Plug-and-Play or Power Management I/O Request Packets (IRPs) directly.
    Type: Grant
    Filed: April 28, 2004
    Date of Patent: December 25, 2007
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Doron Holan
  • Patent number: 7308586
    Abstract: The present invention provides a unified layer for Plug and Play (PnP) components and power management components while relieving device drivers from system-level complexities associated with implementing PnP and/or power management functionality. The layer operates at a level between low-level device drivers and more complex operating system tasks. The subject invention simplifies designing device drivers having proper power management support by creating an infrastructure that allows a device driver to operate within a driver framework or model and without having to process Plug-and-Play or Power Management I/O Request Packets (IRPs) directly.
    Type: Grant
    Filed: April 28, 2004
    Date of Patent: December 11, 2007
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Doron Holan
  • Patent number: 7284083
    Abstract: A method and system that enables customized computer machines to be more readily developed by removing the function of resource translation out of the hardware abstraction layer (HAL). A machine manufacturer describes a machine in firmware, such as accordance with the Advanced Configuration and Power Interface (ACPI) specification, using ACPI machine language (AML). Operating system components such as a Plug and Play (PnP) manager in the kernel, in conjunction with an ACPI driver, interpret the description information and locate resources (bus bridges) for which translation is needed. For any arbitrary bus architecture or CPU to PCI bridge implementation that can be expressed, e.g., in ACPI firmware, the invention provides a translator external to the HAL. In one implementation, a PnP driver communicates with the ACPI driver and various drivers in driver stacks via I/O request packets (IRPs) to look for resource translators.
    Type: Grant
    Filed: April 25, 2005
    Date of Patent: October 16, 2007
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Stephane G. Plante, Andrew J. Thornton
  • Publication number: 20070204265
    Abstract: A computing device has first and second virtual machines (VMs) and a resource assigned to the first VM. Each access request for the resource is forwarded thereto until the first VM is to be saved or migrated. Thereafter, each access request is forwarded to a holding queue. When the resource has acted upon all access requests forwarded thereto, the resource is reassigned to the second VM, and each access request at the holding queue is forwarded to the second VM and then the resource. Thus, all access requests for the resource are acted upon by the resource even after the resource is removed from the first VM and assigned to the second VM, and the save or migrate of the first VM can thereafter be completed.
    Type: Application
    Filed: February 28, 2006
    Publication date: August 30, 2007
    Applicant: Microsoft Corporation
    Inventor: Jacob Oshins
  • Publication number: 20070198243
    Abstract: A computing device has a hardware device employed to provide a hardware service to the computing device and a plurality of virtual machines including a host virtual machine (VM-H) to which the hardware device is assigned, and a client virtual machine (VM-C) that can consume the hardware service by way of the VM-H. The VM-C includes an emulating stack and an enlightened stack. The emulating stack interfaces an application requesting the hardware service with a trap in a virtualization layer of the computing device which re-directs the request to the VM-H. The enlightened stack interfaces the application with the VM-H and bypasses the virtualization layer. The emulating stack includes a shunt driver that shunts to the enlightened stack each request from the application directed to the emulating stack.
    Type: Application
    Filed: February 8, 2006
    Publication date: August 23, 2007
    Applicant: Microsoft Corporation
    Inventors: Benjamin Leis, Jacob Oshins, Parag Chakraborty
  • Publication number: 20070198976
    Abstract: A computing device has a virtual machine bus (VM bus) operable in a pipe mode where all incoming data written to the VM bus from a source is passed through to be read from the VM bus by a sink, and a plurality of instantiated virtual machines (VMs). Each VM hosts an instance of an operating system upon an application may be instantiated. Each VM includes a computing object for issuing a call to a component object of another VM, and a VM bus system object for receiving the call and communicating same to a VM bus system object of the another VM by way of the VM bus. The VM bus system object is also for receiving the call from the VM bus system object of the another VM by way of the VM bus and for communicating the received call to the computing object.
    Type: Application
    Filed: February 23, 2006
    Publication date: August 23, 2007
    Applicant: Microsoft Corporation
    Inventors: Benjamin Leis, Jacob Oshins, Christopher Eck
  • Patent number: 7155379
    Abstract: A component, system and method for simulation of a PCI device's memory-mapped I/O register(s) are provided. The PCI simulation component has an initialization component, a configuration space simulator and a memory-mapped I/O space simulator. The initialization component can claim an amount of memory by modifying the amount of memory that an operating system has available to it. The initialization component further identifies to the operating system that at least some of the claimed memory resides on a PCI bus. The configuration space simulator causes the operating system to accept that the simulated PCI device is present in the system. The memory-mapped I/O space simulator simulates device and can comprise can comprise a thread that monitors the simulated memory-mapped I/O registers for a change in order to simulate behavior of the simulated PCI device.
    Type: Grant
    Filed: February 25, 2003
    Date of Patent: December 26, 2006
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Brandon Allsop
  • Publication number: 20060259731
    Abstract: A method and system are provided for integrating partitions in a virtual machine environment. Specifically, a partition bus is provided, where the partition bus operatively connects partitions in such a way that it functions as a data transport mechanism allowing for data transfer and device sharing between partitions. The partition bus relies on virtualizing software in order to establish itself and to establish channels of communication between partitions and to inject interrupts to partitions where it is appropriate to do so. Furthermore, the partition bus employs such mechanisms ring buffers, transfer pages, and memory map changes to transfer information (requests and data). Furthermore, it uses policy agents to decide when information should be transferred or when devices should be shared among partitions. Lastly, it employs various mechanisms to ensure smooth integration between partitions, which includes remote services that have proxy devices and device versioning functionalities.
    Type: Application
    Filed: May 12, 2005
    Publication date: November 16, 2006
    Applicant: Microsoft Corporation
    Inventors: Jacob Oshins, Peter Johnston, Eric Traut, Nathan Lewis, Jeffrey Kinsey
  • Publication number: 20060242229
    Abstract: A method of managing resources in a host computer includes generating a virtual service provider in two different computer partitions and linking them in a serial manner. The virtual service providers are associated with a computer resource. Virtual service clients in different partitions may use the virtual service provider software to access the related computer resources. The virtual service providers provide a transparent interface to the associated hardware. Virtual service clients can use the combination of series computer resource functions or can access the a lesser number of the series connected virtual service providers. Fault tolerance can be built into the scheme using multiple virtual service providers located in different partitions accessible to virtual service clients using a failover control technique.
    Type: Application
    Filed: April 21, 2005
    Publication date: October 26, 2006
    Applicant: Microsoft Corporation
    Inventors: Jeffrey Kinsey, Pankaj Garg, Eric Traut, Jacob Oshins
  • Publication number: 20060241930
    Abstract: A component, system and method for simulation of a PCI device's memory-mapped I/O register(s) are provided. The PCI simulation component has an initialization component, a configuration space simulator and a memory-mapped I/O space simulator. The initialization component can claim an amount of memory by modifying the amount of memory that an operating system has available to it. The initialization component further identifies to the operating system that at least some of the claimed memory resides on a PCI bus. The configuration space simulator causes the operating system to accept that the simulated PCI device is present in the system. The memory-mapped I/O space simulator simulates behavior of a simulated PCI device and can comprise can comprise a thread that monitors the simulated memory-mapped I/O registers for a change in order to simulate behavior of the simulated PCI device.
    Type: Application
    Filed: June 28, 2006
    Publication date: October 26, 2006
    Applicant: MICROSOFT CORPORATION
    Inventors: Jacob Oshins, Brandon Allsop
  • Publication number: 20060212727
    Abstract: Transitioning to a suspend to RAM sleeping state while also protecting against power losses while sleeping is provided. System state context data is saved to non-volatile storage and components in the computer system prepare to transition to a suspend to disc sleeping. A transition to the suspend to RAM sleeping state is then effected. Alternatively, after the system context is saved and the components are prepared to transition, the system may wake to a working state. The components may be directed to prepare for transitioning to a suspend to RAM sleeping state, and then the BIOS may be directed to execute the transition. In either embodiment, if power to the system is lost while the system is in the suspend to RAM system state, then the system may resume to a working state by reading the context file stored to non-volatile storage.
    Type: Application
    Filed: March 16, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventors: Nicholas Judge, Jacob Oshins, Stephane Plante, Andrew Ritz
  • Publication number: 20060161821
    Abstract: The subject invention relates to systems and methods for automatic recovery from errors in a computing environment. A system is provided to facilitate failure recovery in the computing system. The system includes at least one driver component that enumerates at least one layer of a driver stack. A module associated with the driver component requests re-enumeration of the driver stack upon detection of an error in the computing system. When an error is detected by a driver or operating system component, a protocol can be established whereby a new copy of the driver's stack or system resources is re-enumerated in parallel to existing resources that may be in an unknown or error state. The new copy of the stack may allow the driver to become operational in lieu of the previous stack which can be reclaimed for other system uses over time.
    Type: Application
    Filed: January 14, 2005
    Publication date: July 20, 2006
    Applicant: Microsoft Corporation
    Inventors: Jacob Oshins, Doron Holan
  • Patent number: 7058824
    Abstract: A method and system for adaptively throttling a computer is provided. Prior CPU utilization is calculated when a CPU enters an idle state. If the prior CPU utilization warrants a change in the CPU performance level, an appropriate CPU performance level is calculated. Policies, including thermal policies and battery charge policies, may be applied to increase or decrease the appropriate CPU performance level. If prior CPU utilization and/or policies dictate a different CPU performance level, the CPU performance level is changed.
    Type: Grant
    Filed: June 15, 2001
    Date of Patent: June 6, 2006
    Assignee: Microsoft Corporation
    Inventors: Stephane G. Plante, John D. Vert, Jacob Oshins
  • Patent number: 6980944
    Abstract: A mechanism for simulating the existence of hardware in a configuration and power management system is described. In one aspect, a simulator interfaces with the configuration and power management system to generate simulated events. In another aspect, accesses to hardware registers are simulated by registering the simulator with the configuration and power management system to handle accesses to a simulated hardware device. A component within the configuration and power management system may define the simulated hardware device such that accesses to the simulated hardware device occur with respect to a defined I/O space.
    Type: Grant
    Filed: March 17, 2000
    Date of Patent: December 27, 2005
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Stephane G. Plante, Vincent J. Geglia II
  • Patent number: 6970957
    Abstract: A method and system that enables customized computer machines to be more readily developed by removing the function of resource translation out of the hardware abstraction layer (HAL). A machine manufacturer describes a machine in firmware, such as accordance with the Advanced Configuration and Power Interface (ACPI) specification, using ACPI machine language (AML). Operating system components such as a Plug and Play (PnP) manager in the kernel, in conjunction with an ACPI driver, interpret the description information and locate resources (bus bridges) for which translation is needed. For any arbitrary bus architecture or CPU to PCI bridge implementation that can be expressed, e.g., in ACPI firmware, the invention provides a translator external to the HAL. In one implementation, a PnP driver communicates with the ACPI driver and various drivers in driver stacks via I/O request packets (IRPs) to look for resource translators.
    Type: Grant
    Filed: April 24, 2000
    Date of Patent: November 29, 2005
    Assignee: Microsoft Corporation
    Inventors: Jacob Oshins, Stephane G. Plante, Andrew J. Thornton