Patents by Inventor Lucian Codrescu

Lucian Codrescu 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: 20070263730
    Abstract: Method and apparatus for performing two independent sum-of-absolute-difference (SAD) operations when receiving a single instruction (505, 705) is provided. The two operations may be performed in parallel. The operations process values stored in two source registers (405, 410) and the results are stored to a destination register (425). The source and destination registers each have two independently accessible sections, whereby a first SAD operation (401) can access a first section while a second independent SAD operation (402) can simultaneously access a second section of the register. The first SAD operation is performed on values in a first section of the source registers, the result being stored to a first section of the destination register. The second SAD operation is performed on values in a second section of the source registers, the result being stored to a second section of the destination register. The values may comprise pixel values.
    Type: Application
    Filed: May 10, 2006
    Publication date: November 15, 2007
    Inventors: Mao Zeng, Lucian Codrescu
  • Publication number: 20070223629
    Abstract: A Viterbi pack instruction is disclosed that masks the contents of a first predicate register with a first masking value and masks the contents of a second predicate register with a second masking value. The resulting masked data is written to a destination register. The Viterbi pack instruction may be implemented in hardware, firmware, software, or any combination thereof.
    Type: Application
    Filed: March 23, 2006
    Publication date: September 27, 2007
    Inventors: Mao Zeng, Lucian Codrescu
  • Publication number: 20070094660
    Abstract: Techniques for the design and use of a digital signal processor, including processing transmissions in a communications (e.g., CDMA) system. The disclosed method and system provide background thread processing in a multithread digital signal processor for backgrounding and other background operations. The method and system form a background thread interrupt as one of a plurality of interrupt types, the background thread interrupt initiates a low-priority background process using one of a plurality of processing threads of a multithread digital signal processor. The process includes storing the background thread interrupt in an interrupt register and a background processing mask for associating with a processing thread of the multithread digital signal processor, which associates with at least a subset of said plurality of processing threads.
    Type: Application
    Filed: October 20, 2005
    Publication date: April 26, 2007
    Inventor: Lucian Codrescu
  • Publication number: 20070094478
    Abstract: Techniques for processing digital signals for a variety of applications, including in a communications (e.g., CDMA) system. A pointer location within a circular buffer is determined by establishing a length of the circular buffer, a start address that is aligned to a power of 2, and an end address located distant from the start address by the length and less than a power of 2 greater than the length. The method and system determine a current pointer location for an address within the circular buffer, a stride value of bits between the start address and the end address, a new pointer location within the circular buffer that is shifted from the current pointer location by the number of bits of the stride value. An adjusted pointer location is within the circular buffer by an arithmetic operation of the new pointer location with the length.
    Type: Application
    Filed: October 20, 2005
    Publication date: April 26, 2007
    Inventors: Erich Plondke, Lucian Codrescu, Muhammad Ahmed, Mao Zeng, Sujat Jamil, William Anderson
  • Publication number: 20070088938
    Abstract: Techniques for the design and use of a digital signal processor, including (but not limited to) processing transmissions in a communications (e.g., CDMA) system. The disclosed method and system process interrupts arising in a multithreaded processor by receiving in an interrupt register a plurality of interrupts of a statistically indeterminate interrupt type and then associating a plurality of processing threads with the interrupt register for receiving the interrupt from the interrupt register. The method and system mask at least a subset of the plurality of processing threads so as to receive within each of the threads within the subset only ones of the plurality of interrupts of one or more predetermined types, thereby controlling on a per thread basis the processing of the plurality of interrupts according to the mask associated with a particular thread.
    Type: Application
    Filed: October 18, 2005
    Publication date: April 19, 2007
    Inventors: Lucian Codrescu, William Anderson
  • Publication number: 20070016759
    Abstract: A multithreaded processor device is disclosed and includes a processor that is configured to execute a plurality of executable program threads and a mode control register. The mode control register includes a first data field to control a first execution mode of a first of the plurality of executable program threads and a second data field to control a second execution mode of a second of the plurality of executable program threads. In a particular embodiment, the first execution mode is a run mode and the second execution mode is a low power mode.
    Type: Application
    Filed: July 12, 2005
    Publication date: January 18, 2007
    Inventors: Lucian Codrescu, Donald Padgett, Erich Plondke, Taylor Simpson, Muhammad Ahmed, William Anderson, Sujat Jamil
  • Publication number: 20060294341
    Abstract: A shared translation look-aside buffer method comprises saving data stored in a first selected set of registers to a predetermined section of a thread-specific area in memory upon encountering an exception/interrupt, re-enabling exceptions and optionally interrupts, addressing a cause of the exception/interrupt while safely permitting another exception, and restoring the saved data to the first selected set of registers.
    Type: Application
    Filed: June 23, 2005
    Publication date: December 28, 2006
    Inventors: Erich Plondke, William Anderson, Lucian Codrescu
  • Publication number: 20060242384
    Abstract: A processor device is disclosed and includes a memory and a sequencer that is responsive to the memory. The sequencer supports very long instruction word (VLIW) type instructions and at least one VLIW instruction packet uses a number of operands during execution. The processor device further includes a plurality of instruction execution units responsive to the sequencer and a plurality of register files. Each of the plurality of register files includes a plurality of registers and the plurality of register files are coupled to the plurality of instruction execution units. Further, each of the plurality of register files includes a number of data read ports and the number of data read ports of each of the plurality of register files is less than the number of operands used by the at least one VLIW instruction packet.
    Type: Application
    Filed: April 26, 2005
    Publication date: October 26, 2006
    Inventors: Muhammad Ahmed, Erich Plondke, Lucian Codrescu, William Anderson
  • Publication number: 20060242645
    Abstract: A multithreaded processor device is disclosed and includes a first program thread and second program thread. The second program thread is execution linked to the first program thread in a lock step manner. As such, when the first program thread experiences a stall event, the second program thread is instructed to perform a no operation instruction in order to keep the second program thread execution linked to the first program thread. Also, the second program thread performs a no operation instruction during each clock cycle that the first program thread is stalled due to the stall event. When the first program thread performs a first successful operation after the stall event, the second program thread restarts normal execution.
    Type: Application
    Filed: April 26, 2005
    Publication date: October 26, 2006
    Inventors: Lucian Codrescu, Erich Plondke, Muhammad Ahmed, William Anderson
  • Publication number: 20060230253
    Abstract: A processor device is disclosed and includes a memory and a sequencer that is responsive to the memory. The sequencer can support very long instruction word (VLIW) instructions and superscalar instructions. The processor device further includes a first instruction execution unit responsive to the sequencer, a second instruction execution unit responsive to the sequencer, a third instruction execution unit responsive to the sequencer, and a fourth instruction execution unit responsive to the sequencer. Further, the processor device includes a plurality of register files and each of the plurality of register files includes a plurality of registers. The plurality of register files are coupled to the sequencer and coupled to the first instruction execution unit, the second instruction execution unit, the third instruction execution unit, and the fourth instruction execution unit.
    Type: Application
    Filed: April 11, 2005
    Publication date: October 12, 2006
    Inventors: Lucian Codrescu, Erich Plondke, Muhammad Ahmed, William Anderson, Taylor Simpson
  • Publication number: 20060230259
    Abstract: An instruction memory unit comprises a first memory structure operable to store program instructions, and a second memory structure operable to store program instructions fetched from the first memory structure, and to issue stored program instructions for execution. The second memory structure is operable to identify a repeated issuance of a forward program redirect construct, and issue a next program instruction already stored in the second memory structure if a resolution of the forward branching instruction is identical to a last resolution of the same. The second memory structure is further operable to issue a backward program redirect construct, determine whether a target instruction is stored in the second memory structure, issue the target instruction if the target instruction is stored in the second memory structure, and fetch the target instruction from the first memory structure if the target instruction is not stored in the second memory structure.
    Type: Application
    Filed: April 11, 2005
    Publication date: October 12, 2006
    Inventors: Muhammad Ahmed, Lucian Codrescu, Erich Plondke, William Anderson, Robert Lester, Phillip Jones
  • Publication number: 20060230257
    Abstract: A processor device is disclosed and includes a memory unit and at least one interleaved multi-threading instruction pipeline. The interleaved multi-threading instruction pipeline utilizes a number of clock cycles that is less than an instruction issue rate for each of a plurality of program threads that are stored within the memory unit. The memory unit includes six instruction caches. Further, the processor device includes six register files and each of the six register files is associated with one of the six instruction caches. Each of the plurality of program threads is associated with one of the six register files. Further, each of the six program threads includes a plurality of instructions and each of the plurality of instructions is stored within one of the six instruction caches of the memory.
    Type: Application
    Filed: April 11, 2005
    Publication date: October 12, 2006
    Inventors: Muhammad Ahmed, Erich Plondke, Lucian Codrescu, William Anderson
  • Publication number: 20060224862
    Abstract: Techniques for processing transmissions in a communications (e.g., CDMA) system. A method and system for issuing and executing mixed architecture instructions in a multiple-issue digital signal processor receives in a mixed instruction listing a plurality of digital signal processor instructions. The plurality of digital signal processor instructions includes a plurality of parallel executable instructions (e.g., VLIW instructions or instruction packets) mixed among a plurality of series executable instructions (e.g., superscalar instructions). The series executable instructions are associated by various instruction dependencies. The method and system further identify in the mixed instruction listing the plurality of parallel executable instructions. Once identified, the parallel executable instructions are first executed in parallel irrespective of any such instruction's relative order in the mixed instruction listing.
    Type: Application
    Filed: March 29, 2005
    Publication date: October 5, 2006
    Inventors: Muhammad Ahmed, Erich Plondke, Lucian Codrescu, William Anderson
  • Publication number: 20060218373
    Abstract: A processor is operable to carry out a method that comprises accessing a first register based on a program instruction and obtaining a first register-out value, accessing a second register based on the first register-out value and obtaining a second register-out value, and storing the second register-out value into a third register based on the program instruction. The processor is further operable to carry out a method that comprises accessing a first register based on a program instruction and obtaining a first register-out value, accessing a second register based on the program instruction and obtaining a second register-out value, and storing the first register-out value into a third register based on the second register-out value.
    Type: Application
    Filed: March 24, 2005
    Publication date: September 28, 2006
    Inventors: Erich Plondke, Lucian Codrescu, Muhammad Ahmed, William Anderson
  • Publication number: 20060218559
    Abstract: Techniques for processing transmissions in a communications (e.g., CDMA) system. An aspect of the disclosed subject matter includes a method for processing instructions on a multithreaded processor. The multithreaded processor processes a plurality of threads via a plurality of processor pipelines. The method includes the step determining the operating frequency, F, at which the multithreaded processor operates. Then, the method determines a variable thread switch timeout state for triggering the switching of the processing among the plurality of active threads. The variable thread switch timeout state varies so that each of the plurality of active threads operates at a frequency of an allocated portion of the frequency, F. The allocated portion at which the active threads operate is determined at least in part in order to optimize the operation of the multithreaded processor.
    Type: Application
    Filed: March 23, 2005
    Publication date: September 28, 2006
    Inventors: Muhammad Ahmed, Sujat Jamil, Erich Plondke, Lucian Codrescu, William Anderson
  • Publication number: 20060218379
    Abstract: Techniques for processing transmissions in a communications (e.g., CDMA) system. The method and system encode and process instructions of mixed lengths (e.g., 16 bits and 32 bits) and instruction packets including instructions of mixed lengths. This includes encoding a plurality of instructions of a first length and a plurality of instructions of a second length. The method and system encode a header having at least one instruction length bit. The instruction bit distinguishes between instructions of the first length and instructions of the second length for an associated DSP to process in a mixed stream. The method and system distinguish between the instructions of the first length and the instructions of the second length according to the contents of the instruction length bits. The header further includes bits for distinguishing between instructions of varying lengths in an instruction packet.
    Type: Application
    Filed: March 23, 2005
    Publication date: September 28, 2006
    Inventors: Lucian Codrescu, Erich Plondke, Muhammad Ahmed, William Anderson
  • Publication number: 20060212681
    Abstract: An interleaved multithreading pipeline operating method comprises reading an instruction packet containing at least two instructions, steering a first instruction of the instruction packet to a first execution unit for execution and generating a first result, steering a second instruction of the instruction packet to a second execution unit for execution using the first result and generating a second result, and storing the second result.
    Type: Application
    Filed: March 21, 2005
    Publication date: September 21, 2006
    Inventors: Lucian Codrescu, Erich Plondke, Muhammad Ahmed, Sujat Jamil, William Anderson
  • Publication number: 20060206902
    Abstract: Techniques for processing transmissions in a communications (e.g., CDMA) system. A multithreaded processor processes a plurality of threads operating via a plurality of processor pipelines associated with the multithreaded processor and predetermines a triggering event for the multithreaded processor to switch from a first thread to a second thread. The triggering event is variably and dynamically determined to optimize multithreaded processor performance. The triggering event may be a dynamically determined number of processor cycles, the number being determined to optimize the performance of the multithreaded processor, or a variably and dynamically determined event, such as a cache or instruction miss.
    Type: Application
    Filed: March 14, 2005
    Publication date: September 14, 2006
    Inventors: Sujat Jamil, Erich Plondke, Lucian Codrescu, Muhammad Ahmed, William Anderson