Patents by Inventor Hsilin Huang

Hsilin Huang 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: 20140325153
    Abstract: A multi-hierarchy interconnect system for a cache system having a tag memory and a data memory includes an address interconnect scheduling device and a data interconnect scheduling device. The address interconnect scheduling device performs a tag bank arbitration to schedule address requests to a plurality of tag banks of the tag memory. The data interconnect scheduling device performs a data bank arbitration to schedule data requests to a plurality of data banks of the data memory. Besides, a multi-hierarchy interconnect method for a cache system having a tag memory and a data memory includes: performing a tag bank arbitration to schedule address requests to a plurality of tag banks of the tag memory, and performing a data bank arbitration to schedule data requests to a plurality of data banks of the data memory.
    Type: Application
    Filed: April 17, 2014
    Publication date: October 30, 2014
    Applicant: MediaTek Singapore Pte. Ltd.
    Inventor: Hsilin Huang
  • Patent number: 8817029
    Abstract: A graphics pipeline configured to synchronize data processing according to signals and tokens has at least four components. The first component has one input and one output and communicates output tokens or wire signals after receiving tokens on the input, an internal event occurrence, or receipt of a signal on an input path. The second component has one input and a plurality of outputs and communicates tokens or wire signals on one of the outputs after receiving tokens on the input, an internal event occurrence, or receipt of a signal on an input path. The third component has a plurality of inputs and one output and communicates tokens or wire signals on the output after receiving tokens on one of the inputs, an internal event occurrence, or receipt of a signal on an input path. The fourth component has a plurality of inputs and a plurality of outputs and has the capabilities of both the third and forth components.
    Type: Grant
    Filed: August 30, 2006
    Date of Patent: August 26, 2014
    Assignee: Via Technologies, Inc.
    Inventors: John Brothers, Timour Paltashev, Hsilin Huang, Qunfeng Liao
  • Patent number: 8004533
    Abstract: A command parser in a GPU is configured to schedule execution of received commands and includes a first input coupled to a scheduler. The first command parser input is configured to communicate bus interface commands to the command parser for execution. A second command parser input is coupled to a controller that receives ring buffer commands from the scheduler in association with a new or previously-partially executed ring buffer, or context, which are executed by the command parser. A third command parser input coupled to a command DMA component that receives DMA commands from the controller that are also contained in the new or previously-partially executed ring buffer, which are forwarded to the command parser for execution. The command parser forwards data corresponding to commands received on one or more the first, second, and third inputs via one or more outputs.
    Type: Grant
    Filed: September 8, 2006
    Date of Patent: August 23, 2011
    Assignee: VIA Technologies, Inc.
    Inventors: Hsilin Huang, Boris Prokopenko, John Brothers
  • Patent number: 7755632
    Abstract: A GPU pipeline is synchronized by sending a fence command from a first module to an addressed synchronization register pair. Fence command associated data may be stored in a fence register of the addressed register pair. A second module sends a wait command with associated data to the addressed register pair, which may be compared to the data in the fence register. If the fence register data is greater than or equal to the wait command associated data, the second module may be acknowledged for sending the wait command and released for processing other graphics operations. If the fence register data is less than the wait command associated data, the second module is stalled until subsequent receipt of a fence command having data that is greater than or equal to the wait command associated data, which may be written to a wait register associated to the addressed register pair.
    Type: Grant
    Filed: October 25, 2006
    Date of Patent: July 13, 2010
    Assignee: VIA Technologies, Inc.
    Inventors: John Brothers, Hsilin Huang, Boris Prokopenko
  • Patent number: 7737983
    Abstract: A method for high level synchronization between an application and a graphics pipeline comprises receiving an application instruction in an input stream at a predetermined component, such as a command stream processor (CSP), as sent by a central processing unit. The CSP may have a first portion coupled to a next component in the graphics pipeline and a second portion coupled to a plurality of components of the graphics pipeline. A command associated with the application instruction may be forwarded from the first portion to the next component in the graphics pipeline or some other component coupled thereto. The command may be received and thereafter executed. A response may be communicated on a feedback path to the second portion of the CSP. Nonlimiting exemplary application instructions that may be received and executed by the CSP include check surface fault, trap, wait, signal, stall, flip, and trigger.
    Type: Grant
    Filed: October 25, 2006
    Date of Patent: June 15, 2010
    Assignee: Via Technologies, Inc.
    Inventors: John Brothers, Timour Paltashev, Hsilin Huang, Boris Prokopenko, Qunfeng (Fred) Liao
  • Patent number: 7583268
    Abstract: A graphics processing unit (“GPU”) is configured to interrupt processing of a first context and to initiate processing of a second context upon command. A command processor communicates an interrupt signal on a communication path from to a plurality of pipeline processing blocks in a graphics pipeline. A token, which corresponds to an end of an interrupted context, is forwarded from the command processor to a first pipeline processing block and subsequently to other pipeline blocks in the graphics pipeline. Each pipeline processing block discards contents of associated memory units upon receipt of the interrupt signal until the token is reached. The token may be forwarded to one or more additional pipeline processing blocks and memory units so that the token is communicated throughout the graphics pipeline to flush data associated with the first context. Data associated with the second context may follow behind the token through graphics pipeline.
    Type: Grant
    Filed: November 10, 2005
    Date of Patent: September 1, 2009
    Assignee: Via Technologies, Inc.
    Inventors: Hsilin Huang, Timour Paltashev, John Brothers
  • Patent number: 7580040
    Abstract: A graphics processing unit (“GPU”) is configured to interrupt processing of a first context and to initiate processing of a second context upon command so that multiple programs can be executed by the GPU. The CPU creates and the GPU stores a run list containing a plurality of contexts for execution, where each context has a ring buffer of commands and pointers for processing. The GPU initiates processing of a first context in the run list and retrieves memory access commands and pointers referencing data associated with the first context. The GPU's pipeline processes data associated with first context until empty or interrupted. If emptied, the GPU switches to a next context in the run list for processing data associated with that next context. When the last context in the run list is completed, the GPU may switch to another run list containing a new list of contexts for processing.
    Type: Grant
    Filed: November 10, 2005
    Date of Patent: August 25, 2009
    Assignee: Via Technologies, Inc.
    Inventors: Hsilin Huang, Timour Paltashev
  • Patent number: 7545381
    Abstract: A graphics processing unit (“GPU”) is configured to receive an interrupt command from a CPU or internal interrupt event while the GPU is processing a first context. The GPU saves the first context to memory and records a precise processing position for the first context corresponding to the point interrupted. Thereafter, the GPU loads a second context to the processing portion of the GPU from memory and begins executing instructions associated with the second context. After the second context is complete of if an interrupt command directs restoration of the first context, the GPU's processor switches to the first context for continued processing. The first context is retrieved from memory and restored to the precise processing position where previously interrupted. The GPU then processes a remainder portion of the first context from the precise processing point to an end of the first context.
    Type: Grant
    Filed: November 10, 2005
    Date of Patent: June 9, 2009
    Assignee: Via Technologies, Inc.
    Inventors: Hsilin Huang, Timour Paltashev, John Brothers
  • Patent number: 7467242
    Abstract: Method and system for a dynamic FIFO flow control circuit. The dynamic FIFO flow control circuit detects one or more obsolete entries in a FIFO memory, retrieves the address of the next valid read pointer, and reads from the retrieved address during the next read operation.
    Type: Grant
    Filed: May 13, 2003
    Date of Patent: December 16, 2008
    Assignee: Via Technologies, Inc.
    Inventor: Hsilin Huang
  • Patent number: 7430654
    Abstract: Method and system for controlling the dynamic latency of an arithmetic logic unit (ALU). In one embodiment, the identification of the destination operand of an instruction is stored in a temporary register ID/thread control ID pair pipeline if the destination operand is a temporary register. Furthermore, each source operand of an instruction is checked against the identifications stored in a group of temporary register ID/thread control ID pipelines. If a source operand is matched to an identification stored in the temporary register ID/thread control ID pipelines, the ALU does not execute the instruction until the matched identification is no longer matched in the pipelines.
    Type: Grant
    Filed: July 9, 2003
    Date of Patent: September 30, 2008
    Assignee: VIA Technologies, Inc.
    Inventors: Hsilin Huang, Kuoyin Weng, Yijung Su
  • Patent number: 7310096
    Abstract: A method for efficiently processing graphics data for graphics primitives, the graphics data including vertex coordinate information and vertex attribute data. Coordinate information, in the form of homogeneous coordinates, of the graphics primitive determines whether the graphics primitive is to be rendered. If the primitive is to be rendered, then attribute data associated with the location information is retrieved. However, if the data is not to be rendered, then the location information is discarded. By only retrieving parameters for a primitive that is rendered, performance is increased. In one embodiment, the attribute data is fetched before it is known whether or not the graphics primitive is to be rendered, and if not, the prefetch is aborted, and new location information is fetched.
    Type: Grant
    Filed: July 12, 2006
    Date of Patent: December 18, 2007
    Assignee: Via Technologies, Inc.
    Inventor: Hsilin Huang
  • Patent number: 7259765
    Abstract: A system for processing graphics data for a stream of graphics primitives, such as triangles. The system has a plurality of memories each for storing an index of the primitive. A controller selects a memory to store the index and assigns a thread id to the index, the thread id indicating in which memory the index is stored. The thread id is stored in both a HEAD ID FIFO and a DATA ID FIFO, to maintain the order of the primitives during processing. A first multiplexer accesses a selected memory based on a thread id provided by the HEAD ID FIFO and a second multiplexer accesses a selected memory based on a thread id provided by the DATA ID FIFO. For each of the vertices of the graphics primitive, the first multiplexer provides a pointer for accessing coordinate information and the second multiplexer provides a pointer for accessing attribute information.
    Type: Grant
    Filed: April 4, 2003
    Date of Patent: August 21, 2007
    Assignee: S3 Graphics Co., Ltd.
    Inventor: Hsilin Huang
  • Publication number: 20070115292
    Abstract: A GPU pipeline is synchronized by sending a fence command from a first module to an addressed synchronization register pair. Fence command associated data may be stored in a fence register of the addressed register pair. A second module sends a wait command with associated data to the addressed register pair, which may be compared to the data in the fence register. If the fence register data is greater than or equal to the wait command associated data, the second module may be acknowledged for sending the wait command and released for processing other graphics operations. If the fence register data is less than the wait command associated data, the second module is stalled until subsequent receipt of a fence command having data that is greater than or equal to the wait command associated data, which may be written to a wait register associated to the addressed register pair.
    Type: Application
    Filed: October 25, 2006
    Publication date: May 24, 2007
    Applicant: VIA TECHNOLOGIES, INC
    Inventors: John Brothers, Hsilin Huang, Boris Prokopenko
  • Patent number: 7218331
    Abstract: A system and method for processing a graphics primitive for display in a display area defined by a scissoring window. The graphics primitive is part of an object in view space which also includes a near and a far plane and possibly one or more user-defined clipping planes. These planes may affect the portion of the graphics primitive to be rendered in the display area. The graphics primitive is enclosed by a bounding box, which is then reduced, if possible, based on the Znear clipping plane intersecting the graphics primitive. The reduced bounding box is then subjected to the scissoring window if a portion of the bounding box lies outside the window. The final bounding box determines how much of the graphics primitive should be rendered in the display area. This reduces the amount of rendering that is required of the graphics system, and increases the performance of the system.
    Type: Grant
    Filed: May 13, 2003
    Date of Patent: May 15, 2007
    Assignee: VIA Technologies, Inc.
    Inventors: Hsilin Huang, Peng Yu, Peifeng Wu
  • Publication number: 20070103476
    Abstract: A graphics processing unit (“GPU”) is configured to receive an interrupt command from a CPU or internal interrupt event while the GPU is processing a first context. The GPU saves the first context to memory and records a precise processing position for the first context corresponding to the point interrupted. Thereafter, the GPU loads a second context to the processing portion of the GPU from memory and begins executing instructions associated with the second context. After the second context is complete of if an interrupt command directs restoration of the first context, the GPU's processor switches to the first context for continued processing. The first context is retrieved from memory and restored to the precise processing position where previously interrupted. The GPU then processes a remainder portion of the first context from the precise processing point to an end of the first context.
    Type: Application
    Filed: November 10, 2005
    Publication date: May 10, 2007
    Inventors: Hsilin Huang, Timour Paltashey
  • Publication number: 20070103475
    Abstract: A graphics processing unit (“GPU”) is configured to interrupt processing of a first context and to initiate processing of a second context upon command so that multiple programs can be executed by the GPU. The CPU creates and the GPU stores a run list containing a plurality of contexts for execution, where each context has a ring buffer of commands and pointers for processing. The GPU initiates processing of a first context in the run list and retrieves memory access commands and pointers referencing data associated with the first context. The GPU's pipeline processes data associated with first context until empty or interrupted. If emptied, the GPU switches to a next context in the run list for processing data associated with that next context. When the last context in the run list is completed, the GPU may switch to another run list containing a new list of contexts for processing.
    Type: Application
    Filed: November 10, 2005
    Publication date: May 10, 2007
    Inventors: Hsilin Huang, Timour Paltashev
  • Publication number: 20070103474
    Abstract: A graphics processing unit (“GPU”) is configured to interrupt processing of a first context and to initiate processing of a second context upon command. A command processor communicates an interrupt signal on a communication path from to a plurality of pipeline processing blocks in a graphics pipeline. A token, which corresponds to an end of an interrupted context, is forwarded from the command processor to a first pipeline processing block and subsequently to other pipeline blocks in the graphics pipeline. Each pipeline processing block discards contents of associated memory units upon receipt of the interrupt signal until the token is reached. The token may be forwarded to one or more additional pipeline processing blocks and memory units so that the token is communicated throughout the graphics pipeline to flush data associated with the first context. Data associated with the second context may follow behind the token through graphics pipeline.
    Type: Application
    Filed: November 10, 2005
    Publication date: May 10, 2007
    Inventors: Hsilin Huang, Timour Paltashev, John Brothers
  • Publication number: 20070091100
    Abstract: A graphics pipeline configured to synchronize data processing according to signals and tokens has at least four components. The first component has one input and one output and communicates output tokens or wire signals after receiving tokens on the input, an internal event occurrence, or receipt of a signal on an input path. The second component has one input and a plurality of outputs and communicates tokens or wire signals on one of the outputs after receiving tokens on the input, an internal event occurrence, or receipt of a signal on an input path. The third component has a plurality of inputs and one output and communicates tokens or wire signals on the output after receiving tokens on one of the inputs, an internal event occurrence, or receipt of a signal on an input path. The fourth component has a plurality of inputs and a plurality of outputs and has the capabilities of both the third and forth components.
    Type: Application
    Filed: August 30, 2006
    Publication date: April 26, 2007
    Applicant: VIA TECHNOLOGIES, INC.
    Inventors: John Brothers, Timour Paltashev, Hsilin Huang, Qunfeng Liao
  • Publication number: 20070091102
    Abstract: A method for high level synchronization between an application and a graphics pipeline comprises receiving an application instruction in an input stream at a predetermined component, such as a command stream processor (CSP), as sent by a central processing unit. The CSP may have a first portion coupled to a next component in the graphics pipeline and a second portion coupled to a plurality of components of the graphics pipeline. A command associated with the application instruction may be forwarded from the first portion to the next component in the graphics pipeline or some other component coupled thereto. The command may be received and thereafter executed. A response may be communicated on a feedback path to the second portion of the CSP. Nonlimiting exemplary application instructions that may be received and executed by the CSP include check surface fault, trap, wait, signal, stall, flip, and trigger.
    Type: Application
    Filed: October 25, 2006
    Publication date: April 26, 2007
    Inventors: John Brothers, Timour Paltashev, Hsilin Huang, Boris Prokopenko, Qunfeng Liao
  • Publication number: 20070091101
    Abstract: A command parser in a GPU is configured to schedule execution of received commands and includes a first input coupled to a scheduler. The first command parser input is configured to communicate bus interface commands to the command parser for execution. A second command parser input is coupled to a controller that receives ring buffer commands from the scheduler in association with a new or previously-partially executed ring buffer, or context, which are executed by the command parser. A third command parser input coupled to a command DMA component that receives DMA commands from the controller that arc also contained in the new or previously-partially executed ring buffer, which are forwarded to the command parser for execution. The command parser forwards data corresponding to commands received on one or more the first, second, and third inputs via one or more outputs.
    Type: Application
    Filed: September 8, 2006
    Publication date: April 26, 2007
    Applicant: VIA TECHNOLOGIES, INC
    Inventors: Hsilin Huang, Boris Prokopenko, John Brothers