Patents by Inventor C. Chou

C. Chou 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: 20150092834
    Abstract: A video encoder may include a context-adaptive binary arithmetic coding (CABAC) encode component that converts each syntax element of a representation of a block of pixels to binary code, serializes it, and codes it mathematically, after which the resulting bit stream is output. A lookup table in memory and a context cache may store probability values for supported contexts, which may be retrieved from the table or cache for use in coding syntax elements. Depending on the results of a syntax element coding, the probability value for its context may be modified (e.g., increased or decreased) in the cache and, subsequently, in the table. After coding multiple syntax elements, and based on observed access patterns for probability values, a mapping or indexing for the cache or the table may be modified to improve cache performance (e.g., to reduce cache misses or access data for related contexts using fewer accesses).
    Type: Application
    Filed: September 27, 2013
    Publication date: April 2, 2015
    Applicant: Apple Inc.
    Inventors: Guy Cote, Weichun Ku, Jim C. Chou
  • Publication number: 20150092833
    Abstract: A video encoder may include a context-adaptive binary arithmetic coding (CABAC) encode component that converts each syntax element of a representation of a block of pixels to binary code, serializes it, and codes it mathematically with its probability model, after which the resulting bit stream is output. When the probability of a bin being coded with one of two possible symbols is one-half, the bin may be coded using bypass bin coding mode rather than a more compute-intensive regular bin coding mode. The CABAC encoder may code multiple consecutive bypass bins in a series of cascaded processing units during a single processing cycle (e.g., a regular bin coding cycle). Intermediate outputs of each processing unit may be coupled to inputs of the next processing unit. A resolver unit may accept intermediate outputs of the processing units and generate final output bits for the bypass bins.
    Type: Application
    Filed: September 27, 2013
    Publication date: April 2, 2015
    Applicant: Apple Inc.
    Inventors: Weichun Ku, Jim C. Chou
  • Publication number: 20150085921
    Abstract: The forward transform and quantization components of the video encoders described herein may modify the quantization typically performed by video encoders to reduce quantization artifacts. For example, for a given pixel in an image macroblock, noise may be generated based on information about pixels in the neighborhood of the given pixel (e.g., DC transform coefficients or quantization errors of the neighbor pixels and corresponding programmable weighting coefficient values for the neighbor pixels) and this noise may be added to the DC transform coefficient for the given pixel prior to performing quantization. The weighting coefficient values may be chosen to shape the noise added to the DC transform coefficient values (e.g., to apply a filter operation). When applied to a chroma component of an image frame, this neighbor-data-based dithering approach may reduce color banding artifacts. When applied to the luma component, it may reduce blocking artifacts.
    Type: Application
    Filed: September 25, 2013
    Publication date: March 26, 2015
    Applicant: APPLE INC.
    Inventor: Jim C. Chou
  • Publication number: 20150084968
    Abstract: Methods and apparatus for caching neighbor data in a block processing pipeline that processes blocks in knight's order with quadrow constraints. Stages of the pipeline may maintain two local buffers that contain data from neighbor blocks of a current block. A first buffer contains data from the last C blocks processed at the stage. A second buffer contains data from neighbor blocks on the last row of a previous quadrow. Data for blocks on the bottom row of a quadrow are stored to an external memory at the end of the pipeline. When a block on the top row of a quadrow is input to the pipeline, neighbor data from the bottom row of the previous quadrow is read from the external memory and passed down the pipeline, each stage storing the data in its second buffer and using the neighbor data in the second buffer when processing the block.
    Type: Application
    Filed: September 25, 2013
    Publication date: March 26, 2015
    Applicant: Apple Inc.
    Inventors: Joseph J. Cheng, Guy Cote, Marc A. Schaub, Jim C. Chou
  • Publication number: 20150006864
    Abstract: The present embodiments provide a system that facilitates lazy register window fills in a processor. During program execution, when the system encounters a restore instruction for a register window, the system determines if the restore instruction causes an underflow condition that requires the register window to be filled from a stack in memory. If so, the system completes the restore instruction by updating state information for the register window to indicate that the restore instruction is complete without actually filling the individual registers that comprise the register window from the stack. During subsequent program execution, the system lazily fills registers in the register window from the stack as the registers are accessed by the program.
    Type: Application
    Filed: July 1, 2013
    Publication date: January 1, 2015
    Inventor: Yuan C. Chou
  • Patent number: 8918626
    Abstract: The disclosed embodiments relate to a system that executes program instructions on a processor. During a normal-execution mode, the system issues instructions for execution in program order. Upon encountering an unresolved data dependency during execution of an instruction, the system speculatively executes subsequent instructions in a lookahead mode to prefetch future loads. When an instruction retires during the lookahead mode, a working register which serves as a destination register for the instruction is not copied to a corresponding architectural register. Instead the architectural register is marked as invalid. Note that by not updating architectural registers during lookahead mode, the system eliminates the need to checkpoint the architectural registers prior to entering lookahead mode.
    Type: Grant
    Filed: November 10, 2011
    Date of Patent: December 23, 2014
    Assignee: Oracle International Corporation
    Inventors: Yuan C. Chou, Eric W. Mahurin
  • Patent number: 8892822
    Abstract: The disclosed embodiments relate to a system that selectively drops a prefetch request at a cache. During operation, the system receives the prefetch request at the cache. Next, the system identifies a prefetch source for the prefetch request, and then uses accuracy information for the identified prefetch source to determine whether to drop the prefetch request. In some embodiments, the accuracy information includes accuracy information for different prefetch sources. In this case, determining whether to drop the prefetch request involves first identifying a prefetch source for the prefetch request, and then using accuracy information for the identified prefetch source to determine whether to drop the prefetch request.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: November 18, 2014
    Assignee: Oracle International Corporation
    Inventor: Yuan C. Chou
  • Publication number: 20140304541
    Abstract: A method for providing over-heating protection of a target device within an information processing system is disclosed. A determination is made whether or not a power status of the information processing system is set to turn on a main power of a power supply device. If the power status of the information processing system is set to turn on a main power of a power supply device, a power switch of the target device is turned on; otherwise, another determining is made whether or not the target device is set to operate based on a user's setting. If the target device is set to operate based on the user's setting, the power switch of the target device is turned on; otherwise, the power switch of the target device is turned off.
    Type: Application
    Filed: June 23, 2014
    Publication date: October 9, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: HIMANSU S. DAS, STEVEN C. CHOU, RICHARD HUANG, JEFF LIN
  • Publication number: 20140181562
    Abstract: A method for providing over-heating protection of a target device within an information processing system is disclosed. A determination is made whether or not a power status of the information processing system is set to turn on a main power of a power supply device. If the power status of the information processing system is set to turn on a main power of a power supply device, a power switch of the target device is turned on; otherwise, another determining is made whether or not the target device is set to operate based on a user's setting. If the target device is set to operate based on the user's setting, the power switch of the target device is turned on; otherwise, the power switch of the target device is turned off.
    Type: Application
    Filed: December 9, 2013
    Publication date: June 26, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: HIMANSU S. DAS, STEVEN C. CHOU, RICHARD HUANG, JEFF LIN
  • Publication number: 20140096257
    Abstract: A method is provided to remediate defects in first computer program code that can be used to configure a computer to produce code for use by the same or a different computer configured using second computer program code to use the produced code to produce output information, the method comprising: configuring a computer to perform static analysis of the first program to produce an information structure in a non-transitory computer readable storage device that associates a respective code statement of the first program code with a respective context, wherein the context associates a parser state with a potential defect in the produced code; identify a defect in the first computer program code that is associated with the respective code statement; and determining a remediation for the identified defect.
    Type: Application
    Filed: March 15, 2013
    Publication date: April 3, 2014
    Inventors: Andy C. Chou, Jon Passki, Romain Gaucher
  • Publication number: 20140082286
    Abstract: A method and apparatus for determining data to be prefetched based on previous cache miss history is disclosed. In one embodiment, a processor includes a first cache memory and a controller circuit. The controller circuit is configured to load data from a first address into the first cache memory responsive to a cache miss corresponding to the first address. The controller circuit is further configured to determine, responsive to a cache miss for the first address, if a previous cache miss occurred at a second address. Responsive to determining that the previous cache miss occurred at the second address, the controller circuit is configured to load data from a second address into the first cache.
    Type: Application
    Filed: September 18, 2012
    Publication date: March 20, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Publication number: 20140059299
    Abstract: The disclosed embodiments relate to a method for dynamically changing a prefetching configuration in a computer system, wherein the prefetching configuration specifies how to change an ahead distance that specifies how many references ahead to prefetch for each stream. During operation of the computer system, the method keeps track of one or more stream lengths, wherein a stream is a sequence of memory references with a constant stride. Next, the method dynamically changes the prefetching configuration for the computer system based on observed stream lengths in a most-recent window of time.
    Type: Application
    Filed: August 27, 2012
    Publication date: February 27, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Suryanarayana Murthy Durbhakula, Yuan C. Chou
  • Publication number: 20140047538
    Abstract: A method is provided to infer taintedness in code expressions encoded in a computer readable device comprising: configuring a computer system to, store a representation of a computer program that is to be evaluated in non-transitory storage media; identify within the representation a pointer cast operation; determine whether an identified cast operation involves a cast from a pointer to a raw memory data type to a pointer to a structured data type; determine whether a structured data type casted to is associated with indicia of externalness; designating data addressed by that pointer as tainted; and determine whether data designated as tainted is consumed by an operation in the computer program that acts as a taintedness sink.
    Type: Application
    Filed: August 8, 2012
    Publication date: February 13, 2014
    Applicant: Coverity, Inc.
    Inventors: Roger H. Scott, Andy C. Chou
  • Publication number: 20130290675
    Abstract: Systems and methods for efficient thread arbitration in a threaded processor with dynamic resource allocation. A processor includes a resource shared by multiple threads. The resource includes an array with multiple entries, each of which may be allocated for use by any thread. Control logic detects a load miss to memory, wherein the miss is associated with a latency greater than a given threshold. The load instruction or an immediately younger instruction is selected for replay for an associated thread. A pipeline flush and replay for the associated thread begins with the selected instruction. Instructions younger than the load instruction are held at a given pipeline stage until the load instruction completes. During replay, this hold prevents resources from being allocated to the associated thread while the load instruction is being serviced.
    Type: Application
    Filed: April 26, 2012
    Publication date: October 31, 2013
    Inventors: Yuan C. Chou, Robert T. Golla, Mark A. Luttrell
  • Patent number: 8532269
    Abstract: Architecture that employs a combination of in-band signaling (e.g., DTMF) with speech recognition to deliver usability improvements. The in-band signaling allows the user to indicate to the system when a barge-in operation is occurring and/or when to start listening to subsequent speech input and optionally, when to stop listening for further speech input. The in-band signaling can be utilized during a telephone call and using wireline and wireless telephones. Moreover, the architecture can be incorporated at the platform level requiring little, if any, application changes to support the new mode of operation.
    Type: Grant
    Filed: January 16, 2009
    Date of Patent: September 10, 2013
    Assignee: Microsoft Corporation
    Inventors: Robert L. Chambers, Larry Coryell, Karen J. Kaushansky, Julian James Odell, Jim C. Chou
  • Patent number: 8504805
    Abstract: Various techniques for mitigating dependencies between groups of instructions are disclosed. In one embodiment, such dependencies include “evil twin” conditions, in which a first floating-point instruction has as a destination a first portion of a logical floating-point register (e.g., a single-precision write), and in which a second, subsequent floating-point instruction has as a source the first portion and a second portion of the same logical floating-point register (e.g., a double-precision read). The disclosed techniques may be applicable in a multithreaded processor implementing register renaming. In one embodiment, a processor may enter an operating mode in which detection of evil twin “producers” (e.g., single-precision writes) causes the instruction sequence to be modified to break potential dependencies. Modification of the instruction sequence may continue until one or more exit criteria are reached (e.g., committing a predetermined number of single-precision writes).
    Type: Grant
    Filed: April 22, 2009
    Date of Patent: August 6, 2013
    Assignee: Oracle America, Inc.
    Inventors: Robert T. Golla, Paul J. Jordan, Jama I. Barreh, Matthew B. Smittle, Yuan C. Chou, Jared C. Smolens
  • Patent number: 8458444
    Abstract: Techniques for handling dependency conditions, including evil twin conditions, are disclosed herein. An instruction may designate a source register comprising two portions. The source register may be a double-precision register and its two portions may be single-precision portions, each specified as destinations by two other single-precision instructions. Execution of these two single-precision instructions, especially on a register renaming machine, may result in the appropriate values for the two portions of the source register being stored in different physical locations, which can complicate execution of an instruction stream. In response to detecting a potential dependency, one or more instructions may be inserted in an instruction stream to enable the appropriate values to be stored within one physical double precision register, eliminating an actual or potential evil twin dependency.
    Type: Grant
    Filed: April 22, 2009
    Date of Patent: June 4, 2013
    Assignee: Oracle America, Inc.
    Inventors: Yuan C. Chou, Jared C. Smolens, Jeffrey S. Brooks
  • Publication number: 20130138887
    Abstract: The disclosed embodiments relate to a system that selectively drops a prefetch request at a cache. During operation, the system receives the prefetch request at the cache. Next, the system identifies a prefetch source for the prefetch request, and then uses accuracy information for the identified prefetch source to determine whether to drop the prefetch request. In some embodiments, the accuracy information includes accuracy information for different prefetch sources. In this case, determining whether to drop the prefetch request involves first identifying a prefetch source for the prefetch request, and then using accuracy information for the identified prefetch source to determine whether to drop the prefetch request.
    Type: Application
    Filed: November 29, 2011
    Publication date: May 30, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Publication number: 20130124828
    Abstract: The disclosed embodiments relate to a system that executes program instructions on a processor. During a normal-execution mode, the system issues instructions for execution in program order. Upon encountering an unresolved data dependency during execution of an instruction, the system speculatively executes subsequent instructions in a lookahead mode to prefetch future loads. When an instruction retires during the lookahead mode, a working register which serves as a destination register for the instruction is not copied to a corresponding architectural register. Instead the architectural register is marked as invalid. Note that by not updating architectural registers during lookahead mode, the system eliminates the need to checkpoint the architectural registers prior to entering lookahead mode.
    Type: Application
    Filed: November 10, 2011
    Publication date: May 16, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Yuan C. Chou, Eric W. Mahurin
  • Publication number: 20130124829
    Abstract: The disclosed embodiments relate to a system that executes program instructions on a processor. During a normal-execution mode, the system issues instructions for execution in program order. Upon encountering an unresolved data dependency during execution of an instruction, the system speculatively executes subsequent instructions in a lookahead mode to prefetch future loads. While executing in the lookahead mode, if the processor determines that the lookahead mode is unlikely to uncover any additional outer-level cache misses, the system terminates the lookahead mode. Then, after the unresolved data dependency is resolved, the system recommences execution in the normal-execution mode from the instruction that triggered the lookahead mode.
    Type: Application
    Filed: November 10, 2011
    Publication date: May 16, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Yuan C. Chou, Eric W. Mahurin