Patents by Inventor Barry L. Minor
Barry L. Minor 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: 20090037620Abstract: An apparatus and method for efficient communication of producer/consumer buffer status are provided. With the apparatus and method, devices in a data processing system notify each other of updates to head and tail pointers of a shared buffer region when the devices perform operations on the shared buffer region using signal notification channels of the devices. Thus, when a producer device that produces data to the shared buffer region writes data to the shared buffer region, an update to the head pointer is written to a signal notification channel of a consumer device. When a consumer device reads data from the shared buffer region, the consumer device writes a tail pointer update to a signal notification channel of the producer device. In addition, channels may operate in a blocking mode so that the corresponding device is kept in a low power state until an update is received over the channel.Type: ApplicationFiled: May 27, 2008Publication date: February 5, 2009Applicant: International Business Machines CorporationInventors: Daniel A. Brokenshire, Charles R. Johns, Mark R. Nutter, Barry L. Minor
-
Patent number: 7478390Abstract: 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: GrantFiled: September 25, 2003Date of Patent: January 13, 2009Assignee: International Business Machines CorporationInventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L Minor, Mark Richard Nutter, VanDung Dang To
-
Publication number: 20080297506Abstract: An image is generated that includes ray traced pixel data and rasterized pixel data. A synergistic processing unit (SPU) uses a rendering algorithm to generate ray traced data for objects that require high-quality image rendering. The ray traced data is fragmented, whereby each fragment includes a ray traced pixel depth value and a ray traced pixel color value. A rasterizer compares ray traced pixel depth values to corresponding rasterized pixel depth values, and overwrites ray traced pixel data with rasterized pixel data when the corresponding rasterized fragment is “closer” to a viewing point, which results in composite data. A display subsystem uses the resultant composite data to generate an image on a user's display.Type: ApplicationFiled: July 1, 2008Publication date: December 4, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Gordon Clyde Fossum, Barry L. Minor, VanDung Dang To
-
Publication number: 20080271003Abstract: Computational load is balanced across a plurality of processors. Source code subtasks are compiled into byte code subtasks whereby the byte code subtasks are translated into processor-specific object code subtasks at runtime. The processor-type selection is based upon one of three approaches which are 1) a brute force approach, 2) higher-level approach, or 3) processor availability approach. Each object code subtask is loaded in a corresponding processor type for execution. In one embodiment, a compiler stores a pointer in a byte code file that references the location of a byte code subtask. In this embodiment, the byte code subtask is stored in a shared library and, at runtime, a runtime loader uses the pointer to identify the location of the byte code subtask in order to translate the byte code subtask.Type: ApplicationFiled: June 25, 2008Publication date: October 30, 2008Applicant: International Business Machines CorporationInventors: Barry L. Minor, Mark Richard Nutter, VanDung Dang To
-
Patent number: 7444632Abstract: Source code subtasks are compiled into byte code subtasks whereby the byte code subtasks are translated into processor-specific object code subtasks at runtime. The processor-type selection is based upon one of three approaches which are 1) a brute force approach, 2) higher-level approach, or 3) processor availability approach. Each object code subtask is loaded in a corresponding processor type for execution. In one embodiment, a compiler stores a pointer in a byte code file that references the location of a byte code subtask. In this embodiment, the byte code subtask is stored in a shared library and, at runtime, a runtime loader uses the pointer to identify the location of the byte code subtask in order to translate the byte code subtask.Type: GrantFiled: September 25, 2003Date of Patent: October 28, 2008Assignee: International Business Machines CorporationInventors: Barry L Minor, Mark Richard Nutter, VanDung Dang To
-
Patent number: 7439973Abstract: An image that includes ray traced pixel data and rasterized pixel data is generated. A synergistic processing unit (SPU) uses a rendering algorithm to generate ray traced data for objects that require high-quality image rendering. The ray traced data is fragmented, whereby each fragment includes a ray traced pixel depth value and a ray traced pixel color value. A rasterizer compares ray traced pixel depth values to corresponding rasterized pixel depth values, and overwrites ray traced pixel data with rasterized pixel data when the corresponding rasterized fragment is “closer” to a viewing point, which results in composite data. A display subsystem uses the resultant composite data to generate an image on a user's display.Type: GrantFiled: August 11, 2005Date of Patent: October 21, 2008Assignee: International Business Machines CorporationInventors: Gordon Clyde Fossum, Barry L Minor, VanDung Dang To
-
Publication number: 20080250414Abstract: 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: ApplicationFiled: May 7, 2008Publication date: October 9, 2008Inventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L. Minor, Mark Richard Nutter
-
Publication number: 20080209127Abstract: A system and method for an efficient implementation of a software-managed cache is presented. When an application thread executes on a simple processor, the application thread uses a conditional data select instruction for eliminating a conditional branch instruction when accessing a software-managed cache. An application thread issues a conditional data select instruction (DMA transfer) after a cache directory lookup, wherein the size of the requested data is dependent upon the outcome of the cache directory lookup. When the cache directory lookup results in a cache hit, the application thread requests a transfer of zero bits of data, which results in a DMA controller (DMAC) performing a no-op instruction. When the cache directory lookup results in a cache miss, the application thread requests a data block transfer the size of a corresponding cache line.Type: ApplicationFiled: February 23, 2007Publication date: August 28, 2008Inventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L. Minor, Mark Richard Nutter
-
Publication number: 20080168443Abstract: An approach is provided to allow virtual devices that use a plurality of processors in a multiprocessor systems, such as the BE environment. Using this method, a synergistic processing unit (SPU) can either be dedicated to performing a particular function (i.e., audio, video, etc.) or a single SPU can be programmed to perform several functions on behalf of the other processors in the system. The application, preferably running in one of the primary (PU) processors, issues IOCTL commands through device drivers that correspond to SPUs. The kernel managing the primary processors responds by sending an appropriate message to the SPU that is performing the dedicated function. Using this method, an SPU can be virtualized for swapping multiple tasks or dedicated to performing a particular task.Type: ApplicationFiled: March 14, 2008Publication date: July 10, 2008Inventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L Minor, Mark Richard Nutter
-
Publication number: 20080162906Abstract: 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: ApplicationFiled: March 15, 2008Publication date: July 3, 2008Inventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L Minor, Mark Richard Nutter
-
Publication number: 20080162834Abstract: 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: ApplicationFiled: March 15, 2008Publication date: July 3, 2008Inventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L. Minor, Mark Richard Nutter, VanDung Dang To
-
Publication number: 20080163155Abstract: An approach for managing position independent code using a software framework is presented. A software framework provides the ability to cache multiple plug-in's which are loaded in a processor's local storage. A processor receives a command or data stream from another processor, which includes information corresponding to a particular plug-in. The processor uses the plug-in identifier to load the plug-in from shared memory into local memory before it is required in order to minimize latency. When the data stream requests the processor to use the plug-in, the processor retrieves a location offset corresponding to the plug-in and applies the plug-in to the data stream. A plug-in manager manages an entry point table that identifies memory locations corresponding to each plug-in and, therefore, plug-ins may be placed anywhere in a processor's local memory.Type: ApplicationFiled: March 14, 2008Publication date: July 3, 2008Inventors: Michael Stan Gowen, Barry L. Minor, Mark Richard Nutter, John Kevin Patrick O'Brien
-
Patent number: 7392511Abstract: 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: GrantFiled: September 25, 2003Date of Patent: June 24, 2008Assignee: International Business Machines CorporationInventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L Minor, Mark Richard Nutter
-
Publication number: 20080143743Abstract: Adaptive span computation when ray casting is presented. A processor uses start point fractional values during view screen segment computations that start a view screen segment's computations a particular distance away from a down point. This prevents an excessive sampling density during image generation without wasting processor resources. The processor identifies a start point fractional value for each view screen segment based upon each view screen segment's identifier, and computes a view screen segment start point for each view screen segment using the start point fractional value. View screen segment start points are “tiered” and are a particular distance away from the down point. This stops the view screen segments from converging to a point of severe over sampling while, at the same time, providing a pseudo-uniform sampling density.Type: ApplicationFiled: February 26, 2008Publication date: June 19, 2008Inventors: Gordon Clyde Fossum, Barry L. Minor
-
Patent number: 7363397Abstract: A system and method for a DMA controller with multi-dimensional line-walking functionality is presented. A processor includes an intelligent DMA controller, which loads a line description that corresponds to a shape or line. The intelligent DMA controller moves through a memory map and retrieves data based upon the line description that includes a major step and a minor step. In turn, the intelligent DMA controller retrieves data from the shared memory without assistance from its corresponding processor. In one embodiment, the intelligent DMA controller may analyze a line using the rate of change along its minor axes in conjunction with locations where the line intersects subspaces and store array spans of contiguous memory along the line's major axis.Type: GrantFiled: August 26, 2004Date of Patent: April 22, 2008Assignee: International Business Machines CorporationInventors: Daniel Alan Brokenshire, Gordon Clyde Fossum, Barry L Minor
-
Patent number: 7362330Abstract: A processor uses start point fractional values during view screen segment computations that start a view screen segment's computations a particular distance away from a down point. This prevents an excessive sampling density during image generation without wasting processor resources. The processor identifies a start point fractional value for each view screen segment based upon each view screen segment's identifier, and computes a view screen segment start point for each view screen segment using the start point fractional value. View screen segment start points are “tiered” and are a particular distance away from the down point. This stops the view screen segments from converging to a point of severe over sampling while, at the same time, providing a pseudo-uniform sampling density.Type: GrantFiled: September 15, 2005Date of Patent: April 22, 2008Assignee: International Business Machines CorporationInventors: Gordon Clyde Fossum, Barry L Minor
-
Patent number: 7298377Abstract: A system and method for cache optimized data formatting is presented. A processor generates images by calculating a plurality of image point values using height data, color data, and normal data. Normal data is computed for a particular image point using pixel data adjacent to the image point. The computed normalized data, along with corresponding height data and color data, are included in a limited space data stream and sent to a processor to generate an image. The normalized data may be computed using adjacent pixel data at any time prior to inserting the normalized data in the limited space data stream.Type: GrantFiled: June 24, 2004Date of Patent: November 20, 2007Assignee: International Business Machines CorporationInventors: Gordon Clyde Fossum, Barry L Minor
-
Patent number: 7212199Abstract: 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: GrantFiled: June 24, 2004Date of Patent: May 1, 2007Assignee: International Business Machines CorporationInventors: Gordon Clyde Fossum, Barry L Minor, Mark Richard Nutter
-
Patent number: 7209137Abstract: 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: GrantFiled: September 12, 2002Date of Patent: April 24, 2007Assignee: International Business Machines CorporationInventors: Daniel Alan Brokenshire, Charles Ray Johns, Barry L. Minor, Mark Richard Nutter
-
Patent number: 7113184Abstract: A system and method for terrain rendering using a limited memory footprint is presented. A vertical ray intersects a terrain data map at an angle which includes a minor step size. Weighting factors are assigned to triangular data sampling values and quadrilateral data sampling values based upon a vertical ray's minor step size. As a vertical ray's minor step size increases, a triangular data sampling's weighting factor increases and a quadrilateral data sampling's weighting factor decreases. Weighted triangular data sampling values and weighted quadrilateral data sampling values are combined to generate a vertical ray image point value.Type: GrantFiled: June 24, 2004Date of Patent: September 26, 2006Assignee: International Business Machines CorporationInventors: Gordon Clyde Fossum, Barry L Minor