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: 8312462Abstract: 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: GrantFiled: August 31, 2009Date of Patent: November 13, 2012Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Patent number: 8141091Abstract: 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: GrantFiled: October 2, 2007Date of Patent: March 20, 2012Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Chistopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
-
Patent number: 8042114Abstract: 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: GrantFiled: December 12, 2007Date of Patent: October 18, 2011Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Chistopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
-
Patent number: 7844781Abstract: 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: GrantFiled: February 23, 2006Date of Patent: November 30, 2010Assignee: International Business Machines CorporationInventors: Michael J. Corrigan, Paul LuVerne Godtland, Richard Karl Kirkman, Wade Byron Ouren, George David Timms, Jr.
-
Publication number: 20100229177Abstract: 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: ApplicationFiled: August 31, 2009Publication date: September 9, 2010Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Patent number: 7743222Abstract: 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: GrantFiled: April 8, 2008Date of Patent: June 22, 2010Assignee: International Business Machines CorporationInventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
-
Patent number: 7584476Abstract: 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: GrantFiled: March 4, 2004Date of Patent: September 1, 2009Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Patent number: 7574708Abstract: 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: GrantFiled: March 4, 2004Date of Patent: August 11, 2009Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
-
Publication number: 20080215845Abstract: 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: ApplicationFiled: April 8, 2008Publication date: September 4, 2008Inventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
-
Patent number: 7356655Abstract: 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: GrantFiled: May 15, 2003Date of Patent: April 8, 2008Assignee: International Business Machines CorporationInventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
-
Patent number: 7334230Abstract: 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: GrantFiled: March 31, 2003Date of Patent: February 19, 2008Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
-
Patent number: 7266540Abstract: 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: GrantFiled: March 4, 2004Date of Patent: September 4, 2007Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen
-
Patent number: 7137120Abstract: 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: GrantFiled: December 17, 2001Date of Patent: November 14, 2006Assignee: International Business Machines CorporationInventors: 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: 20050210468Abstract: 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: ApplicationFiled: March 4, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Publication number: 20050198642Abstract: 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: ApplicationFiled: March 4, 2004Publication date: September 8, 2005Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen
-
Publication number: 20040230762Abstract: 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: ApplicationFiled: May 15, 2003Publication date: November 18, 2004Applicant: International Business Machines CorporationInventors: Kenneth Roger Allen, Richard Karl Kirkman, Patrick Joseph McCarthy, Wade Byron Ouren
-
Publication number: 20040194098Abstract: 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: ApplicationFiled: March 31, 2003Publication date: September 30, 2004Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Lynn Keat Chung, Christopher Francois, Richard Karl Kirkman, Henry Joseph May, Patrick Joseph McCarthy, Don Darrell Reed, Kenneth Charles Vossen
-
Publication number: 20030114949Abstract: 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: ApplicationFiled: December 17, 2001Publication date: June 19, 2003Applicant: International Business Machines CorporationInventors: 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: 6581063Abstract: 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: GrantFiled: June 15, 2000Date of Patent: June 17, 2003Assignee: International Business Machines CorporationInventor: Richard Karl Kirkman
-
Patent number: 6574721Abstract: 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: GrantFiled: August 31, 1999Date of Patent: June 3, 2003Assignee: International Business Machines CorporationInventors: Patrick James Christenson, Brian Eldridge Clark, Michael J. Corrigan, Paul LuVerne Godtland, Richard Karl Kirkman, Donald Arthur Morrison, Scott Alan Plaetzer