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: 8074231Abstract: 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: GrantFiled: June 30, 2006Date of Patent: December 6, 2011Assignee: Microsoft CorporationInventors: 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: 8032898Abstract: 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: GrantFiled: June 30, 2006Date of Patent: October 4, 2011Assignee: Microsoft CorporationInventors: Galen C. Hunt, James R. Larus, Manuel Fähndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
-
Patent number: 7509338Abstract: 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: GrantFiled: August 30, 2005Date of Patent: March 24, 2009Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Patent number: 7472145Abstract: 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: GrantFiled: July 6, 2005Date of Patent: December 30, 2008Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Patent number: 7386843Abstract: 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: GrantFiled: June 9, 2004Date of Patent: June 10, 2008Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Publication number: 20080005750Abstract: 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: ApplicationFiled: June 30, 2006Publication date: January 3, 2008Applicant: Microsoft CorporationInventors: Galen C. Hunt, James R. Larus, Manuel A. Fahndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
-
Patent number: 7085789Abstract: 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: GrantFiled: July 30, 2001Date of Patent: August 1, 2006Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Patent number: 6925639Abstract: 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: GrantFiled: February 23, 2001Date of Patent: August 2, 2005Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Publication number: 20040226005Abstract: 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: ApplicationFiled: June 9, 2004Publication date: November 11, 2004Applicant: Microsoft CorporationInventor: David R. Tarditi
-
Patent number: 6625808Abstract: 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: GrantFiled: December 10, 1999Date of Patent: September 23, 2003Assignee: Microsoft CorporationInventor: David R. Tarditi
-
Publication number: 20020170044Abstract: 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: ApplicationFiled: February 23, 2001Publication date: November 14, 2002Applicant: Microsoft CorporationInventor: David R. Tarditi