Patents by Inventor Jeremy Sugerman
Jeremy Sugerman 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: 10152328Abstract: One embodiment of the present invention sets forth a technique for efficiently performing voting operations within a multi-threaded parallel-processing system. A group of related parallel program threads executes within a processor core together in parallel. A new instruction, called a “vote” instruction, is introduced that enables a parallel program thread to post an individual vote within the context of the group of related threads and to receive the result of the vote. In this fashion, the vote instruction advantageously reduces overhead associated with inter-thread communication, thereby improving overall system performance.Type: GrantFiled: May 31, 2012Date of Patent: December 11, 2018Assignee: NVIDIA CORPORATIONInventors: John R. Nickolls, Lars Nyland, Peter C. Mills, Jeremy Sugerman, Timothy Foley, Brian Fahs, Michael Garland, David P. Luebke
-
Patent number: 10025571Abstract: In one aspect, a method includes receiving a code block including one or more variables, performing forward data flow analysis for the code block including generating a control flow graph of the code block and for each operation in the control flow graph determining if the operation provides an update regarding the type of one or more of the operations or variables of the code block, the update being based on one or more rules of type inference, updating a type set of each of the operations or variables where the operation provides an update regarding the type, determining if the operation provides an update regarding the location of the variables, the update being based on one or more rules of location inference and updating a location set of each of the variables where the operation provides an update regarding the location set.Type: GrantFiled: July 17, 2014Date of Patent: July 17, 2018Assignee: Google LLCInventors: Solomon Boulos, Jeremy Sugerman
-
Publication number: 20180129488Abstract: In one aspect, a method for optimizing executing of dynamic language code is provided, the method includes identifying a first dynamic language function call during runtime, the function call including argument values for one or more arguments of the function, calculating a type signature for the one or more argument values of the function, determining if a function associated with the type signature is stored in a cache, looking up the function in the cache when the function associated with the type signature is stored in the cache and dynamically calling the function associated with the type signature when the specialized function for the type signature is not stored in the cache.Type: ApplicationFiled: January 5, 2018Publication date: May 10, 2018Inventors: Solomon BOULOS, Jeremy SUGERMAN
-
Patent number: 9389888Abstract: A remote proxy in a virtualization layer domain establishes a plurality of logical channels via a network connection. The virtualization layer domain is part of a host system in which a set of virtual machines of a virtual machine domain run on a virtualization layer of the virtualization layer domain. The remote proxy receives first information from a first logical channel in plurality of logical channels and second information from a second logical channel in plurality of logical channels through the network connection. Then, the remote proxy determines that the virtual machine domain should process the first information and forwards the first information from the virtualization layer domain to a virtual machine in the set of virtual machines in the virtual machine domain. Also, the remote proxy determines that the virtualization layer domain should process the second information and forwards the second information to the virtualization layer for processing.Type: GrantFiled: May 15, 2014Date of Patent: July 12, 2016Assignee: VMware, Inc.Inventors: Matthew David Ginzton, Jeremy Sugerman, Ramesh Dharan
-
Publication number: 20160179489Abstract: In one aspect, a method for optimizing execution of dynamic language code is provided, the method includes identifying a first dynamic language function call during runtime, the function call including argument values for one or more arguments of the function, calculating a type signature for the one or more argument values of the function, determining if a function associated with the type signature is stored in a cache, looking up the function in the cache when the function associated with the type signature is stored in the cache and dynamically calling the function associated with the type signature when the specialized function for the type signature is not stored in the cache.Type: ApplicationFiled: December 16, 2015Publication date: June 23, 2016Inventors: Solomon BOULOS, Jeremy Sugerman
-
Patent number: 9244665Abstract: In one aspect, a method for optimizing execution of dynamic language code is provided, the method includes identifying a first dynamic language function call during runtime, the function call including argument values for one or more arguments of the function, calculating a type signature for the one or more argument values of the function, determining if a function associated with the type signature is stored in a cache, looking up the function in the cache when the function associated with the type signature is stored in the cache and dynamically calling the function associated with the type signature when the specialized function for the type signature is not stored in the cache.Type: GrantFiled: July 17, 2014Date of Patent: January 26, 2016Assignee: Google Inc.Inventors: Solomon Boulos, Jeremy Sugerman
-
Publication number: 20160019035Abstract: in one aspect, a method for optimizing execution of dynamic language code is provided, the method includes identifying a first dynamic language function call during runtime, the function call including argument values for one or more arguments of the function, calculating a type signature for the one or more argument values of the function, determining if a function associated with the type signature is stored in a cache, looking up the function in the cache when the function associated with the type signature is stored in the cache and dynamically calling the function associated with the type signature when the specialized function for the type signature is not stored in the cache.Type: ApplicationFiled: July 17, 2014Publication date: January 21, 2016Inventors: Solomon BOULOS, Jeremy SUGERMAN
-
Patent number: 9104449Abstract: Program code in a dynamic language is executed through a dynamic execution module that includes an execution context and an execution codebase. The instructions of the program code are translated into machine code that is stored in the execution codebase, and the execution context tracks the runtime state and persistent state of the program through executions and across executions. Using the execution codebase and the execution context the dynamic execution module minimizes duplicative machine code generation, while preserving the dynamic aspects of the program.Type: GrantFiled: June 18, 2012Date of Patent: August 11, 2015Assignee: Google Inc.Inventors: Solomon Boulos, Jeremy Sugerman
-
Publication number: 20140250437Abstract: A remote proxy in a virtualization layer domain establishes a plurality of logical channels via a network connection. The virtualization layer domain is part of a host system in which a set of virtual machines of a virtual machine domain run on a virtualization layer of the virtualization layer domain. The remote proxy receives first information from a first logical channel in plurality of logical channels and second information from a second logical channel in plurality of logical channels through the network connection. Then, the remote proxy determines that the virtual machine domain should process the first information and forwards the first information from the virtualization layer domain to a virtual machine in the set of virtual machines in the virtual machine domain. Also, the remote proxy determines that the virtualization layer domain should process the second information and forwards the second information to the virtualization layer for processing.Type: ApplicationFiled: May 15, 2014Publication date: September 4, 2014Applicant: VMware, Inc.Inventors: Matthew David Ginzton, Jeremy Sugerman, Ramesh Dharan
-
Patent number: 8732700Abstract: A remote proxy provides remote control to a virtualization system. The virtualization system includes a computer having virtualization software executing on the computer, and one or more virtual machines executing on the computer by way of the virtualization software, each of the virtual machines having a guest operating system. The remote proxy receives over a network connection a plurality of logical channels of a multi-channel remote control protocol at a first domain of a plurality of domains of the virtualization system. Each of the logical channels convey information corresponding to one of the domains. For each logical channel, the remote proxy identifies the corresponding domain. Further, for each of the logical channels corresponding to a domain other than the first domain, the remote proxy forwards the logical channel to the corresponding domain.Type: GrantFiled: December 18, 2008Date of Patent: May 20, 2014Assignee: VMware, Inc.Inventors: Matthew David Ginzton, Jeremy Sugerman, Ramesh Dharan
-
Publication number: 20130339936Abstract: Program code in a dynamic language is executed through a dynamic execution module that includes an execution context and an execution codebase. The instructions of the program code are translated into machine code that is stored in the execution codebase, and the execution context tracks the runtime state and persistent state of the program through executions and across executions. Using the execution codebase and the execution context the dynamic execution module minimizes duplicative machine code generation, while preserving the dynamic aspects of the program.Type: ApplicationFiled: June 18, 2012Publication date: December 19, 2013Applicant: TALARIA TECHNOLOGIES, INC.Inventors: Solomon Boulos, Jeremy Sugerman
-
Patent number: 8281318Abstract: A method of data communication between a first virtual machine and a second virtual machine is disclosed. The second virtual machine is executing in a record/replay mode. Data from the first virtual machine is copied to a first queue. The first queue receives the data from the first virtual machine. The first queue has a header section and a data section, wherein the header section being write protected and stores a tail pointer of the data in the first queue. The tail pointer is updated in the header section. This update of the tail pointer causes a page fault, which is handled-through a page fault handler. The handling includes copying the data from the first queue to a second queue. The second queue being configured to receive a copy of the data and to allow the second virtual machine to access the copy of the data.Type: GrantFiled: July 2, 2008Date of Patent: October 2, 2012Assignee: VMware, Inc.Inventors: Anupam Chanda, Kevin Scott Christopher, Jeremy Sugerman, Petr Vandrovec, Gustav Seth Wibling
-
Publication number: 20120239909Abstract: One embodiment of the present invention sets forth a technique for efficiently performing voting operations within a multi-threaded parallel-processing system. A group of related parallel program threads executes within a processor core together in parallel. A new instruction, called a “vote” instruction, is introduced that enables a parallel program thread to post an individual vote within the context of the group of related threads and to receive the result of the vote. In this fashion, the vote instruction advantageously reduces overhead associated with inter-thread communication, thereby improving overall system performance.Type: ApplicationFiled: May 31, 2012Publication date: September 20, 2012Inventors: John R. Nickolls, Lars Nyland, Peter C. Mills, Jeremy Sugerman, Timothy Foley, Brian Fahs, Michael Garland, David P. Luebke
-
Patent number: 8214625Abstract: One embodiment of the present invention sets forth a technique for efficiently performing voting operations within a multi-threaded parallel-processing system. A group of related parallel program threads executes within a processor core together in parallel. A new instruction, called a “vote” instruction, is introduced that enables a parallel program thread to post an individual vote within the context of the group of related threads and to receive the result of the vote. In this fashion, the vote instruction advantageously reduces overhead associated with inter-thread communication, thereby improving overall system performance.Type: GrantFiled: November 26, 2008Date of Patent: July 3, 2012Assignee: NVIDIA CorporationInventors: John R. Nickolls, Lars Nyland, Peter C. Mills, Jeremy Sugerman, Timothy Foley, Brian Fahs, Michael Garland, David P. Luebke
-
Patent number: 8200947Abstract: One embodiment of the present invention sets forth a technique for efficiently performing voting operations within a multi-threaded parallel-processing system. A group of related parallel program threads executes within a processor core together in parallel. A new instruction, called a “vote” instruction, is introduced that enables a parallel program thread to post an individual vote within the context of the group of related threads and to receive the result of the vote. In this fashion, the vote instruction advantageously reduces overhead associated with inter-thread communication, thereby improving overall system performance.Type: GrantFiled: March 24, 2008Date of Patent: June 12, 2012Assignee: NVIDIA CorporationInventors: John R. Nickolls, Lars Nyland, Peter C. Mills, Jeremy Sugerman, Timothy Foley, Brian Fahs, Michael Garland, David P. Luebke
-
Publication number: 20100162235Abstract: A remote proxy provides remote control to a virtualization system. The virtualization system includes a computer having virtualization software executing on the computer, and one or more virtual machines executing on the computer by way of the virtualization software, each of the virtual machines having a guest operating system. The remote proxy receives over a network connection a plurality of logical channels of a multi-channel remote control protocol at a first domain of a plurality of domains of the virtualization system. Each of the logical channels convey information corresponding to one of the domains. For each logical channel, the remote proxy identifies the corresponding domain. Further, for each of the logical channels corresponding to a domain other than the first domain, the remote proxy forwards the logical channel to the corresponding domain.Type: ApplicationFiled: December 18, 2008Publication date: June 24, 2010Applicant: VMware, Inc.Inventors: Matthew David GINZTON, Jeremy SUGERMAN, Ramesh DHARAN
-
Publication number: 20090249357Abstract: A method of data communication between a first virtual machine and a second virtual machine is disclosed. The second virtual machine is executing in a record/replay mode. The method includes copying data from the first virtual machine to a first queue. The first queue is configured to receive the data from the first virtual machine. The first queue has a first queue header section and a first queue data section. The first queue header being write protected and configured to store a tail pointer of the data in the first queue. The tail pointer is updated in the first header section. This update of the tail pointer causes a page fault. The method further includes handling page fault through a page fault handler. The handling includes copying the data from the first queue to a second queue. The second queue being configured to receive a copy of the data and to allow the second virtual machine to access the copy of the data.Type: ApplicationFiled: July 2, 2008Publication date: October 1, 2009Applicant: VMWARE, INC.Inventors: Anupam CHANDA, Kevin Scott CHRISTOPHER, Jeremy SUGERMAN, Petr VANDROVEC, Gustav Seth WIBLING