Patents by Inventor Thomas A. Piazza

Thomas A. Piazza 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: 8072451
    Abstract: Z testing during computer graphics rendering is performed in a manner so as to optimize rendering. The status of a pixel as non-promotable may be tracked using a pixel status array (PSA). Each PSA row may contain bits which correspond to the non-promotable status of pixels. Each row may include five pixels, the first four of which represent the pixels in a subspan. If the row corresponds to a valid subspan, a determination may be made as to whether any pixel in the subspan is represented by a one, indicating that the pixel is non-promotable. This row corresponds to a previous subspan that has been sent down rendering pipeline. If a one is present, then the current subspan may be stalled until the pixels of the previous subspan has gone through color calculation. If, in the row that has just been read, no pixels are represented by a one, then a determination may be made as to whether any pixels in the current subspan are non-promotable.
    Type: Grant
    Filed: December 29, 2004
    Date of Patent: December 6, 2011
    Assignee: Intel Corporation
    Inventors: Thomas Piazza, Eric Samson, Nasseh Akaaboune, Dinakar Munagala
  • Patent number: 7975272
    Abstract: In some embodiments, a method includes receiving a request to generate a thread and supplying a request to a queue in response at least to the received request. The method may further include fetching a plurality of instructions in response at least in part to the request supplied to the queue and executing at least one of the plurality of instructions. In some embodiments, an apparatus includes a storage medium having stored therein instructions that when executed by a machine result in the method. In some embodiments, an apparatus includes circuitry to receive a request to generate a thread and to queue a request to generate a thread in response at least to the received request. In some embodiments, a system includes circuitry to receive a request to generate a thread and to queue a request to generate a thread in response at least to the received request, and a memory unit to store at least one instruction for the thread.
    Type: Grant
    Filed: December 30, 2006
    Date of Patent: July 5, 2011
    Assignee: Intel Corporation
    Inventors: Hong Jiang, Thomas A. Piazza, Brian D. Rauchfuss, Sreedevi Chalasani, Steven J. Spangler
  • Publication number: 20110126208
    Abstract: Multiple parallel passive threads of instructions coordinate access to shared resources using “active” semaphores. The semaphores are referred to as active because the semaphores send messages to execution and/or control circuitry to cause the state of a thread to change. A thread can be placed in an inactive state by a thread scheduler in response to an unresolved dependency, which can be indicated by a semaphore. A thread state variable corresponding to the dependency is used to indicate that the thread is in inactive mode. When the dependency is resolved a message is passed to control circuitry causing the dependency variable to be cleared. In response to the cleared dependency variable the thread is placed in an active state. Execution can proceed on the threads in the active state.
    Type: Application
    Filed: January 24, 2011
    Publication date: May 26, 2011
    Inventors: Hong Jiang, Thomas A. Piazza
  • Patent number: 7904907
    Abstract: Multiple parallel passive threads of instructions coordinate access to shared resources using “active” semaphores. The semaphores are referred to as active because the semaphores send messages to execution and/or control circuitry to cause the state of a thread to change. A thread can be placed in an inactive state by a thread scheduler in response to an unresolved dependency, which can be indicated by a semaphore. A thread state variable corresponding to the dependency is used to indicate that the thread is in inactive mode. When the dependency is resolved a message is passed to control circuitry causing the dependency variable to be cleared. In response to the cleared dependency variable the thread is placed in an active state. Execution can proceed on the threads in the active state.
    Type: Grant
    Filed: December 31, 2003
    Date of Patent: March 8, 2011
    Assignee: Intel Corporation
    Inventors: Hong Jiang, Thomas A. Piazza
  • Patent number: 7719540
    Abstract: A method and apparatus for rendering three-dimensional graphics using a streaming render-cache with a multi-threading, multi-core graphics processor are disclosed. The graphics processor includes a streaming render-cache and render-cache controller to maintain the order in which threads are dispatched to the graphics engine, and to maintain data coherency between the render-cache and the main memory. The render-cache controller blocks threads from being dispatched to the graphics engine out of order by only allowing one sub-span to be in-flight at any given time.
    Type: Grant
    Filed: March 31, 2004
    Date of Patent: May 18, 2010
    Assignee: Intel Corporation
    Inventors: Thomas A. Piazza, Prasoonkumar Surti
  • Publication number: 20100115518
    Abstract: Multiple parallel passive threads of instructions coordinate access to shared resources using “active” and “proactive” semaphores. The active semaphores send messages to execution and/or control circuitry to cause the state of a thread to change. A thread can be placed in an inactive state by a thread scheduler in response to an unresolved dependency, which can be indicated by a semaphore. A thread state variable corresponding to the dependency is used to indicate that the thread is in inactive mode. When the dependency is resolved a message is passed to control circuitry causing the dependency variable to be cleared. In response to the cleared dependency variable the thread is placed in an active state. Execution can proceed on the threads in the active state. A proactive semaphore operates in a similar manner except that the semaphore is configured by the thread dispatcher before or after the thread is dispatched to the execution circuitry for execution.
    Type: Application
    Filed: November 3, 2009
    Publication date: May 6, 2010
    Inventors: Hong Jiang, Thomas A. Piazza
  • Publication number: 20100031268
    Abstract: Techniques are described that can be used to ensure ordered computation and/or retirement of threads in a multithreaded environment. Threads may contain bundled instances of work, each with unique ordering restrictions relative to other instances of work packaged in other threads in the system. When applied to 3D graphics, video and image processing domains allow unrestricted processing of threads until reaching their critical sections. Ordering may be required prior to executing critical sections and beyond.
    Type: Application
    Filed: July 31, 2008
    Publication date: February 4, 2010
    Inventors: Michael K. Dwyer, Robert L. Farrell, Hong Jiang, Thomas A. Piazza
  • Publication number: 20090327641
    Abstract: A method may include distributing ranges of addresses in a memory among a first set of functions in a first pipeline. The first set of the functions in the first pipeline may operate on data using the ranges of addresses. Different ranges of addresses in the memory may be redistributed among a second set of functions in a second pipeline without waiting for the first set of functions to be flushed of data.
    Type: Application
    Filed: September 3, 2009
    Publication date: December 31, 2009
    Inventor: Thomas A. Piazza
  • Patent number: 7614054
    Abstract: Multiple parallel passive threads of instructions coordinate access to shared resources using “active” and “proactive” semaphores. The active semaphores send messages to execution and/or control circuitry to cause the state of a thread to change. A thread can be placed in an inactive state by a thread scheduler in response to an unresolved dependency, which can be indicated by a semaphore. A thread state variable corresponding to the dependency is used to indicate that the thread is in inactive mode. When the dependency is resolved a message is passed to control circuitry causing the dependency variable to be cleared. In response to the cleared dependency variable the thread is placed in an active state. Execution can proceed on the threads in the active state. A proactive semaphore operates in a similar manner except that the semaphore is configured by the thread dispatcher before or after the thread is dispatched to the execution circuitry for execution.
    Type: Grant
    Filed: December 31, 2003
    Date of Patent: November 3, 2009
    Assignee: Intel Corporation
    Inventors: Hong Jiang, Thomas A. Piazza
  • Patent number: 7603544
    Abstract: A method may include distributing ranges of addresses in a memory among a first set of functions in a first pipeline. The first set of the functions in the first pipeline may operate on data using the ranges of addresses. Different ranges of addresses in the memory may be redistributed among a second set of functions in a second pipeline without waiting for the first set of functions to be flushed of data.
    Type: Grant
    Filed: September 12, 2005
    Date of Patent: October 13, 2009
    Assignee: Intel Corporation
    Inventor: Thomas A. Piazza
  • Publication number: 20090248983
    Abstract: A technique to enable information sharing among agents within different cache coherency domains. In one embodiment, a graphics device may use one or more caches used by one or more processing cores to store or read information, which may be accessed by one or more processing cores in a manner that does not affect programming and coherency rules pertaining to the graphics device.
    Type: Application
    Filed: March 28, 2008
    Publication date: October 1, 2009
    Inventors: Zeev Offen, Ariel Berkovits, Thomas A. Piazza, Robert L. Farrell, Altug Koker, Opher Kahn
  • Patent number: 7532765
    Abstract: Methods, apparatus and computer readable medium are described that compress and/or decompress digital images in a lossless or a lossy manner. In some embodiments, a display controller may quantize pels of a digital image and may identify runs of successive quantized pels which are equal. The display controller may generate a symbol to represent an identified run of pels. The symbol may comprise a run length and a quantized pel that may be used to reconstruct the run of pels. The symbol may further comprise an error vector for each of the pels of the run that may be used to further reconstruct the run of pels.
    Type: Grant
    Filed: December 30, 2002
    Date of Patent: May 12, 2009
    Assignee: Intel Corporation
    Inventors: Michael K. Dwyer, Thomas A. Piazza
  • Patent number: 7526124
    Abstract: Methods, apparatus and computer readable medium are described that compress and/or decompress a digital image in a lossless or a lossy manner. In some embodiments, a display controller may compress a digital image by generating a symbol for each pel of the digital image. In particular, the symbol may represent a pel via a match vector and a channel error vector. The match vector may indicate which quantized channels of the pel matched quantized channels of a previous pel. Further, the channel error vector may comprise a lossless or lossy channel for each quantized channel of the pel that did not match a corresponding quantized channel of the previous pel. The channel error may also comprise a lossless or lossy channel error for each quantized channel of the pel that matched a corresponding quantized channel of the previous pel.
    Type: Grant
    Filed: February 27, 2007
    Date of Patent: April 28, 2009
    Assignee: Intel Corporation
    Inventors: Michael K. Dwyer, Thomas A. Piazza
  • Publication number: 20090006729
    Abstract: According to one embodiment, the present disclosure generally provides a method for improving the performance of a cache of a processor. The method may include storing a plurality of data in a data Random Access Memory (RAM). The method may further include holding information for all outstanding requests forwarded to a next-level memory subsystem. The method may also include clearing information associated with a serviced request after the request has been fulfilled. The method may additionally include determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem. The method may further include matching fulfilled requests serviced by the next-level memory subsystem to at least one requester who issued requests while an original request was in-flight to the next level memory subsystem.
    Type: Application
    Filed: June 28, 2007
    Publication date: January 1, 2009
    Applicant: INTEL CORPORATION
    Inventors: Thomas A. Piazza, Michael K. Dwyer, Scott Cheng
  • Patent number: 7439986
    Abstract: A configurable filter module for providing shared filter resource between an overlay engine and a texture mapping engine of a graphics system. The configurable filter may comprise a plurality of linear blend units each of which receives data input from one of the overlay engine and a mapping engine cache, and generates a linear blend filter output respectively; and a filter output multiplexer which receives data output from the linear blend units and selects a proper byte ordering output, wherein the linear blend units serve as an overlay interpolator filter to perform linear blending of the data input from the overlay engine during a linear blend mode, and serve as a texture bilinear filter to perform bilinear filtering of the data input from the mapping engine cache during a bilinear filtering mode.
    Type: Grant
    Filed: January 2, 2007
    Date of Patent: October 21, 2008
    Assignee: Intel Corporation
    Inventors: David W. Watson, Kim A. Meinerth, Indraneel Ghosh, Thomas A. Piazza, Val G. Cook
  • Patent number: 7434028
    Abstract: According to some embodiments, determining a new value to be pushed onto a hardware stack having n entries is determined. Each entry in the stack may include a data portion and an associated counter. If the new value equals the data portion of the entry associated with a current top of stack pointer, the counter associated with that entry is incremented. If the new value does not equal the data portion associated with the current top of stack pointer, the new value is stored in the data portion of the next entry and the current top of stack pointer is advanced.
    Type: Grant
    Filed: December 15, 2004
    Date of Patent: October 7, 2008
    Assignee: Intel Corporation
    Inventors: Michael K. Dwyer, Hong Jiang, Thomas A. Piazza
  • Patent number: 7414632
    Abstract: A circuit for blending video signals and subpicture signals is provided. The circuit includes a palette to output at least one subpicture value based on a palette index. The circuit also includes an alpha-blend unit coupled to the subpicture palette to blend a set of luminance values of a video signal with a set of luminance values of a subpicture signal in one pass and to blend a set of chrominance values of a video signal with a set of chrominance values of the subpicture signal in a separate pass, the luminance and chrominance values are provided to the alpha-blend unit in a planar format. The video signals may be provided and blended in a YUV 4:2:0 format. In addition, a single dual-purpose palette can be used for both texturing and alpha-blending.
    Type: Grant
    Filed: January 7, 2000
    Date of Patent: August 19, 2008
    Assignee: Intel Corporation
    Inventors: Thomas Piazza, Val G. Cook
  • Publication number: 20080162522
    Abstract: In some embodiments, a data structure may be received in a first processing system. The data structure may represent a plurality of instructions for a second processing system. For at least one instruction of the plurality of instructions, a determination may be made as to whether the instruction can be replaced by a compact instruction for the second processing system. A compact instruction may be generated if the instruction can be replaced by a compact instruction. In some embodiments, an instruction may be received in a processing system. A determination may be made as to whether the instruction is a compact instruction. A decompacted instruction may be generated if the instruction is a compact instruction.
    Type: Application
    Filed: December 29, 2006
    Publication date: July 3, 2008
    Inventors: Guei-Yuan Lueh, Hong Jiang, Andrew T. Riffel, Bixia Zheng, Chu-Cheow Lim, Milind Girkar, David C. Sehr, Thomas A. Piazza
  • Publication number: 20080163215
    Abstract: In some embodiments, a method includes receiving a request to generate a thread and supplying a request to a queue in response at least to the received request. The method may further include fetching a plurality of instructions in response at least in part to the request supplied to the queue and executing at least one of the plurality of instructions. In some embodiments, an apparatus includes a storage medium having stored therein instructions that when executed by a machine result in the method. In some embodiments, an apparatus includes circuitry to receive a request to generate a thread and to queue a request to generate a thread in response at least to the received request. In some embodiments, a system includes circuitry to receive a request to generate a thread and to queue a request to generate a thread in response at least to the received request, and a memory unit to store at least one instruction for the thread.
    Type: Application
    Filed: December 30, 2006
    Publication date: July 3, 2008
    Inventors: Hong Jiang, Thomas A. Piazza, Brian D. Rauchfuss, Sreedevi Chalasani, Steven J. Spangler
  • Patent number: 7268779
    Abstract: Embodiments of the invention relate to graphics rendering in which Z-buffering tests are performed at the front of the rendering pipeline. Particularly, Z-buffering test logic at the front of the rendering pipeline is coupled to a render cache memory, which includes a Z-buffer, such that Z-buffering can be accomplished at the front of the rendering pipeline.
    Type: Grant
    Filed: December 24, 2002
    Date of Patent: September 11, 2007
    Assignee: Intel Corporation
    Inventors: Thomas A. Piazza, Eric C. Samson