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: 11556374
    Abstract: 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: Grant
    Filed: February 15, 2019
    Date of Patent: January 17, 2023
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kelvin D. Nilsen
  • Patent number: 11550714
    Abstract: 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: Grant
    Filed: April 15, 2019
    Date of Patent: January 10, 2023
    Assignee: International Business Machines Corporation
    Inventor: Kelvin D. Nilsen
  • Patent number: 10936483
    Abstract: 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: Grant
    Filed: April 15, 2019
    Date of Patent: March 2, 2021
    Assignee: International Business Machines Corporation
    Inventor: Kelvin D. Nilsen
  • Patent number: 10884785
    Abstract: 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: Grant
    Filed: November 29, 2018
    Date of Patent: January 5, 2021
    Assignee: International Business Machines Corporation
    Inventor: Kelvin D. Nilsen
  • Patent number: 10831400
    Abstract: 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: Grant
    Filed: August 21, 2019
    Date of Patent: November 10, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kelvin D. Nilsen
  • Publication number: 20200327051
    Abstract: 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: Application
    Filed: April 15, 2019
    Publication date: October 15, 2020
    Inventor: Kelvin D. Nilsen
  • Publication number: 20200327052
    Abstract: 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: Application
    Filed: April 15, 2019
    Publication date: October 15, 2020
    Inventor: Kelvin D. Nilsen
  • Publication number: 20200272444
    Abstract: 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: Application
    Filed: February 22, 2019
    Publication date: August 27, 2020
    Inventor: KELVIN D. NILSEN
  • Publication number: 20200264880
    Abstract: 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: Application
    Filed: February 15, 2019
    Publication date: August 20, 2020
    Inventor: Kelvin D. Nilsen
  • Patent number: 10691487
    Abstract: 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: Grant
    Filed: April 25, 2018
    Date of Patent: June 23, 2020
    Assignee: International Business Machines Corporation
    Inventor: Kelvin D. Nilsen
  • Publication number: 20200174827
    Abstract: 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: Application
    Filed: November 29, 2018
    Publication date: June 4, 2020
    Inventor: KELVIN D. NILSEN
  • Publication number: 20190391753
    Abstract: 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: Application
    Filed: August 21, 2019
    Publication date: December 26, 2019
    Inventor: KELVIN D. NILSEN
  • Publication number: 20190332446
    Abstract: 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: Application
    Filed: April 25, 2018
    Publication date: October 31, 2019
    Inventor: Kelvin D. Nilsen
  • Patent number: 10459656
    Abstract: 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: Grant
    Filed: June 25, 2018
    Date of Patent: October 29, 2019
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kelvin D. Nilsen
  • Patent number: 6438573
    Abstract: 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: Grant
    Filed: October 9, 1996
    Date of Patent: August 20, 2002
    Assignee: Iowa State University Research Foundation, Inc.
    Inventor: Kelvin D. Nilsen
  • Patent number: 6138202
    Abstract: 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: Grant
    Filed: January 4, 1994
    Date of Patent: October 24, 2000
    Assignee: Iowa State University Research Foundation, Inc.
    Inventor: Kelvin D. Nilsen
  • Patent number: 6081665
    Abstract: 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: Grant
    Filed: December 19, 1997
    Date of Patent: June 27, 2000
    Assignee: Newmonics Inc.
    Inventors: Kelvin D. Nilsen, Simanta Mitra, Steven J. Lee
  • Patent number: 5819304
    Abstract: 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: Grant
    Filed: March 24, 1997
    Date of Patent: October 6, 1998
    Assignee: Iowa State University Research Foundation, Inc.
    Inventors: Kelvin D. Nilsen, William Schmidt
  • Patent number: 5692185
    Abstract: 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: Grant
    Filed: January 29, 1996
    Date of Patent: November 25, 1997
    Assignee: Iowa State University Research Foundation, Inc.
    Inventors: Kelvin D. Nilsen, William Schmidt
  • Patent number: 5687368
    Abstract: 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: Grant
    Filed: July 22, 1994
    Date of Patent: November 11, 1997
    Assignee: Iowa State University Research Foundation, Inc.
    Inventor: Kelvin D. Nilsen