Patents by Inventor Michael L. Boucher
Michael L. Boucher 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: 8578389Abstract: Methods and systems facilitating a programmer to program parts of a program in data flow programming to produce directed acyclic graphs (“DAGs”), and then merge the graphs at runtime for efficiency and scalability. Large merged DAG can typically be processed with greater efficiency than the collection of smaller DAGs. As a result, smaller DAGs may be created while the execution of the program realizes the increased efficiency of executing a larger DAG based on the merging of the smaller DAGs. In accordance with methods and systems consistent with the present invention, a programmer creates individual data flow directed acyclic graphs in a program.Type: GrantFiled: May 4, 2004Date of Patent: November 5, 2013Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 7844899Abstract: A citation system parses, error checks, corrects, and transforms citations between citation systems. The system may determine the available citation systems, such as The Bluebook, The Chicago Manual of Style, or other citation systems available for selection. The system also determines a selected citation system from among the multiple citation systems. For example, the system may determine that a writer has selected The Bluebook citation system from among those available to the system. The system also determines an applicable rule set for the selected citation system, and applies to rule set to an input citation to obtain an output citation component.Type: GrantFiled: January 24, 2007Date of Patent: November 30, 2010Assignee: Dakota Legal Software, Inc.Inventor: Michael L. Boucher
-
Patent number: 7836434Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide an improved technique for analyzing statements that use pointer or array syntax to access dynamically-allocated arrays to determine whether the statement generates a reference that is outside the bounds of the array's allocated memory. Statements that use pointer or array syntax to access dynamically-allocated arrays can be either statically (at compile-time) or dynamically bounds (at run-time) checked. Methods and systems in accordance with the present invention determine at compile-time if an array reference can be determined to always be in bounds or definitely out of bounds at least once, and if not, insert code into the program to check the array bounds dynamically at run-time before the access of the array reference.Type: GrantFiled: May 4, 2004Date of Patent: November 16, 2010Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 7730469Abstract: Methods, systems, and articles of manufacture consistent with the present invention optimize a program by analyzing a statistical profile of a program execution, and automatically optimizing the program based on at least one of the analysis, information about at least one prior compilation of the program, and information about at least one prior optimization of the program. The optimization of the program can therefore take into consideration changes made during prior compilations and optimization and the results of the changes.Type: GrantFiled: May 4, 2004Date of Patent: June 1, 2010Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 7725643Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a optimization tool for avoiding an address dependency between tasks in a program. The tool determines whether two or more tasks of the program are dependent on at least one same address, which is associated with a first memory block. When it is determined that the two or more tasks of the program are dependant on the at least one same address, the tool allocates a second memory block and changes a read reference by at least one of the two or more tasks from the first memory block associated with the at least one same address to the second memory block.Type: GrantFiled: May 4, 2004Date of Patent: May 25, 2010Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 7558935Abstract: Methods, systems, and articles of manufacture consistent with the present invention optimize allocation of items to a stack memory instead of a heap memory. It is determined whether an item to be placed on the heap memory escapes from the scope of the item's allocator, and whether the item survives the item's allocator. The item is allocated to the stack memory responsive to the item not escaping from the scope of the item's allocator and not surviving the item's allocator.Type: GrantFiled: May 4, 2004Date of Patent: July 7, 2009Assignee: Sun Microsystems, Inc.Inventors: Michael L. Boucher, Lawrence A. Crowl, Terrence C. Miller
-
Patent number: 7552317Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a memory instruction manager for managing the execution of instructions associated with a program. The memory instruction manager assigns a first group identifier to a first instruction associated with a program and to a second instruction associated with the program, and provides, after the first instruction, a memory barrier instruction having the first group identifier such that one or more processors with access to the program are inhibited from executing the second memory instruction until the first memory instruction is executed.Type: GrantFiled: June 30, 2004Date of Patent: June 23, 2009Assignee: Sun Microsystems, Inc.Inventor: Michael L. Boucher
-
Patent number: 7506329Abstract: Methods and systems consistent with the present invention provide a statistical profile of execution characteristics of a program, then use that statistical profile to regenerate code at run-time. When the information in the statistical profile is insufficient to make an optimization decision, methods and systems in accordance with the present invention may use the statistical profile plus additional information described below to determine a minimal level of instrumentation required to answer a particular optimization question. They then add at run-time the minimal instrumentation required to decide an optimization question, continue running the program for a period of time, and then analyze the resulting instrumentation data. These systems may either iterate the process to get more data or use the available data to compile a more highly optimized program.Type: GrantFiled: May 4, 2004Date of Patent: March 17, 2009Assignee: Sun Microsystems, Inc.Inventor: Michael L. Boucher
-
Patent number: 7483932Abstract: Methods, systems, and articles of manufacture consistent with the present invention compute a multidimensional fast Fourier transform of an original matrix having rows and columns of data. The original matrix is divided into a number of blocks of data, each block including at least one datum, the number of rows of data in each block being less than a total number of rows of data in the original matrix. A one-dimensional partial fast Fourier transform of each block in a row of blocks is computed. A result of the computations is stored in a resultant matrix having rows and columns. The resultant matrix is transposed to a transposed matrix having rows and columns. While transposing the resultant matrix, one-dimensional partial fast Fourier transforms of each block of subsequent rows of blocks are simultaneously computed, one row of blocks at a time, until one-dimensional partial fast Fourier transforms are computed for each block.Type: GrantFiled: May 5, 2004Date of Patent: January 27, 2009Assignee: Sun Microsystems, Inc.Inventor: Michael L. Boucher
-
Publication number: 20080178077Abstract: A citation system parses, error checks, corrects, and transforms citations between citation systems. The system may determine the available citation systems, such as The Bluebook, The Chicago Manual of Style, or other citation systems available for selection. The system also determines a selected citation system from among the multiple citation systems. For example, the system may determine that a writer has selected The Bluebook citation system from among those available to the system. The system also determines an applicable rule set for the selected citation system, and applies to rule set to an input citation to obtain an output citation component.Type: ApplicationFiled: January 24, 2007Publication date: July 24, 2008Inventor: Michael L. Boucher
-
Publication number: 20080071803Abstract: Methods, systems, and articles of manufacture consistent with the present invention generate correct citations dynamically, interactively and in real time based on the context in which the citation appears and on certain user preferences. As will be described in more detail below, a user inputs information for a citation and requests the citation generator program to generate a correct citation. The citation generator program generates the citation and inserts it into a document. Further, the citation generator program may format citations by applying stylistic rules to the presentation of the citations, verifying the accuracy of the citations, applying corrections and changes to the citations, and maintaining and updating the citations as the document of which they are a part is edited.Type: ApplicationFiled: September 15, 2006Publication date: March 20, 2008Inventor: Michael L. Boucher
-
Patent number: 7178002Abstract: An allocation instructions and an extension instructions allow a program to continue to execute even when the program requires more stack space than has been allocated to the program. The methods and systems thereby allow programs to run to completion in more situations than programs running in conventional data processing systems. As a result, the programs avoid wasting computing resources by terminating prematurely, without producing results.Type: GrantFiled: July 24, 2002Date of Patent: February 13, 2007Assignee: Sun Microsystems, Inc.Inventor: Michael L. Boucher
-
Patent number: 7065634Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a development tool that enables computer programmers to design and develop a data flow program for execution in a multiprocessor computer system. The tool allows the programmer to define a region divided into multiple blocks, wherein each block is associated with data operated on by code segments of the data flow program. The development tool also maintains dependencies among the blocks, each dependency indicating a relationship between two blocks that indicates that the portion of the program associated with a first block of the relationship needs the resultant data provided by the portions of the program associated with a second block of the relationship. The development tool supports several debugging commands, including insertion of multiple types of breakpoints, adding and deleting dependencies, single stepping data flow program execution, and the like.Type: GrantFiled: November 8, 2001Date of Patent: June 20, 2006Assignee: Sun Microsystems, Inc.Inventors: Brad R. Lewis, Michael L. Boucher, Noah Horton
-
Patent number: 6957208Abstract: Methods and systems consistent with this invention analyze the performance of a program executed in a data processing system. Such methods and systems assign a semantic to the performance of the program, and measure the level of performance of the program based on the semantic. As part of assigning a semantic, such methods and systems indicate a class of processing of which to measure performance, and may define a suctitude associated with the class. Such methods and systems define the class as a processing function that could contribute to the poor performance of the program. As part of measuring the level of performance, such methods and systems measure the suctitude of the indicated class during program execution.Type: GrantFiled: October 31, 2000Date of Patent: October 18, 2005Assignee: Sun Microsystems, Inc.Inventors: Michael L. Boucher, Shaun M. Dennie, Paul J. Hinker
-
Patent number: 6952760Abstract: Methods and systems consistent with the present invention allocate memory for program data during fast Fourier transform computation in a way that is favorable for a given access pattern for the program data, and for the memory architecture of a given data processing system. As a result, the overhead associated with accessing the program data is reduced compared to typical memory allocation performed during fast Fourier transform computation. Thus, a fast Fourier transform computing program that manipulates the program data typically runs faster and produces results more quickly.Type: GrantFiled: May 21, 2003Date of Patent: October 4, 2005Assignee: Sun Microsystems, Inc.Inventors: Michael L. Boucher, Theresa H. Do
-
Publication number: 20040236922Abstract: Methods and systems consistent with the present invention allocate memory for program data during fast Fourier transform computation in a way that is favorable for a given access pattern for the program data, and for the memory architecture of a given data processing system. As a result, the overhead associated with accessing the program data is reduced compared to typical memory allocation performed during fast Fourier transform computation. Thus, a fast Fourier transform computing program that manipulates the program data typically runs faster and produces results more quickly.Type: ApplicationFiled: May 21, 2003Publication date: November 25, 2004Inventors: Michael L. Boucher, Theresa H. Do
-
Publication number: 20040019744Abstract: An allocation instructions and an extension instructions allow a program to continue to execute even when the program requires more stack space than has been allocated to the program. The methods and systems thereby allow programs to run to completion in more situations than programs running in conventional data processing systems. As a result, the programs avoid wasting computing resources by terminating prematurely, without producing results.Type: ApplicationFiled: July 24, 2002Publication date: January 29, 2004Applicant: SUN MICROSYSTEMS, INC.Inventor: Michael L. Boucher
-
Publication number: 20040015929Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a development tool that enables computer programmers to design and develop a data flow program for execution in a multiprocessor computer system. The tool allows the programmer to define a region divided into multiple blocks, wherein each block is associated with data operated on by code segments of the data flow program. The development tool also maintains dependencies among the blocks, each dependency indicating a relationship between two blocks that indicates that the portion of the program associated with a first block of the relationship needs the resultant data provided by the portions of the program associated with a second block of the relationship. The development tool supports several optimization commands, including analyzing node execution patterns and characteristics, and modeling the effect of changes in node execution time and node data.Type: ApplicationFiled: November 8, 2001Publication date: January 22, 2004Inventors: Brad R. Lewis, Michael L. Boucher, Paul Hinker, Noah Horton
-
Publication number: 20040015864Abstract: A method and system for testing memory operations of a computer program uses a virtual memory associated with a physical memory, the virtual memory being divided into a plurality of memory regions each having virtual addresses. The method and system comprise allocating a memory block to be used by the computer program so that a memory block boundary aligns with a boundary between a first memory region and a second memory region of the virtual memory, the memory block being entirely within the first memory region, executing the computer program using the virtual memory, and detecting any instances of the computer program accessing the second region of the virtual memory. The first memory region is a mapped region having virtual addresses associated with real addresses, and the second memory region is an unmapped region having virtual addresses not associated with real addresses.Type: ApplicationFiled: June 5, 2001Publication date: January 22, 2004Inventor: Michael L. Boucher
-
Publication number: 20030200193Abstract: A fast access system for data stored in a file system is provided. Because there is typically far less overhead with the fast access system than a conventional file system, the fast access system provides a substantial boost in data access efficiency. File names themselves in the fast access system store data for later retrieval. As a result, the file system may retrieve metadata maintained in the file system, rather than opening the file itself, to obtain the data. Thus, the methods and systems accelerate retrieval of data by avoiding significant overhead that would be required for a conventional file system to open and read data from a file.Type: ApplicationFiled: April 17, 2002Publication date: October 23, 2003Inventor: Michael L. Boucher