Patents by Inventor Michael D. Noakes
Michael D. Noakes 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: 9594754Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: GrantFiled: January 25, 2016Date of Patent: March 14, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 9417859Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: GrantFiled: January 4, 2016Date of Patent: August 16, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Publication number: 20160140018Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: ApplicationFiled: January 25, 2016Publication date: May 19, 2016Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Publication number: 20160132306Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: ApplicationFiled: January 4, 2016Publication date: May 12, 2016Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 9262416Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: GrantFiled: November 8, 2012Date of Patent: February 16, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8839204Abstract: The purity of a function may be determined after examining the performance history of a function and analyzing the conditions under which the function behaves as pure. In some cases, a function may be classified as pure when any side effects are de minimis or are otherwise considered trivial. A control flow graph may also be traversed to identify conditions in which a side effect may occur as well as to classify the side effects as trivial or non-trivial. The function purity may be used to identify functions for memoization. In some embodiments, the purity analysis may be performed by a remote server and communicated to a client device, where the client device may memoize the function.Type: GrantFiled: November 8, 2012Date of Patent: September 16, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8826254Abstract: A function may be memoized when a side effect is a read only side effect. Provided that the read only side effect does not mutate a memory object, the side effect may be considered as an input to a function for purity and memoization analysis. When a read only side effect may be encountered during memoization analysis, the read only side effect may be treated as an input to a function for memoization analysis. In some cases, such side effects may enable an impure function to behave as a pure function for the purposes of memoization.Type: GrantFiled: November 8, 2012Date of Patent: September 2, 2014Assignee: Concurix CorporationInventors: Alexadner G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8752021Abstract: A function's purity may be estimated by comparing a new input vector to previously analyzed input vectors. When a new input vector is within a confidence boundary, the new input vector may be treated as a known vector, even when that vector has not been evaluated. The input vector may reflect the input parameters passed to a function, and the function may be analyzed to determine whether to memoize with the input vector. The function may be a function that behaves as a pure function in some circumstances and with some input vectors, but not with others. By memoizing the function when possible, the function may be executed much faster, thereby improving performance.Type: GrantFiled: November 8, 2012Date of Patent: June 10, 2014Assignee: Concurix CorporationInventors: Ying Li, Charles D. Garrett, Michael D. Noakes, Alexander G. Gounares
-
Patent number: 8752034Abstract: Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. As an application is executed, functions defined in the configuration file may be captured and memoized. During the first execution of the function, the return value may be captured and stored in the configuration file. For subsequent executions of the function, the return value may be stored in the configuration file. In some cases, the configuration file may be distributed with the return values to client computers. The configuration file may be created by one device and deployed to other devices in some deployments.Type: GrantFiled: November 8, 2012Date of Patent: June 10, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8694574Abstract: A set of optimizations may be defined in a configuration database. The configuration database may be defined with a set of boundaries that may define conditions under which the optimizations may be valid. When the conditions are not met, a new configuration database may be requested from an optimization server. The system may be used to distribute and manage optimizations for an application, which may be deployed in interpreted or runtime scenarios or in pre-execution or compiled scenarios.Type: GrantFiled: November 8, 2012Date of Patent: April 8, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8656134Abstract: A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed at runtime. An execution environment may capture a memory allocation boundary, look up the boundary in a configuration file, and apply the settings when the settings are available. When the settings are not available, a default set of settings may be used. The execution environment may deploy the optimized settings without modifying the executing code.Type: GrantFiled: November 8, 2012Date of Patent: February 18, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8656378Abstract: Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. At compile time, functions defined in the configuration file may be captured and memoized. During compilation or other pre-execution analysis, the executable code may be modified or otherwise decorated to include memoization code. The memoization code may store results from a function during the first execution, then merely look up the results when the function may be called again. The memoized value may be stored in the configuration file or in another data store. In some embodiments, the modified executable code may operate in conjunction with an execution environment, where the execution environment may optionally perform the memoization.Type: GrantFiled: November 8, 2012Date of Patent: February 18, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8656135Abstract: A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed prior to runtime. A compiler or other pre-execution system may detect a memory allocation boundary and decorate the code. During execution, the decorated code may be used to look up memory allocation and management settings from a database or to deploy optimized settings that may be embedded in the decorations.Type: GrantFiled: November 8, 2012Date of Patent: February 18, 2014Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8607018Abstract: A computer software execution system may have a configurable memory allocation and management system. A configuration file or other definition may be created by analyzing a running application and determining an optimized set of settings for the application on the fly. The settings may include memory allocated to individual processes, memory allocation and deallocation schemes, garbage collection policies, and other settings. The optimization analysis may be performed offline from the execution system. The execution environment may capture processes during creation, then allocate memory and configure memory management settings for each individual process.Type: GrantFiled: November 8, 2012Date of Patent: December 10, 2013Assignee: Concurix CorporationInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 4912656Abstract: An adaptive link assignment scheme for dynamically changing communication node topologies such as satellite networks, fleets of ships or aircraft, etc. Periodically each node in the network transmits topology information to all the nodes in the network. Then each node determines the degree of connectivity of the network. It is preferred that the network be at least triconnected, and if the network is less than that each node determines what connections it can make to improve the network connectivity. If more than one alternative is available, a choice is made based on line of sight endurance and then on traffic delay. The identification of the selected connection is then broadcast to all the nodes in the network. Each node thus receives the proposed changes from all the network nodes, and each node then resolves conflicts between the broadcast selections and determines what change it should make. Finally, the changes are implemented.Type: GrantFiled: September 26, 1988Date of Patent: March 27, 1990Assignee: Harris CorporationInventors: Joseph B. Cain, Stanley L. Adams, John W. Nieto, Michael D. Noakes
-
Patent number: 4905233Abstract: A mechanism for establishing at least one transmission route between a source node and a destination node in a multinode communications network comprises monitoring transmission characteristics of each of the transmission paths among the respective nodes of the network so as to derive a plurality of path metrics representative of the ability of the respective transmission paths of the network to transmit communication signals. Then, feasible transmission routes to be used for the transmission of communication signals from the source node to the destination node are selected as those routes which extend from the source node to the destination node and each of which is comprised of one or more transmission paths among the nodes of the network and the sum of path metrics of transmission paths from neighboring nodes to the destination node is less than the path metric of a transmission path the end nodes of which correspond to the source and destination nodes.Type: GrantFiled: November 23, 1987Date of Patent: February 27, 1990Assignee: Harris CorporationInventors: Joseph B. Cain, Stanley L. Adams, Michael D. Noakes