Patents by Inventor Eric J. Stotzer

Eric J. Stotzer 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: 8549466
    Abstract: A method of register allocation in complier using a computer instruction set having tiered instructions that accesses differing numbers of registers makes a first preliminary register allocation attempt using an initially specified register set for each instruction. If this fails, the method identifies instructions having an initially specified limited register having a variable not register allocatable. The method makes a second preliminary register allocation attempt except using a less restrictive register set for the identified instructions. This method employs a next less restrictive register set and re-attempts preliminary register allocations for instructions with more than two levels of register restriction.
    Type: Grant
    Filed: July 17, 2006
    Date of Patent: October 1, 2013
    Assignee: Texas Instruments Incorporated
    Inventors: Dineel Diwakar Sule, Eric J. Stotzer, Todd T. Hahn
  • Patent number: 7673119
    Abstract: This invention is useful in a very long instruction word data processor that fetches a predetermined plural number of instructions each operation cycle. A predetermined one of these instructions is used as a special header. This special header has a unique encoding different from any normal instruction. When decoded this special header instructs decode hardware to decode this fetch packet in a special way. In one embodiment a bit field in the header signals the decode hardware whether to decode each instruction word normally or in an alternative way. The header may include extension opcode bits corresponding to each of the other instruction slots. In another embodiment another bit field signals whether to decode an instruction field as one normal length instruction or as two half-length instructions.
    Type: Grant
    Filed: May 8, 2006
    Date of Patent: March 2, 2010
    Assignee: Texas Instruments Incorporated
    Inventors: Michael D. Asal, Eric J. Stotzer, Todd T. Hahn
  • Patent number: 7581082
    Abstract: This invention employs a 16-bit instruction set that has a subset of the functionality of the 32-bit instruction set. In this invention 16-bit instructions and 32-bit instructions can coexist in the same fetch packet. In the prior architecture 32-bit instructions may not span a 32-bit boundary. The 16-bit instruction set is implemented with a special fetch packet header that signals whether the fetch packet includes some 16-bit instructions. This fetch packet header also has special bits that tell the hardware how to interpret a particular 16-bit instruction. These bits essentially allow overlays on the whole or part of the 16-bit instruction space. This makes the opcode space larger permitting more instructions than with a pure 16-bit opcode space.
    Type: Grant
    Filed: May 8, 2006
    Date of Patent: August 25, 2009
    Assignee: Texas Instruments Incorporated
    Inventors: Todd T. Hahn, Eric J. Stotzer, Michael D. Asal
  • Patent number: 7062762
    Abstract: The present invention provides methods specifically geared to finding natural splits in wide, nearly symmetric dependence graphs and assigning the components of the split to clusters in a VLIW processor. The basic approach of these methods is to assign a node n of the dependence graph to the cluster to which it has the strongest affinity. A node n has the strongest affinity to the cluster containing its closest common ancestor node. Then, the mirror image node or nodes of the node n are located if they are present in the graph and are assigned to other clusters in the processor to which they have the strongest affinity.
    Type: Grant
    Filed: December 12, 2002
    Date of Patent: June 13, 2006
    Assignee: Texas Instruments Incorporated
    Inventors: Gayathri Krishnamurthy, Elana D. Granston, Eric J. Stotzer
  • Patent number: 6892380
    Abstract: A method for software pipelining of irregular conditional control loops including pre-processing the loops so they can be safely software pipelined. The pre-processing step ensures that each original instruction in the loop body can be over-executed as many times as necessary. During the pre-processing stage, each instruction in the loop body is processing in turn (N4). If the instruction can be safely speculatively executed, it is left alone (N6). If it could be safely speculatively executed except that it modifies registers that are live out of the loop, then the instruction can be pre-processed using predication or register copying (N7, N8, N9). Otherwise, predication must be applied (N10). Predication is the process of guarding an instruction. When the guard condition is true, the instruction executes as though it were unguarded. When the guard condition is false, the instruction is nullified.
    Type: Grant
    Filed: December 8, 2000
    Date of Patent: May 10, 2005
    Assignee: Texas Instruments Incorporated
    Inventors: Elana D. Granston, Joseph Zbiciak, Eric J. Stotzer
  • Patent number: 6889320
    Abstract: A data processing system with a microprocessor that has an instruction execution pipeline that includes fetch and decode stages and several functional execution units. Fetch packets contain a plurality of instruction words. Execution packets include a plurality of instruction words that can be executed in parallel by two or more execution units. An execution packet can span two or more fetch packets. An add (k) constant to program counter (ADDKPC) instruction is provided, such that a parameter specified by the ADDKPC instruction is combined with a value provided by a program counter of microprocessor. The ADDKPC instruction can also specify a number of delay slots after a branch instruction to be filled with virtual NOP instructions such that memory is not wasted with useless NOP instructions. An ADDKPC instruction can provide a relative address for use as a return address. A plurality of predicated ADDKPC instructions can provide a return address selected from a plurality of return addresses.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: May 3, 2005
    Assignee: Texas Instruments Incorporated
    Inventors: Alan L. Davis, Richard H. Scales, Natarajan Seshan, Eric J. Stotzer, Reid E. Tatge
  • Patent number: 6799266
    Abstract: A method for reducing total code size in a processor having an exposed pipeline may include the steps of determining a latency between a load instruction, and a using instruction and inserting a NOP field into the defining or using instruction. When inserted into the load instruction, the NOP field defines the following latency following the load instruction. When inserted into the using instruction, the NOP field defines the latency preceding the using instruction. In addition, a method for reducing total code size during branching may include the steps of determining a latency following a branch instruction for initiating a branch from a first point to a second point in an instruction stream, and inserting a NOP field into the branch instruction.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: September 28, 2004
    Assignee: Texas Instruments Incorporated
    Inventors: Eric J. Stotzer, Elana D. Granston, Alan S. Ward
  • Patent number: 6754893
    Abstract: A method for reducing a code size of a software pipelined loop, the software pipelined loop having a kernel and an epilog. The method includes first evaluating a stage of the epilog. This includes selecting a stage of the epilog to evaluate (504) and evaluating an instruction in a reference stage. This includes identifying an instruction in the reference stage that is not present in the selected stage of the epilog (506) and determining if the identified instruction can be speculated (508). If the identified instruction can be speculated, such is noted. If the instruction cannot be speculated, it is determined whether the identified instruction can be predicated (512). If the instruction can be predicated, it is marked as needing predication (514). Next, it is determined if another instruction in the reference stage is not present in the selected stage of the epilog (510). If there is, the instruction evaluation is repeated.
    Type: Grant
    Filed: December 7, 2000
    Date of Patent: June 22, 2004
    Assignee: Texas Instruments Incorporated
    Inventors: Elana D. Granston, Joseph Zbiciak, Alan S. Ward, Eric J. Stotzer
  • Patent number: 6691240
    Abstract: A method for implementing a variable length delay instruction includes the steps of designating a source register for holding information and designating a destination register for retrieving the information. A first number of cycles before retrieval of the information to the destination register then is determined, and the information is transferred from the source register to delaying device, such as queuing device, for the first number of cycles. Finally, the information is written from the delaying device to the destination register. An apparatus for implementing variable length delay instructions includes an input line for reading information from a source register; delaying device for receiving said information read from the source register; a multiplexer; and a select line. A trigger signal is transmitted to the multiplexer, thereby instructing the multiplexer to write the information to a destination register.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: February 10, 2004
    Assignee: Texas Instruments Incorporated
    Inventors: Eric J. Stotzer, David Hoyle, Joseph Zbiciak
  • Publication number: 20030182511
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline procedure in response to a predetermined instruction. The apparatus provides a prolog, a kernel, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline procedure can be terminated early. A second software procedure can be initiated prior to the completion of first software procedure. The apparatus can execute an inner nested loop of a nested loop instruction set as a software pipeline procedure. The inner nested loop instruction set is stored in a buffer memory unit during the execution of the outer nested loop instruction set. The epilog of the inner nested loop instruction set can overlap the execution of the outer loop instruction set and the execution of the prolog of the next inner nested loop procedure.
    Type: Application
    Filed: August 21, 2002
    Publication date: September 25, 2003
    Inventors: Michael D. Asal, Eric J. Stotzer
  • Publication number: 20030154469
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline procedure in response to a predetermined instruction. The apparatus provides a prolog state, a kernel state, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline loop procedure can be terminated early. Apparatus is provided whereby a second software pipeline loop procedure can be initiated prior to the completion of a first software pipeline procedure. Two additional instructions are provided for addressing problems resulting from hardware pipeline delays and for more efficient program execution.
    Type: Application
    Filed: August 21, 2002
    Publication date: August 14, 2003
    Inventors: Timothy Anderson, Michael D. Asal, Eric J. Stotzer
  • Publication number: 20030135724
    Abstract: The present invention provides methods specifically geared to finding natural splits in wide, nearly symmetric dependence graphs and assigning the components of the split to clusters in a VLIW processor. The basic approach of these methods is to assign a node n of the dependence graph to the cluster to which it has the strongest affinity. A node n has the strongest affinity to the cluster containing its closest common ancestor node. Then, the mirror image node or nodes of the node n are located if they are present in the graph and are assigned to other clusters in the processor to which they have the strongest affinity.
    Type: Application
    Filed: December 12, 2002
    Publication date: July 17, 2003
    Inventors: Gayathri Krishnamurthy, Elana D. Granston, Eric J. Stotzer
  • Publication number: 20030120900
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline procedure in response to a predetermined instruction. The apparatus provides a prolog, a kernel, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline loop procedure can be terminated early. A second software pipeline loop procedure can be initiated prior to the completion of first software pipeline loop procedure.
    Type: Application
    Filed: August 21, 2002
    Publication date: June 26, 2003
    Inventors: Eric J. Stotzer, Steven D. Krueger, Timothy Anderson
  • Publication number: 20030120899
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline procedure in response to a predetermined instruction. The apparatus provides a prolog, a kernel, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline procedure can be terminated early. An interrupt state is provided to permit the servicing of an interrupt.
    Type: Application
    Filed: August 21, 2002
    Publication date: June 26, 2003
    Inventors: Eric J. Stotzer, Steve D. Krueger, Timothy D. Anderson, Michael D. Asal
  • Publication number: 20030120905
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline procedure in response to a predetermined instruction. The apparatus provides a prolog, a kernel, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline procedure can be terminated early. A second software procedure can be initiated prior to the completion of first software procedure. The apparatus can execute an inner nested loop of a nested loop instruction set as a software pipeline procedure. The inner nested loop instruction set is stored in a buffer memory unit during the execution of the outer nested loop instruction set. The epilog of the inner nested loop instruction set can overlap the execution of the outer loop instruction set and the execution of the prolog of the next inner nested loop procedure.
    Type: Application
    Filed: August 21, 2002
    Publication date: June 26, 2003
    Inventors: Eric J. Stotzer, Michael D. Asal
  • Publication number: 20030120882
    Abstract: A program memory controller unit includes apparatus for the execution of a software pipeline loop procedure in response to a predetermined instruction. The apparatus provides a prolog, a kernel, and an epilog state for the execution of the software pipeline procedure. In addition, in response to a predetermined condition, the software pipeline procedure can be terminated early. A second software procedure can be initiated prior to the completion of first software procedure. An SPEXIT instruction is provided to permit the software pipeline program to terminate upon the identification of a preselected condition. The SPEXIT instruction is placed in the instruction sequence to insure that response to the instruction occurs after the prolog procedure has been completed. The SPEXIT instruction, upon identification of the preselected condition, results in the software pipeline loop procedure entering an idle state.
    Type: Application
    Filed: August 21, 2002
    Publication date: June 26, 2003
    Inventors: Elana D. Granston, Eric J. Stotzer, Steve D. Krueger, Timothy D. Anderson
  • Publication number: 20020120923
    Abstract: A method for software pipelining of irregular conditional control loops including pre-processing the loops so they can be safely software pipelined. The pre-processing step ensures that each original instruction in the loop body can be over-executed as many times as necessary. During the pre-processing stage, each instruction in the loop body is processing in turn (N4). If the instruction can be safely speculatively executed, it is left alone (N6). If it could be safely speculatively executed except that it modifies registers that are live out of the loop, then the instruction can be pre-processed using predication or register copying (N7, N8, N9). Otherwise, predication must be applied (N10). Predication is the process of guarding an instruction. When the guard condition is true, the instruction executes as though it were unguarded. When the guard condition is false, the instruction is nullified.
    Type: Application
    Filed: December 8, 2000
    Publication date: August 29, 2002
    Inventors: Elana D. Granston, Joseph Zbiciak, Eric J. Stotzer
  • Publication number: 20020112228
    Abstract: A method for reducing a code size of a software pipelined loop, the software pipelined loop having a kernel and an epilog. The method includes first evaluating a stage of the epilog. This includes selecting a stage of the epilog to evaluate (504) and evaluating an instruction in a reference stage. This includes identifying an instruction in the reference stage that is not present in the selected stage of the epilog (506) and determining if the identified instruction can be speculated (508). If the identified instruction can be speculated, such is noted. If the instruction cannot be speculated, it is determined whether the identified instruction can be predicated (512). If the instruction can be predicated, it is marked as needing predication (514). Next, it is determined if another instruction in the reference stage is not present in the selected stage of the epilog (510). If there is, the instruction evaluation is repeated.
    Type: Application
    Filed: December 7, 2000
    Publication date: August 15, 2002
    Inventors: Elana D. Granston, Joseph Zbiciak, Alan S. Ward, Eric J. Stotzer
  • Patent number: 5884023
    Abstract: A method for testing a digital processor 11 in which a test port 1149 is used to transfer trace data from the digital processor to a test host processor 1101 under control of a user definable program which executes in response to predetermined events on the digital processor. Trace data is gathered while an application program loaded in program memory 61 is executed by the digital processor. Trace data is temporarily stored in a trace region 99 of data memory 25 by user definable code which is executed in a background manner by the digital processor in response to trigger events. The trigger events are also enabled by user definable code which enables various portions of analysis hardware 1217. Trace data is transferred from the digital processor to the test host processor through test port 1149 by sending a notification signal to the test host processor by means of message passing register 1216.
    Type: Grant
    Filed: December 9, 1996
    Date of Patent: March 16, 1999
    Assignee: Texas Instruments Incorporated
    Inventors: Gary L. Swoboda, Eric J. Stotzer