Patents by Inventor Richard Karl Kirkman

Richard Karl Kirkman 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: 8312462
    Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).
    Type: Grant
    Filed: August 31, 2009
    Date of Patent: November 13, 2012
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
  • Patent number: 8141091
    Abstract: An apparatus, program product and method in which application program-specified resource allocation and allocation strength preferences are used to allocate hardware resources from a computer for that application program. The resource allocation preference is used to allocate hardware resources for the application program, while the allocation strength preference is used to determine whether to allocate alternate hardware resources when the resource allocation preference specified by the application program cannot be met.
    Type: Grant
    Filed: October 2, 2007
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Chistopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
  • Patent number: 8042114
    Abstract: An apparatus, program product and method in which application program-specified resource allocation and allocation strength preferences are used to allocate hardware resources from a computer for that application program. The resource allocation preference is used to allocate hardware resources for the application program, while the allocation strength preference is used to determine whether to allocate alternate hardware resources when the resource allocation preference specified by the application program cannot be met.
    Type: Grant
    Filed: December 12, 2007
    Date of Patent: October 18, 2011
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Chistopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
  • Patent number: 7844781
    Abstract: An operating system kernel includes an attach mechanism and a detach mechanism. In addition, processes are tagged with an access attribute identifying the process as either a client process or a server process. Based on the access attribute, the operating system kernel lays out the process local address space differently depending on whether the process is a client process or a server process. A server process can “attach” to a client process and reference all of the client process' local storage as though it were its own. The server process continues to reference its own process local storage, but in addition, it can reference the other storage, using the client process' local addresses. When access to the other storage is no longer needed, the server process can “detach” from the client process. Once detached, the other storage can no longer be referenced.
    Type: Grant
    Filed: February 23, 2006
    Date of Patent: November 30, 2010
    Assignee: International Business Machines Corporation
    Inventors: Michael J. Corrigan, Paul LuVerne Godtland, Richard Karl Kirkman, Wade Byron Ouren, George David Timms, Jr.
  • Publication number: 20100229177
    Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).
    Type: Application
    Filed: August 31, 2009
    Publication date: September 9, 2010
    Applicant: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
  • Patent number: 7743222
    Abstract: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: June 22, 2010
    Assignee: International Business Machines Corporation
    Inventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
  • Patent number: 7584476
    Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).
    Type: Grant
    Filed: March 4, 2004
    Date of Patent: September 1, 2009
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
  • Patent number: 7574708
    Abstract: Disclosed is an apparatus, method, and program product that enables distribution of operating system resources on a nodal basis in the same proportions as the expected system workload. The preferred embodiment of the present invention accomplishes this by assigning various types of weights to each node to represent their proportion of the overall balance within the system. Target Weights represent the desired distribution of the workload based on the existing proportions of processor and memory resources on each node. The actual workload balance on the system is represented by Current Weights, which the operating system strives to keep as close to the Target Weights as possible, on an ongoing basis. When the system is started, operating system services distribute their resources nodally in the same proportions as the Target Weights, and can request to be notified if the Target Weights ever change.
    Type: Grant
    Filed: March 4, 2004
    Date of Patent: August 11, 2009
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
  • Publication number: 20080215845
    Abstract: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.
    Type: Application
    Filed: April 8, 2008
    Publication date: September 4, 2008
    Inventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
  • Patent number: 7356655
    Abstract: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.
    Type: Grant
    Filed: May 15, 2003
    Date of Patent: April 8, 2008
    Assignee: International Business Machines Corporation
    Inventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
  • Patent number: 7334230
    Abstract: An apparatus, program product and method in which application program-specified resource allocation and allocation strength preferences are used to allocate hardware resources from a computer for that application program. The resource allocation preference is used to allocate hardware resources for the application program, while the allocation strength preference is used to determine whether to allocate alternate hardware resources when the resource allocation preference specified by the application program cannot be met.
    Type: Grant
    Filed: March 31, 2003
    Date of Patent: February 19, 2008
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
  • Patent number: 7266540
    Abstract: Disclosed is an apparatus, method, and program product for observing the nodal workload balance of the system on an ongoing basis, and for dynamically changing the preferred nodes of existing threads in order to improve nodal balance. Workload balance is ascertained on a nodal basis and then thread-based workload information is collected. If the detected imbalance persists, the thread-based information is used to change the assignment of preferred nodes to threads to improve nodal workload balance.
    Type: Grant
    Filed: March 4, 2004
    Date of Patent: September 4, 2007
    Assignee: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen
  • Patent number: 7137120
    Abstract: Diagnostic data, such as a time increment corresponding to how long a thread waits to access a shared resource, is stored within a predetermined location in a data structure, such as a hash bucket in a hash table. The location is preferably correlated to the resource such that a display of the diagnostic data may be tailored to reflect a user-specified relationship between the data and resource.
    Type: Grant
    Filed: December 17, 2001
    Date of Patent: November 14, 2006
    Assignee: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Ryan Harvey Bishop, Michael Brian Brutman, Chris Francois, Richard Karl Kirkman, Jay Paul Kurtz, Henry Joseph May, Naresh Nayar, Dennis A. Towne
  • Publication number: 20050210468
    Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).
    Type: Application
    Filed: March 4, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
  • Publication number: 20050198642
    Abstract: Mechanism for Assigning Home Nodes to Newly Created Threads Disclosed is an apparatus, method, and program product for associating threads with the processing nodes of a multi-nodal computer system. The assignment is accomplished by considering both the relative work capacity of, and the relative amount of ongoing work assigned to, each node. Initiation Weights are used in the preferred embodiment to reflect the desired proportions of threads assigned to each node, from the standpoint of which node should be chosen when a new thread is created.
    Type: Application
    Filed: March 4, 2004
    Publication date: September 8, 2005
    Applicant: International Business Machines Corporation
    Inventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen
  • Publication number: 20040230762
    Abstract: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.
    Type: Application
    Filed: May 15, 2003
    Publication date: November 18, 2004
    Applicant: International Business Machines Corporation
    Inventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
  • Publication number: 20040194098
    Abstract: An apparatus, program product and method in which application program-specified resource allocation and allocation strength preferences are used to allocate hardware resources from a computer for that application program. The resource allocation preference is used to allocate hardware resources for the application program, while the allocation strength preference is used to determine whether to allocate alternate hardware resources when the resource allocation preference specified by the application program cannot be met.
    Type: Application
    Filed: March 31, 2003
    Publication date: September 30, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
  • Publication number: 20030114949
    Abstract: Diagnostic data, such as a time increment corresponding to how long a thread waits to access a shared resource, is stored within a predetermined location in a data structure, such as a hash bucket in a hash table. The location is preferably correlated to the resource such that a display of the diagnostic data may be tailored to reflect a user-specified relationship between the data and resource.
    Type: Application
    Filed: December 17, 2001
    Publication date: June 19, 2003
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Ryan Harvey Bishop, Michael Brian Brutman, Chris Francois, Richard Karl Kirkman, Jay Paul Kurtz, Henry Joseph May, Naresh Nayar, Dennis A. Towne
  • Patent number: 6581063
    Abstract: A linked list has an associated auxiliary data structure, containing external references to the linked list which are used by updating tasks. The auxiliary data structure is used to block subsets of the linked list from being altered by other tasks. Preferably, the linked list is doubly-linked, and list maintenance is accomplished using object-oriented programming techniques. The auxiliary data structure is an object, which comprises iterator objects, including inspector objects and mutator objects, blocker objects and view objects. Iterator objects are used by clients to access the linked list externally. An inspector object traverses the list without changing it; while a mutator alters the list, and may traverse it as well. Both inspectors and mutators have associated view objects, which contain the pointers to the actual list elements. Mutators also have associated blocker objects, which block access to selected list elements.
    Type: Grant
    Filed: June 15, 2000
    Date of Patent: June 17, 2003
    Assignee: International Business Machines Corporation
    Inventor: Richard Karl Kirkman
  • Patent number: 6574721
    Abstract: An apparatus and method provide simultaneous local and global addressing capabilities in a computer system. A global address space is defined that may be accessed by all processes. In addition, each process has a local address space that is local (and therefore available) only to that process. An address space processor is implemented in software to perform system functions that distinguish between local addresses and global addresses. In the preferred embodiments, the local address space has a size that is a multiple of the size of a segment of global address space. When the hardware indicates a page fault, the address space processor determines whether the address being translated is a local address or a global address. If the address is a local address, the address space processor uses a local directory to process the page fault. If the address is a global address, the address space processor uses a global directory to process the page fault.
    Type: Grant
    Filed: August 31, 1999
    Date of Patent: June 3, 2003
    Assignee: International Business Machines Corporation
    Inventors: Patrick James Christenson, Brian Eldridge Clark, Michael J. Corrigan, Paul LuVerne Godtland, Richard Karl Kirkman, Donald Arthur Morrison, Scott Alan Plaetzer