Patents by Inventor Michael Magruder

Michael Magruder 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: 9658880
    Abstract: Handling garbage collection and exceptions in hardware assisted transactions. Embodiments are practiced in a computing environment including a hardware assisted transaction system. A method includes beginning a hardware assisted transaction, raising an exception while in the hardware assisted transaction, including creating an exception object, determining that the transaction should be rolled back, and as a result of determining that the transaction should be rolled back, marshaling the exception object out of the hardware assisted transaction.
    Type: Grant
    Filed: March 18, 2013
    Date of Patent: May 23, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Vinod K. Grover, Michael Magruder, Gad Sheaffer
  • Publication number: 20130238579
    Abstract: Handling garbage collection and exceptions in hardware assisted transactions. Embodiments are practiced in a computing environment including a hardware assisted transaction system. A method includes beginning a hardware assisted transaction, raising an exception while in the hardware assisted transaction, including creating an exception object, determining that the transaction should be rolled back, and as a result of determining that the transaction should be rolled back, marshaling the exception object out of the hardware assisted transaction.
    Type: Application
    Filed: March 18, 2013
    Publication date: September 12, 2013
    Applicant: Microsoft Corporation
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Vinod K. Grover, Michael Magruder, Gad Sheaffer
  • Patent number: 8402218
    Abstract: Handling garbage collection and exceptions in hardware assisted transactions. Embodiments are practiced in a computing environment including a hardware assisted transaction system. Embodiments includes acts for writing to a card table outside of a transaction; handling garbage collection compaction occurring when a hardware transaction is active by using a common global variable and instructing one or more agents to write to the common global variable any time an operation is performed which may change an object's virtual address; acts for managing a thread-local allocation context; acts for handling exceptions while in a hardware assisted transaction.
    Type: Grant
    Filed: December 15, 2009
    Date of Patent: March 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Vinod K. Grover, Michael Magruder, Gad Sheaffer
  • Patent number: 8229907
    Abstract: Hardware assisted transactional memory system with open nested transactions. Embodiments include a system whereby hardware acceleration of transactions can be accomplished by implementing open nested transaction in hardware which respect software locks such that a top level transaction can be implemented in software, and thus not be limited by hardware constraints typical when using hardware transactional memory systems.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: July 24, 2012
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Michael Magruder, David Callahan
  • Publication number: 20110145304
    Abstract: Handling garbage collection and exceptions in hardware assisted transactions. Embodiments are practiced in a computing environment including a hardware assisted transaction system. Embodiments includes acts for writing to a card table outside of a transaction; handling garbage collection compaction occurring when a hardware transaction is active by using a common global variable and instructing one or more agents to write to the common global variable any time an operation is performed which may change an object's virtual address; acts for managing a thread-local allocation context; acts for handling exceptions while in a hardware assisted transaction.
    Type: Application
    Filed: December 15, 2009
    Publication date: June 16, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Vinod K. Grover, Michael Magruder, Gad Sheaffer
  • Publication number: 20100332538
    Abstract: Hardware assisted transactional memory system with open nested transactions. Some embodiments described herein implement a system whereby hardware acceleration of transactions can be accomplished by implementing open nested transaction in hardware which respect software locks such that a top level transaction can be implemented in software, and thus not be limited by hardware constraints typical when using hardware transactional memory systems.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 30, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Michael Magruder, David Callahan
  • Publication number: 20060101411
    Abstract: The techniques and mechanisms described herein are directed to a method for virtually catching an exception. A debugger receives a notification identifying information about an exception that occurred during execution of an application. The debugger then selectively chooses a location on a call stack where execution of the application resumes after the stack is unwound up to the selected location. The location being between a statement on the stack causing the exception and a handler on the stack. The handler being identified during a search phase for exception processing. The mechanism being operative for both handled exceptions and unhandled exceptions.
    Type: Application
    Filed: October 22, 2004
    Publication date: May 11, 2006
    Applicant: Microsoft Corporation
    Inventors: Sean Selitrennikoff, Michael Magruder, Jonathan Keljo, Ian Carmichael, Brian Harry
  • Publication number: 20050246716
    Abstract: An application program interface (API) provides a set of functions, including a set of base classes and types that are used in substantially all applications accessing the API, for application developers who build Web applications on Microsoft Corporation's .NET™ platform.
    Type: Application
    Filed: June 23, 2005
    Publication date: November 3, 2005
    Applicant: Microsoft Corporation
    Inventors: Adam Smith, Anthony Moore, Brian LaMacchia, Anders Hejlsberg, Brian Grunkemeyer, Caleb Doise, Christopher Brumme, Christopher Anderson, Corina Feuerstein, Craig Sinclair, Daniel Takacs, David Ebbo, David Driver, David Mortenson, Erik Christensen, Erik Olson, Fabio Yeon, Gopala Kakivaya, Gregory Fee, Hany Ramadan, Henry Sanders, Jayanth Rajan, Jeffrey Cooperstein, Jonathan Hawkins, James Hogg, Joe Long, John McConnell, Jesus Ruiz-Scougall, James Miller, Julie Bennett, Krzysztof Cwalina, Lance Olson, Loren Kohnfelder, Michael Magruder, Manish Prabhu, Radu Palanca, Raja Krishnaswamy, Shawn Burke, Sean Trowbridge, Seth Demsey, Shajan Dasan, Stefan Pharies, Suzanne Cook, Tarun Anand, Travis Muhlestein, Yann Christensen, Yung-shin Lin, Ramasamy Krishnaswamy, Joseph Roxe, Alan Boshier, David Bau
  • Publication number: 20050240943
    Abstract: An application program interface (API) provides a set of functions, including a set of base classes and types that are used in substantially all applications accessing the API, for application developers who build Web applications on Microsoft Corporation's .NET™ platform.
    Type: Application
    Filed: June 23, 2005
    Publication date: October 27, 2005
    Applicant: Microsoft Corporation
    Inventors: Adam Smith, Anthony Moore, Brian LaMacchia, Anders Hejlsberg, Biran Grunkemeyer, Caleb Doise, Christopher Brumme, Christopher Anderson, Corina Feuerstein, Craig Sinclair, Daniel Takacs, David Ebbo, David Driver, David Mortenson, Erik Christensen, Erik Olson, Fabio Yeon, Gopala Kakivaya, George Fee, Hany Ramadan, Henry Sanders, Jayanth Rajan, Jeffrey Cooperstein, Jonathan Hawkins, James Hogg, Joe Long, John McConnell, Jesus Ruiz-Scougall, James Miller, Julie Bennett, Krzysztof Cwalina, Lance Olson, Loren Kohnfelder, Michael Magruder, Manish Prabhu, Radu Palanca, Raja Krishnaswamy, Shawn Burke, Sean Trowbridge, Seth Demsey, Shajan Dasan, Stefan Pharies, Suzanne Cook, Tarun Anand, Travis Muhlestein, Yann Christensen, Yung-shin Lin, Ramasamy Krishnaswamy, Joseph Roxe, Alan Boshier, David Bau
  • Publication number: 20050034109
    Abstract: A system and method of providing edit and continue support in a software program debugging environment. “Edit and continue” support allows a user (e.g., programmer and/or developer) to update the code and/or data structure(s) of an executing program while it is running. After the user has finished editing their code and resumes execution, an integrated development environment (IDE) propagates the edit(s) into a common language runtime (CLR) environment before continuing. Therefore, from the CLR environment's perspective, an edit is a block of intermediate language code (IL) and/or metadata that is inserted into a running process. The IDE can facilitate: determining “legality” of an edit; building the edit; sending the edit to the CLR environment; and/or, facilitating the CLR environment switch execution to the edited code.
    Type: Application
    Filed: July 21, 2004
    Publication date: February 10, 2005
    Applicant: Microsoft Corporation
    Inventors: Jennifer Hamilton, Michael Magruder, James Hogg, William Evans, Vance Morrison, Lawrence Sullivan, Sean Trowbridge, Jason Zander, Ian Carmichael, Patrick Dussud, John Hamby, John Rivard, Li Zhang, Mario Chenier, Douglas Rosen, Steven Steiner, Peter Hallam, Brian Crawford, James Miller, Sam Spencer, Habib Heydarian
  • Publication number: 20050028137
    Abstract: A method and system are disclosed for editing a software program in a common language runtime environment, wherein the software program has a source code component, an intermediate language component, and a native code component. The method comprises executing a first portion of the native code component, suspending execution of the native code component at a first point, and allowing a user to edit the source code component to create an edited source code component. The edited source code component is compiled using a source compiler to create an edited intermediate language component, and the edited intermediate language component is compiled using an intermediate language compiler to create an edited native code component. The edited native code component is then executed beginning at the point where execution was previously suspended.
    Type: Application
    Filed: August 25, 2004
    Publication date: February 3, 2005
    Applicant: Microsoft Corporation
    Inventors: William Evans, Jennifer Hamilton, Michael Magruder, Vance Morrison, Lawrence Sullivan, Sean Trowbridge, Jason Zander