Patents by Inventor Shin-Ming Liu
Shin-Ming Liu 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).
-
Publication number: 20240113607Abstract: A resonant vibration actuator is provided, comprising: a casing, a mover, a plurality of electromagnet sets, two elastic suspensions, and a connecting circuit; the casing is provided with connection terminals for connection on the outside; the mover comprising: a mover frame, a plurality of permanent magnet units, two magnetic backs, the permanent magnet units and the magnetic backs being arranged in the mover frame; the electromagnet sets being arranged between two permanent magnet units of the mover; the elastic suspensions being connected to the casing and the mover respectively through two connection portions at both ends; the connecting circuit being used to connect the electromagnet set and the connection terminals outside the casing; wherein, by energizing the electromagnet set, the electromagnet acts on the permanent magnet unit to make the mover move relatively in the casing to generate vibration.Type: ApplicationFiled: November 16, 2022Publication date: April 4, 2024Inventors: Chin-Sung Liu, Hsiao-Ming Chien, Chi-Ling Chang, Shin-Ter Tsai
-
Patent number: 9146719Abstract: One embodiment relates to a computer-implemented method of compiling a software program into an executable binary file, including determining a data layout in the binary file and a data layout in the executable's dynamically allocated memory. The method includes taking into account data types of data as a factor in determining a data layout for the binary file and for the executable's dynamically allocated memory, wherein the data types include a floating-point data type and a non-floating-point data type. Other embodiments, aspects and features are also disclosed herein.Type: GrantFiled: March 20, 2007Date of Patent: September 29, 2015Assignee: Hewlett-Packard Development Company, L.P.Inventors: Luis A. Lozano, Robert Hundt, Shin-Ming Liu, Sandya S Mannarswamy, Sungdo Moon
-
Patent number: 7996825Abstract: One embodiment disclosed relates to a method of compiling a computer program. A plurality of modules of source code is received, and intermediate representations corresponding to the modules are generated. A set of data from the intermediate representations is extracted to create an inliner summary for each module. Using the inliner summaries and a globally-sorted working-list based order, an inline analysis phase determines which call sites in the modules are to be inlined by substituting code from a called module. The propagation of summaries may be done elaborately, potentially throughout the call-graph. The goodness of call sites may be computed with a view to comparing them and ordering them in a descending order of goodness.Type: GrantFiled: October 31, 2003Date of Patent: August 9, 2011Assignee: Hewlett-Packard Development Company, L.P.Inventors: Dhruva Ranjan Chakrabarti, Shin-Ming Liu
-
Patent number: 7814467Abstract: A method of generating a software program executable binary file. A first file including source code therein is accessed. A second file including object code therein and further including object file summary information is accessed. The executable binary file is generated from at least the first and second files. The object file summary information is used in optimizing the executable binary file generated.Type: GrantFiled: January 15, 2004Date of Patent: October 12, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Xinliang David Li, Mur Litharan Vijayasundaram, Dmitry Mikulin, Shin-Ming Liu
-
Publication number: 20080235672Abstract: One embodiment relates to a computer-implemented method of compiling a software program into an executable binary file, including determining a data layout in the binary file and a data layout in the executable's dynamically allocated memory. The method includes taking into account data types of data as a factor in determining a data layout for the binary file and for the executable's dynamically allocated memory, wherein the data types include a floating-point data type and a non-floating-point data type. Other embodiments, aspects and features are also disclosed herein.Type: ApplicationFiled: March 20, 2007Publication date: September 25, 2008Inventors: Luis A. Lozano, Robert Hundt, Shin-Ming Liu, Sandya S. Mannarswamy, Sungdo Moon
-
Patent number: 7356813Abstract: Disclosed are systems and methods for optimizing a program.Type: GrantFiled: September 26, 2002Date of Patent: April 8, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Shin-Ming Liu, Dmitry Mikulin, Muralitharan Vijayasundaram, David Xinliang Li
-
Patent number: 7302679Abstract: One embodiment disclosed relates to a method of compiling a computer program from a plurality of files of source code. An inline analysis determines which call sites in the plurality of files to make inline. An inline transformation performs the inlining within currently opened files. The transformer dynamically determines the order of inlines independent of the analyzer by taking into account the disk input-output pressure during compilation. The resulting inline order minimizes the input and output of files from and to disk respectively by considering the inline affinity between files and maintains the best run-time performance by preserving the dependences between call sites. During the inline transformation, a determination of which files to open and close is made in dependence on an affinity weighting between the files.Type: GrantFiled: October 31, 2003Date of Patent: November 27, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Dhruva Ranjan Chakrabarti, Shin-Ming Liu
-
Patent number: 7275242Abstract: The present disclosure relates to whole program analysis and, more particularly, short data optimization obtained through whole program analysis. In one embodiment, short data optimization is achieved by analyzing the program to estimate the size of existing short data and the size of any linkage tables, providing the size estimates to a compiler that is to compile the program, and compiling the program with the compiler in view of the size estimates such that a relatively large amount of data is allocated to a short data area.Type: GrantFiled: October 4, 2002Date of Patent: September 25, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Shin-Ming Liu, Dmitry Mikulin, Muralitharan Vijayasundaram, David Xinliang Li
-
Patent number: 7165162Abstract: Techniques for partitioning modules into smaller groups are disclosed. In various embodiments, cross-module optimization may be performed on these smaller groups. Further, related modules are grouped together based on a predefined algorithm. Relatedness, or closeness, or affinity, of modules are considered based on various factors including, for example, the number of calls between routines in different modules, possibility of in-lining a first routine in a first module into a second routine in a second module, characteristics of parameters being passed between routines in different modules, etc.Type: GrantFiled: January 13, 2004Date of Patent: January 16, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: XinLiang David Li, Shin-Ming Liu, Dhruva R. Chakrabarti, Robert Hundt
-
Publication number: 20050160058Abstract: One embodiment disclosed relates to a method of generating a software program executable binary file. A first file including source code therein is accessed. A second file including object code therein and further including object file summary information is accessed. The executable binary file is generated from at least the first and second files. The object file summary information is used in optimizing the executable binary file generated.Type: ApplicationFiled: January 15, 2004Publication date: July 21, 2005Inventors: Xinliang Li, Mur Vijayasundaram, Dmitry Mikulin, Shin-Ming Liu
-
Publication number: 20050155023Abstract: Techniques for partitioning modules into smaller groups are disclosed. In various embodiments, cross-module optimization may be performed on these smaller groups. Further, related modules are grouped together based on a predefined algorithm. Relatedness, or closeness, or affinity, of modules are considered based on various factors including, for example, the number of calls between routines in different modules, possibility of in-lining a first routine in a first module into a second routine in a second module, characteristics of parameters being passed between routines in different modules, etc.Type: ApplicationFiled: January 13, 2004Publication date: July 14, 2005Inventors: XinLiang Li, Shin-Ming Liu, Dhruva Chakrabarti, Robert Hundt
-
Publication number: 20050097527Abstract: One embodiment disclosed relates to a method of compiling a computer program from a plurality of files of source code. An inline analysis determines which call sites in the plurality of files to make inline. An inline transformation performs the inlining within currently opened files. The transformer dynamically determines the order of inlines independent of the analyzer by taking into account the disk input-output pressure during compilation. The resulting inline order minimizes the input and output of files from and to disk respectively by considering the inline affinity between files and maintains the best run-time performance by preserving the dependences between call sites. During the inline transformation, a determination of which files to open and close is made in dependence on an affinity weighting between the files.Type: ApplicationFiled: October 31, 2003Publication date: May 5, 2005Inventors: Dhruva Chakrabarti, Shin-Ming Liu
-
Publication number: 20050097528Abstract: One embodiment disclosed relates to a method of compiling a computer program. A plurality of modules of source code is received, and intermediate representations corresponding to the modules are generated. A set of data from the intermediate representations is extracted to create an inliner summary for each module. Using the inliner summaries and a globally-sorted working-list based order, an inline analysis phase determines which call sites in the modules are to be inlined by substituting code from a called module. The propagation of summaries may be done elaborately, potentially throughout the call-graph. The goodness of call sites may be computed with a view to comparing them and ordering them in a descending order of goodness.Type: ApplicationFiled: October 31, 2003Publication date: May 5, 2005Inventors: Dhruva Chakrabarti, Shin-Ming Liu
-
Publication number: 20050097533Abstract: One embodiment disclosed presents a framework for performing inline specialization with the aim of improving run-time performance at a low compile-time cost. Given a call-graph, if multiple call-chains in it have at least one common call site, the ability, to inline a common call site in one or more (but not all) of the call-chains, is termed inline specialization. In accordance with an embodiment disclosed, our framework implements this functionality by adding new call sites to the program as and when necessary. This leads to the introduction of a dependence relationship between call sites. An inline analyzer in accordance with the embodiment requires materialization of summary information for these new edges and considers them for inlines. The inline transformation phase uses the dependence relationship to patch up the intermediate representation on the dependent edges before inlining them, if necessary.Type: ApplicationFiled: October 31, 2003Publication date: May 5, 2005Inventors: Dhruva Chakrabarti, Shin-Ming Liu
-
Publication number: 20040068719Abstract: The present disclosure relates to whole program analysis and, more particularly, short data optimization obtained through whole program analysis. In one embodiment, short data optimization is achieved by analyzing the program to estimate the size of existing short data and the size of any linkage tables, providing the size estimates to a compiler that is to compile the program, and compiling the program with the compiler in view of the size estimates such that a relatively large amount of data is allocated to a short data area.Type: ApplicationFiled: October 4, 2002Publication date: April 8, 2004Inventors: Shin-Ming Liu, Dmitry Mikulin, Muralitharan Vijayasundaram, David Xinliang Li
-
Publication number: 20040064809Abstract: Disclosed are systems and methods for optimizing a program.Type: ApplicationFiled: September 26, 2002Publication date: April 1, 2004Inventors: Shin-Ming Liu, Dmitry Mikulin, Muralitharan Vijayasundaram, David Xinliang Li
-
Patent number: 6301704Abstract: A method, system, and computer product uses a hashed static single assignment (SSA) form as a program representation and a medium for performing global scalar optimization. A compiler, after expressing the computer program in SSA form, can perform one or more static single assignment (SSA)-based, SSA-preserving global scalar optimization procedures on the SSA representation. Such a procedure modifies, (i.e., optimizes) the SSA representation of the program while preserving the utility of its embedded use-deprogram information for purposes of subsequent SSA-based, SSA-preserving global scalar optimizations. This saves the overhead expense of having to explicitly regenerate use-def program information for successive SSA-based, SSA-preserving global scalar optimizations.Type: GrantFiled: June 16, 1998Date of Patent: October 9, 2001Assignee: Silicon Graphics, Inc.Inventors: Frederick Chow, Sun Chan, Peter Dahl, Robert Kennedy, Shin-Ming Liu, Raymond Lo, Mark Streich, Peng Tu
-
Patent number: 6131189Abstract: A system and method for an optimizer of a compilation suite for representing aliases and indirect memory operations in static single assignment (SSA) during compilation of a program having one or more basic blocks of source code. The optimizer converts all scalar variables of said program to SSA form, wherein said SSA form includes a plurality of variable versions, zero or more occurrences of a .chi. function, zero or more occurences of a .phi. function, and zero or more occurrences of a .mu. function. The .chi. function, .phi. function, and .mu. function are inserted for the variable versions. The optimizer also determines whether a variable version can be renamed to a zero version, and upon such a determination, the optimizer renames the variable version to a zero version.Type: GrantFiled: November 26, 1997Date of Patent: October 10, 2000Assignee: Silicon Graphics, Inc.Inventors: Frederick Chow, Sun Chan, Shin-Ming Liu, Raymond Lo, Mark Streich
-
Patent number: 6128775Abstract: A method, system, and computer program product for performing register promotion, that optimizes placement of load and store operations of a computer program within a compiler. Based on the observation that the circumstances for promoting a memory location's value to register coincide with situations where the program exhibits partial redundancy between accesses to the memory location, the system is an approach to register promotion that models the optimization as two separate problems: (1) the partial redundancy elimination (PRE) of loads and (2) the PRE of stores. Both of these problems are solved through a sparse approach to PRE. The static single assignment PRE (SSAPRE) method for eliminating partial redundancy using a sparse SSA representation representations the foundation in eliminating redundancy among memory accesses, enabling the achievement of both computational and live range optimality in register promotion results.Type: GrantFiled: June 16, 1998Date of Patent: October 3, 2000Assignee: Silicon Graphics, IncorporatedInventors: Frederick Chow, Robert Kennedy, Shin-Ming Liu, Raymond Lo, Peng Tu, Sun C. Chan
-
Patent number: 6026241Abstract: Partial redundancy elimination of a computer program is described that operates using a static single assignment (SSA) representation of a computer program. The SSA representation of the computer program is processed to eliminate partially redundant expressions in the computer program. This processing involves inserting .PHI. functions for expressions where different values of the expressions reach common points in the computer program. A result of each of the .PHI. functions is stored in a hypothetical variable h. The processing also involves a renaming step where SSA versions are assigned to hypothetical variables h in the computer program, a down safety step of determining whether each .PHI. function in the computer program is down safe, and a will be available step of determining whether each expression in the computer program will be available at each .PHI. function following eventual insertion of code into the computer program for purposes of partial redundancy elimination.Type: GrantFiled: June 13, 1997Date of Patent: February 15, 2000Assignee: Silicon Graphics, Inc.Inventors: Frederick Chow, Sun Chan, Robert Kennedy, Shin-Ming Liu, Raymond Lo, Peng Tu