Patents by Inventor David R. Tarditi

David R. Tarditi 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: 8074231
    Abstract: In some implementations, the operations of a software system may include the execution of untrusted device drivers. The execution of an untrusted device driver may be initiated when an untrusted device driver that is a set of executable instructions is obtained. A computing resource for the execution of the device driver may be further determined from a device-driver manifest of the untrusted device driver. Computing resources may include one or more of a hardware resource, a memory, an input/output port, an interrupt request line, and an inter-process communication channel. Trusted local access objects may be used by the untrusted device driver to access the computing resources.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: December 6, 2011
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel A Fähndrich, Orion Hodson, David R. Tarditi, Michael Spear, Michael Carbin, Steven P. Levi, Bjame Steensgaard
  • Patent number: 8032898
    Abstract: Described herein are one or more implementations that separate kernel interfaces functions into those that act on kernel objects owned by a process and accessed exclusively by that process—described herein as local kernel objects—from access to kernel objects owned by a process and accessible by other active processes.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: October 4, 2011
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel Fähndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
  • Patent number: 7509338
    Abstract: A compact set of garbage collection tables takes advantage of the redundancies often inherent in live pointer information: multiple call sites in a call stack often share common live pointer information. A call site table lists call site identifiers associated with call stack locations having pointers to heap-allocated data. An associated indirection table (i.e., a descriptor reference table) provides a reference (e.g., an index or a pointer) into a descriptor table, which stores unique descriptors of the call stack locations of interest. The aggregate memory space used by the three tables (i.e., the call site table, the indirection table, and the descriptor table) is typically less than the memory space used by the monolithic live pointer information table.
    Type: Grant
    Filed: August 30, 2005
    Date of Patent: March 24, 2009
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Patent number: 7472145
    Abstract: A compact set of garbage collection tables takes advantage of the redundancies often inherent in live pointer information: multiple call sites in a call stack often share common live pointer information. A call site table lists call site identifiers associated with call stack locations having pointers to heap-allocated data. An associated indirection table (i.e., a descriptor reference table) provides a reference (e.g., an index or a pointer) into a descriptor table, which stores unique descriptors of the call stack locations of interest. The aggregate memory space used by the three tables (i.e., the call site table, the indirection table, and the descriptor table) is typically less than the memory space used by the monolithic live pointer information table.
    Type: Grant
    Filed: July 6, 2005
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Patent number: 7386843
    Abstract: Inserting spill code optimized for a complex instruction set computing (CISC) two-address machine. The spill code is generated in a single pass. Copy propagation and dead-code elimination are performed to remove unnecessary loads and stores from the stack. Memory operands are substituted in place of load and store instructions on CISC machines. The number of occurrences of a temporary variable is checked before a load is inserted into the new instructions and before a temporary variable is removed from use. If the variable has only occurred once then the memory operand of the temporary is used in place of the load of the temporary variable saving a load instruction. If the temporary variable is about to be removed from use and the temporary variable has only occurred one time then the variable is not stored saving a store instruction within the spill code.
    Type: Grant
    Filed: June 9, 2004
    Date of Patent: June 10, 2008
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Publication number: 20080005750
    Abstract: Described herein are one or more implementations that separate kernel interfaces functions into those that act on kernel objects owned by a process and accessed exclusively by that process—described herein as local kernel objects—from access to kernel objects owned by a process and accessible_by other active processes.
    Type: Application
    Filed: June 30, 2006
    Publication date: January 3, 2008
    Applicant: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel A. Fahndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
  • Patent number: 7085789
    Abstract: A compact set of garbage collection tables takes advantage of the redundancies often inherent in live pointer information: multiple call sites in a call stack often share common live pointer information. A call site table lists call site identifiers associated with call stack locations having pointers to heap-allocated data. An associated indirection table (i.e., a descriptor reference table) provides a reference (e.g., an index or a pointer) into a descriptor table, which stores unique descriptors of the call stack locations of interest. The aggregate memory space used by the three tables (i.e., the call site table, the indirection table, and the descriptor table) is typically less than the memory space used by the monolithic live pointer information table.
    Type: Grant
    Filed: July 30, 2001
    Date of Patent: August 1, 2006
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Patent number: 6925639
    Abstract: A method, system, and apparatus for inserting spill code optimized for a complex instruction set computing (CISC) two-address machine, such as a machine utilizing an 80x86 processor is described. The spill code is generated in a single pass. Copy propagation and dead-code elimination are performed to remove unnecessary loads and stores from the stack. Instructions contained within the code block are processed in reverse order. Temporary variables are not extended to the point that they may become spilled by a register allocation procedure. A store to a stack location is inserted if the stack location is not dead, saving the use of a register. Memory operands are substituted when possible in place of load and store instructions on CISC machines.
    Type: Grant
    Filed: February 23, 2001
    Date of Patent: August 2, 2005
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Publication number: 20040226005
    Abstract: A method, system, and apparatus for inserting spill code optimized for a complex instruction set computing (CISC) two-address machine, such as a machine utilizing an 80x86 processor is described. The spill code is generated in a single pass. Copy propagation and dead-code elimination are performed to remove unnecessary loads and stores from the stack. Instructions contained within the code block are processed in reverse order. Temporary variables are not extended to the point that they may become spilled by a register allocation procedure. A store to a stack location is inserted if the stack location is not dead, saving the use of a register. Memory operands are substituted when possible in place of load and store instructions on CISC machines. As the instructions are being processed, the number of occurrences and location of a temporary variable associated with a spilled variable within the instructions is maintained.
    Type: Application
    Filed: June 9, 2004
    Publication date: November 11, 2004
    Applicant: Microsoft Corporation
    Inventor: David R. Tarditi
  • Patent number: 6625808
    Abstract: A method comprising identifying points of transition between garbage collected program components and non-garbage collected program components of a heterogeneous program, and selectively invoking a transition function. The transition function maintains a traceable history of select pointer and state information across a plurality of calls to and from non-garbage collected program components to support garbage collection throughout execution of the heterogeneous program.
    Type: Grant
    Filed: December 10, 1999
    Date of Patent: September 23, 2003
    Assignee: Microsoft Corporation
    Inventor: David R. Tarditi
  • Publication number: 20020170044
    Abstract: A method, system, and apparatus for inserting spill code optimized for a complex instruction set computing (CISC) two-address machine, such as a machine utilizing an 80×86 processor is described. The spill code is generated in a single pass. Copy propagation and dead-code elimination are performed to remove unnecessary loads and stores from the stack. Instructions contained within the code block are processed in reverse order. Temporary variables are not extended to the point that they may become spilled by a register allocation procedure. A store to a stack location is inserted if the stack location is not dead, saving the use of a register. Memory operands are substituted when possible in place of load and store instructions on CISC machines. As the instructions are being processed, the number of occurrences and location of a temporary variable associated with a spilled variable within the instructions is maintained.
    Type: Application
    Filed: February 23, 2001
    Publication date: November 14, 2002
    Applicant: Microsoft Corporation
    Inventor: David R. Tarditi