Patents by Inventor Mark Richard Nutter

Mark Richard Nutter 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).

  • Publication number: 20080162906
    Abstract: An approach to hiding memory latency in a multi-thread environment is presented. Branch Indirect and Set Link (BISL) and/or Branch Indirect and Set Link if External Data (BISLED) instructions are placed in thread code during compilation at instances that correspond to a prolonged instruction. A prolonged instruction is an instruction that instigates latency in a computer system, such as a DMA instruction. When a first thread encounters a BISL or a BISLED instruction, the first thread passes control to a second thread while the first thread's prolonged instruction executes. In turn, the computer system masks the latency of the first thread's prolonged instruction. The system can be optimized based on the memory latency by creating more threads and further dividing a register pool amongst the threads to further hide memory latency in operations that are highly memory bound.
    Type: Application
    Filed: March 15, 2008
    Publication date: July 3, 2008
    Inventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L Minor, Mark Richard Nutter
  • Publication number: 20080162834
    Abstract: A task queue manager manages the task queues corresponding to virtual devices. When a virtual device function is requested, the task queue manager determines whether an SPU is currently assigned to the virtual device task. If an SPU is already assigned, the request is queued in a task queue being read by the SPU. If an SPU has not been assigned, the task queue manager assigns one of the SPUs to the task queue. The queue manager assigns the task based upon which SPU is least busy as well as whether one of the SPUs recently performed the virtual device function. If an SPU recently performed the virtual device function, it is more likely that the code used to perform the function is still in the SPU's local memory and will not have to be retrieved from shared common memory using DMA operations.
    Type: Application
    Filed: March 15, 2008
    Publication date: July 3, 2008
    Inventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L. Minor, Mark Richard Nutter, VanDung Dang To
  • Patent number: 7395174
    Abstract: A computer implemented method, data processing system, and computer usable code are provided for generation of software thermal profiles for applications executing on a set of processors using thermal sampling. Sampling is performed of the thermal states of the set of processors for the set of workloads to create sampled information. A thermal index is then generated based on the sampled information.
    Type: Grant
    Filed: November 29, 2005
    Date of Patent: July 1, 2008
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Charles Ray Johns, Mark Richard Nutter, James Michael Stafford
  • Publication number: 20080155203
    Abstract: Grouping processors is presented. A processing unit (PU) initiates an application and identifies the application's requirements. The PU assigns one or more synergistic processing units (SPUs) and a memory space to the application in the form of a group. The application specifies whether the task requires shared memory or private memory. Shared memory is a memory space that is accessible by the SPUs and the PU. Private memory, however, is a memory space that is only accessible by the SPUs that are included in the group. When the application executes, the resources within the group are allocated to the application's execution thread. Each group has its own group properties, such as address space, policies (i.e. real-time, FIFO, run-to-completion, etc.) and priority (i.e. low or high). These group properties are used during thread execution to determine which groups take precedence over other tasks.
    Type: Application
    Filed: March 4, 2008
    Publication date: June 26, 2008
    Inventors: Maximino Aguilar, Michael Norman Day, Mark Richard Nutter, James Xenidis
  • Patent number: 7392511
    Abstract: A program is into at least two object files: one object file for each of the supported processor environments. During compilation, code characteristics, such as data locality, computational intensity, and data parallelism, are analyzed and recorded in the object file. During run time, the code characteristics are combined with runtime considerations, such as the current load on the processors and the size of the data being processed, to arrive at an overall value. The overall value is then used to determine which of the processors will be assigned the task. The values are assigned based on the characteristics of the various processors. For example, if one processor is better at handling intensive computations against large streams of data, programs that are highly computationally intensive and process large quantities of data are weighted in favor of that processor. The corresponding object is then loaded and executed on the assigned processor.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: June 24, 2008
    Assignee: International Business Machines Corporation
    Inventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L Minor, Mark Richard Nutter
  • Patent number: 7389508
    Abstract: A system and method for grouping processors is presented. A processing unit (PU) initiates an application and identifies the application's requirements. The PU assigns one or more synergistic processing units (SPUs) and a memory space to the application in the form of a group. The application specifies whether the task requires shared memory or private memory. Shared memory is a memory space that is accessible by the SPUs and the PU. Private memory, however, is a memory space that is only accessible by the SPUs that are included in the group. When the application executes, the resources within the group are allocated to the application's execution thread. Each group has its own group properties, such as address space, policies (i.e. real-time, FIFO, run-to-completion, etc.) and priority (i.e. low or high). These group properties are used during thread execution to determine which groups take precedence over other tasks.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: June 17, 2008
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Michael Norman Day, Mark Richard Nutter, James Xenidis
  • Patent number: 7386414
    Abstract: A computer implemented method, data processing system, and computer usable code are provided for generation of hardware thermal profiles for a set of processors. Sampling is performed of the thermal states of the set of processors during the execution of a set of workloads to create sampled information. The sampled information and thermal characteristics of the set of processors are combined and a thermal index is generated based on the sampled information and characteristics of the set of processors.
    Type: Grant
    Filed: November 29, 2005
    Date of Patent: June 10, 2008
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Charles Ray Johns, Mark Richard Nutter, James Michael Stafford
  • Publication number: 20080065907
    Abstract: A system and method for securely restoring software program context is presented. A special purpose processor core is included in a heterogeneous processing environment where each processor can access a shared memory. The isolated special purpose processor core includes an isolated local memory. The isolated special purpose processor core receives an identifier corresponding to the secured program. The identifier is used to read an encrypted context of the secured program from the shared memory. The encrypted context is decrypted using an encryption key. The decrypted context is stored in the isolated special purpose processor core's local memory. The secured program's context integrity is verified by using a persistent security data that is retrieved from a secure location, such as a persistent storage register that can only be accessed when the special purpose processor core is running in isolation mode. If the context is verified, the secured program is executed.
    Type: Application
    Filed: September 12, 2006
    Publication date: March 13, 2008
    Inventors: Mark Richard Nutter, Kanna Shimizu
  • Publication number: 20080066074
    Abstract: A system, method and program product for securely saving a program context to a shared memory is presented. A secured program running on an special purpose processor core running in isolation mode is interrupted. The isolated special purpose processor core is included in a heterogeneous processing environment, that includes purpose processors and general purpose processor cores that each access a shared memory. In isolation mode, the special purpose processor core's local memory is inaccessible from the other heterogeneous processors. The secured program's context is securely saved to the shared memory using a random persistent security data. The lines of code stored in the isolated special purpose processor core's local memory are read along with data values, such as register settings, set by the secured program. The lines of code and data values are encrypted using the persistent security data, and the encrypted code lines and data values are stored in the shared memory.
    Type: Application
    Filed: September 12, 2006
    Publication date: March 13, 2008
    Inventors: Mark Richard Nutter, Kanna Shimizu
  • Publication number: 20080066075
    Abstract: A system, method and program product that securely saves and restores the context of a secure program loader is presented. An interrupt is sent to a secured program running on an special purpose processor core that is running in isolation mode. The special purpose processor core is included in a heterogeneous processing environment that includes the special purpose processor cores (including the isolated special purpose processor core), and one or more general purpose processors. Each of the processors can access a shared memory. The isolated special purpose processor core includes a local memory that is inaccessible from the other processors. The system encrypts the secured program's context using a randomly generated encryption key and stores the context in the shared memory. A secure loader's context is updated with the generated encryption key and then the secure loader's context is saved to the shared memory.
    Type: Application
    Filed: September 12, 2006
    Publication date: March 13, 2008
    Inventors: Mark Richard Nutter, Kanna Shimizu
  • Patent number: 7318218
    Abstract: A system and method for using a processor thread as a debugger is presented. A computer system boots up and initiates a debugger thread. The debugger thread loads a robust, debugger operating system and executes the debugger operating system. Once the debugger thread is functioning, the debugger thread invokes an operational thread. In turn, the operational thread loads a primary operating system and may run various applications. While the operational thread executes the primary operating system and the applications, the debugger thread monitors the operational thread for proper functionality. When the operational thread crashes or terminates, the debugger thread retrieves operational data from the operational thread and provides the operational data to a software developer for analysis.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: January 8, 2008
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Sidney James Manning, Mark Richard Nutter, James Michael Stafford
  • Patent number: 7290112
    Abstract: A system and method for virtualization of processor resources is presented. A thread is created on a processor and the processor's local memory is mapped into an effective address space. In doing so, the processor's local memory is accessible by other processors, regardless of whether the processor is running. Additional threads create additional local memory mappings into the effective address space. The effective address space corresponds to either a physical local memory or a “soft” copy area. When the processor is running, a different processor may access data that is located in the first processor's local memory from the processor's local storage area. When the processor is not running, a softcopy of the processor's local memory is stored in a memory location (i.e. locked cache memory, pinned system memory, virtual memory, etc.) for other processors to continue accessing.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: October 30, 2007
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Michael Norman Day, Mark Richard Nutter, James Xenidis
  • Patent number: 7240137
    Abstract: A system and method is provided to deliver messages to processors operating in a multi-processing environment. In a multi-processor environment, interrupts are managed by storing events in a queue that correspond to a particular support processor. A main processor decodes an interrupt and determines which support processor generated the interrupt. The main processor then determines whether a kernel or an application should process the interrupt. Interrupts such as page faults, segment faults, and alignment errors are handled by the kernel, while “informational” signals, such as stop and signal requests, halt requests, mailbox requests, and DMC tag complete requests are handled by the application. In addition, multiple identical events are maintained, and event data may be included in the interrupt using the invention described herein.
    Type: Grant
    Filed: August 26, 2004
    Date of Patent: July 3, 2007
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Michael Norman Day, Mark Richard Nutter, James Michael Stafford
  • Patent number: 7240182
    Abstract: A system and method for providing a persistent function server is provided. A multi-processor environment uses an interface definition language (idl) file to describe a particular function, such as an “add” function. A compiler uses the idl file to generate source code for use in marshalling and de-marshalling data between a main processor and a support processor. A header file is also created that corresponds to the particular function. The main processor includes parameters in the header file and sends the header file to the support processor. For example, a main processor may include two numbers in an “add” header file and send the “add” header file to a support processor that is responsible for performing math functions. In addition, the persistent function server capability of the support processor is programmable such that the support processor may be assigned to execute unique and complex functions.
    Type: Grant
    Filed: September 16, 2004
    Date of Patent: July 3, 2007
    Assignee: International Business Machines Corporation
    Inventors: Michael Norman Day, Mark Richard Nutter, VanDung Dang To
  • Patent number: 7236998
    Abstract: A method and system for solving a large system of dense linear equations using a system having a processing unit and one or more secondary processing units that can access a common memory for sharing data. A set of coefficients corresponding to a system of linear equations is received, and the coefficients, after being placed in matrix form, are divided into blocks and loaded into the common memory. Each of the processors is programmed to perform matrix operations on individual blocks to solve the linear equations. A table containing a list of the matrix operations is created in the common memory to keep track of the operations that have been performed and the operations that are still pending. SPUs determine whether tasks are pending, access the coefficients by accessing the common memory, perform the required tasks, and store the result back in the common memory for the result to be accessible by the PU and the other SPUs.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: June 26, 2007
    Assignee: International Business Machines Corporation
    Inventors: Mark Richard Nutter, VanDung Dang To
  • Patent number: 7212199
    Abstract: A system and method for terrain rendering using a limited memory footprint is presented. A system and method to perform vertical ray terrain rendering by using a terrain data subset for image point value calculations. Terrain data is segmented into terrain data subsets whereby the terrain data subsets are processed in parallel. A bottom view ray intersects the terrain data to provide a memory footprint starting point. In addition, environmental visibility settings provide a memory footprint ending point. The memory footprint starting point, the memory footprint ending point, and vertical ray adjacent data points define a terrain data subset that corresponds to a particular vertical ray. The terrain data subset includes height and color information which are used for vertical ray coherence terrain rendering.
    Type: Grant
    Filed: June 24, 2004
    Date of Patent: May 1, 2007
    Assignee: International Business Machines Corporation
    Inventors: Gordon Clyde Fossum, Barry L Minor, Mark Richard Nutter
  • Patent number: 7209137
    Abstract: The present invention renders a triangular mesh for employment in graphical displays. The triangular mesh comprises triangle-shaped graphics primitives. The triangle-shaped graphics primitives represent a subdivided triangular shape. Each triangle-shaped graphics primitive shares defined vertices with adjoining triangle-shaped graphics primitives. These shared vertices are transmitted and employed for the rendering of the triangle-shaped graphics primitives.
    Type: Grant
    Filed: September 12, 2002
    Date of Patent: April 24, 2007
    Assignee: International Business Machines Corporation
    Inventors: Daniel Alan Brokenshire, Charles Ray Johns, Barry L. Minor, Mark Richard Nutter
  • Publication number: 20070043916
    Abstract: A system and method for using a handler to detect asynchronous lock line reservation lost events, and switching tasks based upon whether a condition is true or a mutex lock is acquired is presented. A synergistic processing unit (SPU) invokes a first thread and, during execution, the first thread requests external data that is shared with other threads or processors in the system. This shared data may be protected with a mutex lock or other shared memory synchronization constructs. When requested data is not available, the SPU switches to a second thread and monitors lock line reservation lost events in order to check when the data is available. When the data is available, the SPU switches back to the first thread and processes the first thread's request.
    Type: Application
    Filed: August 16, 2005
    Publication date: February 22, 2007
    Inventors: Maximino Aguilar, Michael Norman Day, Mark Richard Nutter
  • Patent number: 7146529
    Abstract: A system and method for a processor thread acting as a system service provider is presented. A computer system boots up and initiates a service thread. The service thread is responsible for service related tasks, such as ECC checks and hardware log error checks. The service provider invokes a second thread which is used as an operational thread. The operational thread loads an operating system, a kernel, and runs various applications. While the operational thread executes, the service thread monitors the operational thread for proper functionality as well as monitoring service events. When the service thread detects a problem with either one of the service events or the operational thread, the service thread may choose to store operational data corresponding to the operational thread and terminates the operational thread.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: December 5, 2006
    Assignee: International Business Machines Corporation
    Inventors: Maximino Aguilar, Jr., Mark Richard Nutter, James Michael Stafford
  • Patent number: 7089373
    Abstract: A method and an apparatus are provided for enhancing lock acquisition in a multiprocessor system. A lock-load instruction is sent from a first processor to a cache. In response, a reservation flag for the first processor is set, and lock data is sent to the first processor. The lock data is placed in target and shadow registers of the first processor. Upon a determination that the lock is taken, the lock-load instruction is resent from the first processor to the cache. Upon a determination that the reservation flag is still set for the first processor, a status-quo signal is sent to the first processor without resending the lock data to the first processor. In response, the lock data is copied from the shadow register to the target register.
    Type: Grant
    Filed: June 12, 2003
    Date of Patent: August 8, 2006
    Assignee: International Business Machines Corporation
    Inventors: Michael Norman Day, Roy Moonseuk Kim, Mark Richard Nutter, Yasukichi Okawa, Thuong Quang Truong