Patents by Inventor Kelvin D. Nilsen
Kelvin D. Nilsen 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: 11556374Abstract: Compiler-optimized context switching may include receiving an instruction indicating a preferred preemption point comprising an instruction address; storing the preferred preemption point in a data structure; determining, based on the data structure, that the preferred preemption point has been reached by a first thread; determining that preemption of the first thread for a second thread has been requested; and performing a context switch to the second thread.Type: GrantFiled: February 15, 2019Date of Patent: January 17, 2023Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Kelvin D. Nilsen
-
Patent number: 11550714Abstract: Functions of an application may include multiple implementations that have corresponding behaviors but perform different garbage collection-related activities such that the different implementations may be executed during different garbage collection phases to reduce overall garbage collection overhead during application execution.Type: GrantFiled: April 15, 2019Date of Patent: January 10, 2023Assignee: International Business Machines CorporationInventor: Kelvin D. Nilsen
-
Patent number: 10936483Abstract: A hybrid hybrid garbage collection methodology may be used to perform garbage collection in a manner that consolidates live objects from an evacuation region of memory into a consolidation region of memory, while also reclaiming reclaimable objects from the consolidation region, such that upon completion of a garbage collection pass, reclaimable objects from both the evacuation and consolidation regions are reclaimed while live objects from both the evacuation and consolidation regions are consolidated in the consolidation region.Type: GrantFiled: April 15, 2019Date of Patent: March 2, 2021Assignee: International Business Machines CorporationInventor: Kelvin D. Nilsen
-
Patent number: 10884785Abstract: Methods and apparatus for processor time accounting for a thread executing in a multi-threaded environment are disclosed. A thread executing in an operating system receives from an operating system an allotment of time for use of a processor, and performs timed computations using the processor. Iteratively or after completing the computations, the thread determines an amount of time used by the thread based on a thread utilization counter initialized by the operating. The thread makes this determination through a user-level library function call rather than a call to the operating. The thread obtains an amount of time remaining in the allotment of time by comparing the thread utilization counter to a current CPU time using a user-level library function call.Type: GrantFiled: November 29, 2018Date of Patent: January 5, 2021Assignee: International Business Machines CorporationInventor: Kelvin D. Nilsen
-
Patent number: 10831400Abstract: According to one or more embodiments described herein, a method for pause-less garbage collection includes selecting, by a garbage collector, for garbage collection, a process thread that is executing a process. The method further includes causing a first activation frame that is associated with a first method to be scanned, either by a garbage collector thread or by the process thread that is presently executing. The method further includes instructing the process thread to subsequently scan a second pause-less activation frame that is associated with a second method from a process that the process thread is presently executing. The method further includes scanning using a garbage collector thread, a third pause-less activation frame that is associated with a third method from the process, wherein scanning a pause-less activation frame includes examining and overwriting one or more live pointers from a method corresponding to said pause-less activation frame being scanned.Type: GrantFiled: August 21, 2019Date of Patent: November 10, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Kelvin D. Nilsen
-
Publication number: 20200327051Abstract: A hybrid hybrid garbage collection methodology may be used to perform garbage collection in a manner that consolidates live objects from an evacuation region of memory into a consolidation region of memory, while also reclaiming reclaimable objects from the consolidation region, such that upon completion of a garbage collection pass, reclaimable objects from both the evacuation and consolidation regions are reclaimed while live objects from both the evacuation and consolidation regions are consolidated in the consolidation region.Type: ApplicationFiled: April 15, 2019Publication date: October 15, 2020Inventor: Kelvin D. Nilsen
-
Publication number: 20200327052Abstract: Functions of an application may include multiple implementations that have corresponding behaviors but perform different garbage collection-related activities such that the different implementations may be executed during different garbage collection phases to reduce overall garbage collection overhead during application execution.Type: ApplicationFiled: April 15, 2019Publication date: October 15, 2020Inventor: Kelvin D. Nilsen
-
Publication number: 20200272444Abstract: Improvements in the placement of explicit preemption points into compiled code are disclosed. A control flow graph is created, from executable code, that includes every control path in a function. From the control flow graph, an estimated execution time for each control path is determined. For each control path, it is determined whether an estimated execution time of a control path exceeds a preemption latency parameter, wherein the preemption latency parameter is a maximum allowable time between preemption points. When it is determined that the estimated execution time of a particular control path violates the preemption latency parameter, an explicit preemption point is placed into the executable code that satisfies the preemption latency parameter.Type: ApplicationFiled: February 22, 2019Publication date: August 27, 2020Inventor: KELVIN D. NILSEN
-
Publication number: 20200264880Abstract: Compiler-optimized context switching may include receiving an instruction indicating a preferred preemption point comprising an instruction address; storing the preferred preemption point in a data structure; determining, based on the data structure, that the preferred preemption point has been reached by a first thread; determining that preemption of the first thread for a second thread has been requested; and performing a context switch to the second thread.Type: ApplicationFiled: February 15, 2019Publication date: August 20, 2020Inventor: Kelvin D. Nilsen
-
Patent number: 10691487Abstract: A method comprises receiving a non-privileged disable interrupts instruction from a user application executing in user space, the non-privileged disable interrupts instruction having an operand with a non-zero value; determining a value in a special purpose register associated with disabling interrupts; and in response to determining that the value in the special purpose register associated with disabling interrupts is zero, disabling interrupts and placing the non-zero value of the operand in the special purpose register associated with disabling interrupts.Type: GrantFiled: April 25, 2018Date of Patent: June 23, 2020Assignee: International Business Machines CorporationInventor: Kelvin D. Nilsen
-
Publication number: 20200174827Abstract: Methods and apparatus for processor time accounting for a thread executing in a multi-threaded environment are disclosed. A thread executing in an operating system receives from an operating system an allotment of time for use of a processor, and performs timed computations using the processor. Iteratively or after completing the computations, the thread determines an amount of time used by the thread based on a thread utilization counter initialized by the operating. The thread makes this determination through a user-level library function call rather than a call to the operating. The thread obtains an amount of time remaining in the allotment of time by comparing the thread utilization counter to a current CPU time using a user-level library function call.Type: ApplicationFiled: November 29, 2018Publication date: June 4, 2020Inventor: KELVIN D. NILSEN
-
Publication number: 20190391753Abstract: According to one or more embodiments described herein, a method for pause-less garbage collection includes selecting, by a garbage collector, for garbage collection, a process thread that is executing a process. The method further includes causing a first activation frame that is associated with a first method to be scanned, either by a garbage collector thread or by the process thread that is presently executing. The method further includes instructing the process thread to subsequently scan a second pause-less activation frame that is associated with a second method from a process that the process thread is presently executing. The method further includes scanning using a garbage collector thread, a third pause-less activation frame that is associated with a third method from the process, wherein scanning a pause-less activation frame includes examining and overwriting one or more live pointers from a method corresponding to said pause-less activation frame being scanned.Type: ApplicationFiled: August 21, 2019Publication date: December 26, 2019Inventor: KELVIN D. NILSEN
-
Publication number: 20190332446Abstract: A method comprises receiving a non-privileged disable interrupts instruction from a user application executing in user space, the non-privileged disable interrupts instruction having an operand with a non-zero value; determining a value in a special purpose register associated with disabling interrupts; and in response to determining that the value in the special purpose register associated with disabling interrupts is zero, disabling interrupts and placing the non-zero value of the operand in the special purpose register associated with disabling interrupts.Type: ApplicationFiled: April 25, 2018Publication date: October 31, 2019Inventor: Kelvin D. Nilsen
-
Patent number: 10459656Abstract: According to one or more embodiments described herein, a method for pause-less garbage collection includes selecting, by a garbage collector, for garbage collection, a process thread that is executing a process. The method further includes causing a first activation frame that is associated with a first method to be scanned, either by a garbage collector thread or by the process thread that is presently executing. The method further includes instructing the process thread to subsequently scan a second pause-less activation frame that is associated with a second method from a process that the process thread is presently executing. The method further includes scanning using a garbage collector thread, a third pause-less activation frame that is associated with a third method from the process, wherein scanning a pause-less activation frame includes examining and overwriting one or more live pointers from a method corresponding to said pause-less activation frame being scanned.Type: GrantFiled: June 25, 2018Date of Patent: October 29, 2019Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Kelvin D. Nilsen
-
Patent number: 6438573Abstract: The invention is a real-time programming method (RTPM) for use in writing application programs to be executed by virtual machines and a method practiced by a real-time virtual machine (RTVM) while executing an application program written in accordance with a real-time programming method. The invention also includes a method for translating an RTPM programming language into a second programming language, the RTPM programming language being an extended version of the second programming language. The RTPM programming language includes real-time code expressions for specifying real-time execution requirements. The method of translating the real-time code expressions is such that the execution of a second-language translation of a RTPM-language application program complies with the real-time execution requirements on a best-effort basis. The RTPM utilizes a configure method and a negotiate method.Type: GrantFiled: October 9, 1996Date of Patent: August 20, 2002Assignee: Iowa State University Research Foundation, Inc.Inventor: Kelvin D. Nilsen
-
Patent number: 6138202Abstract: The object space manager circuit is a device used in computer memory systems for determining the address of the first word of an object, given the address of any other word in the same object. It consists of a first-object-word encoding circuit, a memory circuit, and a first-object-word decoding circuit. The encoding circuit utilizes a hierarchical coding system to generate codes that relate the address of a first object word to any other object word. This particular coding system results in codes that are the same for particular ranges of object word addresses. The codes are stored in the memory circuit which permits the entry of a code at each address of a specified range of memory addresses to be accomplished simultaneously. The decoding circuit utilizes an input object-word address to retrieve the associated codes from the memory and then translates these codes into the address of the first object word.Type: GrantFiled: January 4, 1994Date of Patent: October 24, 2000Assignee: Iowa State University Research Foundation, Inc.Inventor: Kelvin D. Nilsen
-
Patent number: 6081665Abstract: The invention is a method for use in executing portable virtual machine computer programs under real-time constraints. The invention includes a method for implementing a single abstract virtual machine execution stack with multiple independent stacks in order to improve the efficiency of distinguishing memory pointers from non-pointers. Further, the invention includes a method for rewriting certain of the virtual machine instructions into a new instruction set that more efficiently manipulates the multiple stacks. Additionally, using the multiple-stack technique to identify pointers on the run-time stack, the invention includes a method for performing efficient defragmenting real-time garbage collection using a mostly stationary technique.Type: GrantFiled: December 19, 1997Date of Patent: June 27, 2000Assignee: Newmonics Inc.Inventors: Kelvin D. Nilsen, Simanta Mitra, Steven J. Lee
-
Patent number: 5819304Abstract: The invention is a random access memory assembly which is a key component of an object space manager which in turn is a key circuit in a garbage-collecting control unit for a computer system. An object space manager provides the means for deriving pointers to headers of objects from pointers to internal data of objects. The object space manager comprises an encoder that generates an object locator code for each memory cell in which an object is resident, a random access memory assembly for storing the object locator codes for all memory cells in which objects are resident, and an object locator which identifies the memory cell containing the header of an object by means of the object locator code for any memory cell occupied by the object.Type: GrantFiled: March 24, 1997Date of Patent: October 6, 1998Assignee: Iowa State University Research Foundation, Inc.Inventors: Kelvin D. Nilsen, William Schmidt
-
Patent number: 5692185Abstract: The garbage-collecting memory module (GCMM) functions much like traditional memory in a computer system, thereby permitting the invention to be utilized with a wide variety of computers. It differs from traditional memory in that it automatically cleanses itself of garbage while functioning as traditional memory without causing excessive delays in the execution of application programs by an associated computer. The GCMM can be designed to interface with a computer system via a traditional memory bus and to communicate with the central processing unit (CPU) of the computer using standard communication protocols. The GCMM is comprised of a memory, a means for communicating with the CPU, and a garbage-collecting control unit. The garbage-collecting control unit gives top priority to satisfying the computer's requests for memory services. The collection of garbage takes place during the intervals between memory service requests.Type: GrantFiled: January 29, 1996Date of Patent: November 25, 1997Assignee: Iowa State University Research Foundation, Inc.Inventors: Kelvin D. Nilsen, William Schmidt
-
Patent number: 5687368Abstract: The CPU-controlled garbage-collecting memory module (CPU-C GCMM) is essentially an intelligent memory that connects to a central processing unit (CPU) and performs the routine and repetitive tasks associated with a spectrum of garbage-collecting techniques under the direction and control of the CPU. The CPU-C GCMM performs its garbage-collecting tasks as background tasks to be performed when the CPU-C GCMM is not burdened with the ordinary fetch and store operations necessitated by the application programs being run on the CPU. The CPU-C GCMM can be structured in a variety of ways. One species which embodies the essence of the invention includes a memory and a memory controller which provides the means for reading data from and writing data to the memory. The memory controller receives fetch requests directly from the CPU and returns the requested data immediately even though the data may be incorrect in certain instances.Type: GrantFiled: July 22, 1994Date of Patent: November 11, 1997Assignee: Iowa State University Research Foundation, Inc.Inventor: Kelvin D. Nilsen