Patents by Inventor Hojin Kee
Hojin Kee 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: 10629161Abstract: Hardware may be created with different clock speeds used for different components of the system. Clock and throughput requirements on the interface circuitry of hardware components may set limits which are lower requirements for functional components. It may be advantageous to use more or fewer of some functional blocks or interface circuits in order to reduce cost, increase performance or reliability, reduce the requirements for additional parts, or other beneficial factors. Accordingly, it may be advantageous to generate hardware utilizing more than a single clock frequency. Generating instructions which indicate different clock frequencies for separate components may be difficult or time consuming; generating these instructions automatically may provide significant benefits in time savings, increased productivity, increased performance of hardware, or other benefits.Type: GrantFiled: August 28, 2017Date of Patent: April 21, 2020Assignee: National Instruments CorporationInventors: Hojin Kee, Tai A. Ly, Adrian P. Deac, Adam T. Arnesen
-
Publication number: 20190341932Abstract: Techniques are disclosed relating to encoding communications using low-density parity check codes, which may be based on an LDPC encoding matrix.Type: ApplicationFiled: July 15, 2019Publication date: November 7, 2019Inventors: David C. Uliana, Newton G. Petersen, Tai A. Ly, Hojin Kee, Adam T. Arnesen, Dustyn K. Blasig, Gandiinaa Gumenjav
-
Patent number: 10367525Abstract: Techniques are disclosed relating to encoding communications. In some embodiments, for different rows of an encoding matrix, the following operations are performed: generate a set of operations for entries in the row, where the set of operations includes respective operations to be performed on the entries for multiplication of the matrix by a vector, propagate values of entries in the encoding matrix into the set of operations, and simplify ones of the set of operations based on the propagated values to generate an output set of operations. In some embodiments, the output sets of operations are usable to encode input data for communication over a medium. In some embodiments, the disclosed techniques facilitate loop unrolling within compiler memory constraints. In some embodiments, an apparatus (e.g., a mobile device) is configured with the output sets of operations.Type: GrantFiled: May 29, 2015Date of Patent: July 30, 2019Assignee: National Instruments CorporationInventors: David C. Uliana, Newton G. Petersen, Tai A. Ly, Hojin Kee, Adam T. Arnesen, Dustyn K. Blasig, Gandiinaa Gumenjav
-
Patent number: 10331361Abstract: Techniques are disclosed relating to self-addressing memory. In one embodiment, an apparatus includes a memory and addressing circuitry coupled to or comprised in the memory. In this embodiment, the addressing circuitry is configured to receive memory access requests corresponding to a specified sequence of memory accesses. In this embodiment, the memory access requests do not include address information. In this embodiment, the addressing circuitry is further configured to assign addresses to the memory access requests for the specified sequence of memory accesses. In some embodiments, the apparatus is configured to perform the memory access requests using the assigned addresses.Type: GrantFiled: January 3, 2017Date of Patent: June 25, 2019Assignee: National Instruments CorporationInventors: Tai A. Ly, Swapnil D. Mhaske, Hojin Kee, Adam T. Arnesen, David C. Uliana, Newton G. Petersen
-
Patent number: 10241764Abstract: System and method for compiling a program, including determining one or more program structures containing one or more variables at the entry and exit of each program structure, wherein each variable specifies a value transfer operation of one or more source variables to a destination variable between outside the program structure and inside the program structure. A subset of the destination variables may be determined for which assigning the destination variable to a memory resource of a corresponding source variable does not disrupt the functionality of the program. Implementation of the value transfer operations may be executable to map each of the determined subset of destination variables to a respective memory resource. The mapping may be dynamically changed, thereby transferring the value from the first source variable to the destination variable without copying the value between the memory resources.Type: GrantFiled: May 5, 2017Date of Patent: March 26, 2019Assignee: National Instruments CorporationInventors: Hojin Kee, David C. Uliana, Tai A. Ly, Adam T. Arnesen
-
Publication number: 20190066626Abstract: Hardware may be created with different clock speeds used for different components of the system. Clock and throughput requirements on the interface circuitry of hardware components may set limits which are lower requirements for functional components. It may be advantageous to use more or fewer of some functional blocks or interface circuits in order to reduce cost, increase performance or reliability, reduce the requirements for additional parts, or other beneficial factors. Accordingly, it may be advantageous to generate hardware utilizing more than a single clock frequency. Generating instructions which indicate different clock frequencies for separate components may be difficult or time consuming; generating these instructions automatically may provide significant benefits in time savings, increased productivity, increased performance of hardware, or other benefits.Type: ApplicationFiled: August 28, 2017Publication date: February 28, 2019Inventors: Hojin Kee, Tai A. Ly, Adrian P. Deac, Adam T. Arnesen
-
Patent number: 10216495Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.Type: GrantFiled: February 1, 2018Date of Patent: February 26, 2019Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
-
Publication number: 20180321925Abstract: System and method for compiling a program, including determining one or more program structures containing one or more variables at the entry and exit of each program structure, wherein each variable specifies a value transfer operation between outside the program structure and inside the program structure. Each value transfer operation may specify a value transfer between a respective one or more source variables and a destination variable. A subset of the destination variables may be determined for which assigning the destination variable to a memory resource of a corresponding source variable does not disrupt the functionality of the program.Type: ApplicationFiled: May 5, 2017Publication date: November 8, 2018Inventors: Hojin Kee, David C. Uliana, Tai A. Ly, Adam T. Arnesen
-
Patent number: 10078456Abstract: Techniques are disclosed relating to resolving memory access hazards. In one embodiment, an apparatus includes a memory and circuitry coupled to or comprised in the memory. In this embodiment, the circuitry is configured to receive a sequence of memory access requests for the memory, where the sequence of memory access requests is configured to access locations associated with entries in a matrix. In this embodiment, the circuitry is configured with memory access constraints for the sequence of memory access requests. In this embodiment, the circuitry is configured to grant the sequence of memory access requests subject to the memory access constraints, thereby avoiding memory access hazards for a sequence of memory accesses corresponding to the sequence of memory access requests.Type: GrantFiled: October 24, 2014Date of Patent: September 18, 2018Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Tai A. Ly, Swapnil D. Mhaske, Hojin Kee, Adam T. Arnesen, David C. Uliana, Newton G. Petersen
-
Publication number: 20180181379Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.Type: ApplicationFiled: February 1, 2018Publication date: June 28, 2018Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
-
Patent number: 9990250Abstract: Techniques are disclosed relating to implementation of LDPC encoding circuitry on a single integrated circuit (IC). In some embodiments, circuitry on a single IC includes message circuitry configured to receive or generate a message to be encoded, encode circuitry configured to perform low density parity check (LDPC) encoding on the message, noise circuitry configured to apply noise to the encoded message, and decode circuitry configured to perform LDPC decoding of the message. In some embodiments, the disclosed techniques may reduce production costs (e.g., by reducing overall chip area), facilitate LDPC testing, and/or provide multiple different functions relating to message transmission on a single chip.Type: GrantFiled: May 29, 2015Date of Patent: June 5, 2018Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: David C. Uliana, James W. McCoy, Newton G. Petersen, Tai A. Ly, Hojin Kee, Adam T. Arnesen
-
Patent number: 9921815Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.Type: GrantFiled: October 14, 2015Date of Patent: March 20, 2018Assignee: National Instruments CorporationInventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
-
Patent number: 9898267Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.Type: GrantFiled: September 27, 2016Date of Patent: February 20, 2018Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche
-
Patent number: 9768805Abstract: Techniques relating to LDPC encoding. A set of operations is produced that is usable to generate an encoded message based on an input message. The set of operations corresponds to operations for entries in a smaller matrix representation that specifies locations of non-zero entries in an LDPC encoding matrix. A mobile device is configured with the set of operations to perform LDPC encoding. Circuitry configured with the set of operations performs LDPC encoding with high performance, relatively small area and/or low power consumption.Type: GrantFiled: May 29, 2015Date of Patent: September 19, 2017Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: David C. Uliana, Newton G. Petersen, Tai A. Ly, Qing Ruan, James C. Nagle, Swapnil D. Mhaske, Hojin Kee, Adam T. Arnesen
-
Patent number: 9740411Abstract: Techniques are disclosed relating to configuring an interlock memory system. In one embodiment, a method includes determining a sequence of memory access requests for a program and generating information specifying memory access constraints based on the sequence of memory accesses, where the information is usable to avoid memory access hazards for the sequence of memory accesses. In this embodiment, the method further includes configuring first circuitry using the information, where the first circuitry is included in or coupled to a memory. In this embodiment, after the configuring, the first circuitry is operable to perform memory access requests to the memory corresponding to the sequence of memory accesses while avoiding the memory access hazards, without receiving other information indicating the memory access hazards.Type: GrantFiled: October 24, 2014Date of Patent: August 22, 2017Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Tai A. Ly, Swapnil D. Mhaske, Hojin Kee, Adam T. Arnesen, David C. Uliana, Newton G. Petersen
-
Patent number: 9733911Abstract: System and method for creating a program. A program may be compiled, including determining one or more value transfer operations in the program. Each value transfer operation may specify a value transfer between a respective one or more source variables and a destination variable. For each of the one or more value transfer operations, the value transfer operation may be implemented, where the implementation of the value transfer operation may be executable to assign each variable of the value transfer operation to a respective memory resource, thereby mapping the variables to the memory resources, and dynamically change the mapping, including assigning the destination variable to the memory resource of a first source variable of the one or more source variables, thereby transferring the value from the first source variable to the destination variable without copying the value between the memory resources.Type: GrantFiled: November 11, 2015Date of Patent: August 15, 2017Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Hojin Kee, Tai A. Ly, David C. Uliana, Adam T. Arnesen, Newton G. Petersen
-
Patent number: 9690550Abstract: When compiling high level, graphical code (e.g. LabVIEW™ code) representative of a design, parts of the code that do not depend on external input data may be executed during the compilation process. Specific variables and/or value traces of specific variables in the program, e.g. constant values and/or repeating patterns may be recorded then analyzed, and certain transformations may be applied in the compilation process according to the results of the analysis, thereby optimizing the design. In one approach, the graph may be dynamically stepped through one node at a time, and it may be determined whether all inputs to the stepped-through node are known. If those inputs are known, type conversion and the operation corresponding to the stepped-through node may be dynamically performed. In another approach, a subset of the graphical code not depending on external data may be compiled and executed, thereby obtaining the same results as described above.Type: GrantFiled: May 5, 2015Date of Patent: June 27, 2017Assignee: NATIONAL INSTRUMENTS CORPORATIONInventors: Hojin Kee, Tai A. Ly, Newton G. Petersen, Jeffrey D. Washington, Haoran Yi, Dustyn K. Blasig
-
Publication number: 20170131984Abstract: System and method for creating a program. A program may be compiled, including determining one or more value transfer operations in the program. Each value transfer operation may specify a value transfer between a respective one or more source variables and a destination variable. For each of the one or more value transfer operations, the value transfer operation may be implemented, where the implementation of the value transfer operation may be executable to assign each variable of the value transfer operation to a respective memory resource, thereby mapping the variables to the memory resources, and dynamically change the mapping, including assigning the destination variable to the memory resource of a first source variable of the one or more source variables, thereby transferring the value from the first source variable to the destination variable without copying the value between the memory resources.Type: ApplicationFiled: November 11, 2015Publication date: May 11, 2017Inventors: Hojin Kee, Tai A. Ly, David C. Uliana, Adam T. Arnesen, Newton G. Petersen
-
Publication number: 20170115885Abstract: Techniques are disclosed relating to self-addressing memory. In one embodiment, an apparatus includes a memory and addressing circuitry coupled to or comprised in the memory. In this embodiment, the addressing circuitry is configured to receive memory access requests corresponding to a specified sequence of memory accesses. In this embodiment, the memory access requests do not include address information. In this embodiment, the addressing circuitry is further configured to assign addresses to the memory access requests for the specified sequence of memory accesses. In some embodiments, the apparatus is configured to perform the memory access requests using the assigned addresses.Type: ApplicationFiled: January 3, 2017Publication date: April 27, 2017Inventors: Tai A. Ly, Swapnil D. Mhaske, Hojin Kee, Adam T. Arnesen, David C. Uliana, Newton G. Petersen
-
Publication number: 20170083299Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.Type: ApplicationFiled: September 27, 2016Publication date: March 23, 2017Inventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche