Patents by Inventor Michael Gottlieb Jensen

Michael Gottlieb Jensen 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: 20120221838
    Abstract: The present invention provides software programmable hardware state machines to detect a cause of an error in a processor and prevent the error from occurring. A processor core is provided that includes an execution unit, a programmable mask register and a buffer that stores values representing instructions dispatched to the execution unit. The processor core also includes control logic to determine whether there is a match between a sequence in the mask register and a sequence in the buffer and, upon detecting a match, to generate control signals to perform a desired action. The desired action prevents an unwanted change from occurring to the architectural state of the processor. The processor core further comprises a programmable fix register. In an embodiment, the control logic generates the control signals based on control bits stored in the fix register.
    Type: Application
    Filed: February 24, 2012
    Publication date: August 30, 2012
    Applicant: MIPS Technologies, Inc.
    Inventors: Soumya BANERJEE, Gideon D. INTRATER, Michael Gottlieb JENSEN
  • Patent number: 8151093
    Abstract: The present invention provides software programmable hardware state machines to detect a cause of an error in a processor and prevent the error from occurring. In example embodiments, processors, systems and methods are provided to prevent an unwanted change in architectural state from occurring as a result of execution of a specific sequence of instruction types. A processor core is provided that includes an execution unit, a programmable mask register and a buffer that stores values representing instructions dispatched to the execution unit. The processor core also includes control logic to determine whether there is a match between a sequence in the mask register and a sequence in the buffer and, upon detecting a match, to generate control signals to perform a desired action. The desired action prevents an unwanted change from occurring to the architectural state of the processor.
    Type: Grant
    Filed: September 8, 2006
    Date of Patent: April 3, 2012
    Assignee: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, Gideon D. Intrater, Michael Gottlieb Jensen
  • Patent number: 8151268
    Abstract: A multithreading processor for concurrently executing multiple threads is provided. The processor includes an execution pipeline and a thread scheduler that dispatches instructions of the threads to the execution pipeline. The execution pipeline execution pipeline is configured for generating a thread context (TC) flush indicator associated with a thread context when one or more instructions of the thread context would stall in the execution pipeline. One or more instructions in the pipeline of the thread context associated with the thread context flush signal can be flushed or nullified.
    Type: Grant
    Filed: January 8, 2010
    Date of Patent: April 3, 2012
    Assignee: MIPS Technologies, Inc.
    Inventors: Darren M. Jones, Ryan C. Kinter, Michael Gottlieb Jensen, Sanjay Vishin
  • Patent number: 8078840
    Abstract: A fetch director in a multithreaded microprocessor that concurrently executes instructions of N threads is disclosed. The N threads request to fetch instructions from an instruction cache. In a given selection cycle, some of the threads may not be requesting to fetch instructions. The fetch director includes a circuit for selecting one of threads in a round-robin fashion to provide its fetch address to the instruction cache. The circuit 1-bit left rotatively increments a first addend by a second addend to generate a sum that is ANDed with the inverse of the first addend to generate a 1-hot vector indicating which of the threads is selected next. The first addend is an N-bit vector where each bit is false if the corresponding thread is requesting to fetch instructions from the instruction cache. The second addend is a 1-hot vector indicating the last selected thread.
    Type: Grant
    Filed: December 30, 2008
    Date of Patent: December 13, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, Michael Gottlieb Jensen
  • Patent number: 7990989
    Abstract: An apparatus for selecting one of a plurality of transaction queues from which to transmit a transaction out of a port of a switch. The apparatus includes a group indicator, for each of the queues, for indicating which one of a plurality of groups of the queues the queue belongs to. The apparatus also includes a group priority indicator, for each group of the plurality of groups, for indicating a priority of the group, the priority indicating a priority for transmitting transactions of the queues of the group relative to other groups of the plurality of groups. The apparatus includes selection logic, coupled to the group indicators and the priority indicators, configured to select a queue of the queues, for transmitting out of the port a transaction thereof, based on the group indicators and the group priority indicators.
    Type: Grant
    Filed: September 16, 2006
    Date of Patent: August 2, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7961745
    Abstract: A bifurcated selector for transmitting transactions from a plurality of transaction queues out a port of a switch. A transaction scheduler selects transactions of the queues for transmission to a device coupled to the port. A policy manager enforces a scheduling policy of the queues. An interface couples the policy manager to the transaction scheduler. The interface includes first signals for the transaction scheduler to receive from the policy manager a priority for each queue. The transaction scheduler selects the transactions for transmission to the device based on the priorities. The interface also includes second signals for the policy manager to receive from the transaction scheduler transaction transmission information for each queue. The policy manager updates the priorities based on the transaction transmission information. The transaction transmission information comprises an indication of which of the queues a transaction was selected from for transmission.
    Type: Grant
    Filed: September 16, 2006
    Date of Patent: June 14, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7925859
    Abstract: A three-tiered TLB architecture in a multithreading processor that concurrently executes multiple instruction threads is provided. A macro-TLB caches address translation information for memory pages for all the threads. A micro-TLB caches the translation information for a subset of the memory pages cached in the macro-TLB. A respective nano-TLB for each of the threads caches translation information only for the respective thread. The nano-TLBs also include replacement information to indicate which entries in the nano-TLB/micro-TLB hold recently used translation information for the respective thread. Based on the replacement information, recently used information is copied to the nano-TLB if evicted from the micro-TLB.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: April 12, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7773621
    Abstract: An apparatus for selecting one of N transaction queues from which to transmit a transaction out a switch port. P round-robin vectors of P queue priorities each have N bits that are a 1-bit left-rotated and subsequently sign-extended version of an N-bit input vector with a single bit true corresponding to the last queue selected at the priority. N P-input muxes each receive a corresponding bit of each round-robin vector and select one of the inputs specified by its queue priority. Selection logic receives a transaction from each queue and selects one transaction corresponding to the queue having a transmit value greater than or equal to the queues left thereof in the input vectors. Each queue's transmit value comprises a least-significant bit equal to the corresponding mux output, a most-significant bit that is true if its transaction is transmittable, and middle bits comprising the queue priority.
    Type: Grant
    Filed: September 16, 2006
    Date of Patent: August 10, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7760748
    Abstract: An apparatus selects one of N transaction queues from which to transmit a transaction out a port of a switch. A first input value specifies the last-selected queue. Only one of the N bits of the first value corresponding to the last selected queue is true. A second input value specifies which queue is enabled for selection. Each of the N bits of the second value whose corresponding queue is enabled is false. A barrel incrementer 1-bit left-rotatively increments the second value by the first value to generate a sum. Combinational logic generates a third value specifying which queue is selected next. The third value is a Boolean AND of the sum and an inverted version of the second value. Only one of the N bits of the third value corresponding to the next selected one of the queues is true.
    Type: Grant
    Filed: September 16, 2006
    Date of Patent: July 20, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Publication number: 20100115244
    Abstract: A multithreading processor for concurrently executing multiple threads is provided. The processor includes an execution pipeline and a thread scheduler that dispatches instructions of the threads to the execution pipeline. The execution pipeline execution pipeline is configured for generating a thread context (TC) flush indicator associated with a thread context when one or more instructions of the thread context would stall in the execution pipeline. One or more instructions in the pipeline of the thread context associated with the thread context flush signal can be flushed or nullified.
    Type: Application
    Filed: January 8, 2010
    Publication date: May 6, 2010
    Applicant: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Darren M. JONES, Ryan C. Kinter, Sanjay Vishin
  • Patent number: 7681014
    Abstract: An instruction dispatching apparatus in a multi threading microprocessor that concurrently executes N threads each in one of G groups each having one of P priorities. G round-robin vectors each have N bits corresponding to the threads, each being a 1-bit left-rotated and subsequently sign-extended version of an N-bit vector with a single bit true of the last thread selected for dispatching in the group. Each of N G-input muxes receive a corresponding one of the N bits of each of the round-robin vectors and selects for output one of the inputs specified by the corresponding thread's group. Selection logic selects for dispatching one of the N instructions corresponding to the thread whose dispatch value is greater than or equal to any of the N threads left thereof. Each dispatch value comprises a least-significant bit of the corresponding mux output, a most-significant dispatchable instruction bit, and middle thread group priority bits.
    Type: Grant
    Filed: July 27, 2005
    Date of Patent: March 16, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7664936
    Abstract: An apparatus for scheduling dispatch of instructions among a plurality of threads being concurrently executed in a multithreading processor is provided. The apparatus includes an instruction decoder that generate register usage information for an instruction from each of the threads, a priority generator that generates a priority for each instruction based on the register usage information and state information of instructions currently executing in an execution pipeline, and selection logic that dispatches at least one instruction from at least one thread based on the priority of the instructions. The priority indicates the likelihood the instruction will execute in the execution pipeline without stalling. For example, an instruction may have a high priority if it has little or no register dependencies or its data is known to be available; or may have a low priority if it has strong register dependencies or is an uncacheable or synchronized storage space load instruction.
    Type: Grant
    Filed: February 4, 2005
    Date of Patent: February 16, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Darren M. Jones, Ryan C. Kinter, Sanjay Vishin
  • Patent number: 7660969
    Abstract: A concurrent instruction dispatch apparatus includes a group indicator for each of a plurality of threads that indicates which one of a plurality of groups of the threads the thread belongs to. A group priority indicator for each group indicates an instruction dispatch priority relative to the other groups. Selection logic selects a thread for dispatching an instruction thereof based on the group and group priority indicators. A bifurcated scheduler includes first scheduler logic that issues instructions of the threads to an execution unit, second scheduler logic that enforces a thread scheduling policy, and an interface. A group indicator indicates which group each thread belongs to, a priority for each group, and execution information for each thread. The first scheduler logic issues the instructions based on the group priorities and group indicators, and the second scheduler logic updates the group indicators based on the instruction execution information.
    Type: Grant
    Filed: January 5, 2007
    Date of Patent: February 9, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7657883
    Abstract: A dispatch scheduler in a multithreading microprocessor is disclosed. Each of N concurrently executing threads has one of P priorities. P N-bit round-robin vectors are generated, each being a 1-bit left-rotated and subsequently sign-extended version of an N-bit 1-hot input vector indicating the last thread selected for dispatching at the priority. N P-input muxes each receive a corresponding one of the N bits of each of the P round-robin vectors and selects the input specified by the thread priority. Selection logic selects an instruction for dispatching from the thread having a dispatch value greater than or equal to any of the threads left thereof in the N-bit input vectors. The dispatch value of each of the threads comprises a least-significant bit equal to the corresponding P-input mux output, a most-significant bit that is true if the instruction is dispatchable, and middle bits comprising the priority of the thread.
    Type: Grant
    Filed: March 22, 2005
    Date of Patent: February 2, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7657891
    Abstract: A multithreading processor for concurrently executing multiple threads is provided. The processor includes an execution pipeline and a thread scheduler that dispatches instructions of the threads to the execution pipeline. The execution pipeline detects a stalling event caused by a dispatched instruction, and flushes the execution pipeline to enable instructions of other threads to continue executing. The execution pipeline communicates to the scheduler which thread caused the stalling event, and the scheduler stops dispatching instructions for the thread until the stalling condition terminates. In one embodiment, the execution pipeline only flushes the thread including the instruction that caused the event. In one embodiment, the execution pipeline stalls rather than flushing if the thread is the only runnable thread. In one embodiment, the processor includes skid buffers to which the flushed instructions are rolled back so the instruction fetch pipeline need not be flushed, only the execution pipeline.
    Type: Grant
    Filed: February 4, 2005
    Date of Patent: February 2, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Darren M. Jones, Ryan C. Kinter, Sanjay Vishin
  • Publication number: 20090327649
    Abstract: A three-tiered TLB architecture in a multithreading processor that concurrently executes multiple instruction threads is provided. A macro-TLB caches address translation information for memory pages for all the threads. A micro-TLB caches the translation information for a subset of the memory pages cached in the macro-TLB. A respective nano-TLB for each of the threads caches translation information only for the respective thread. The nano-TLBs also include replacement information to indicate which entries in the nano-TLB/micro-TLB hold recently used translation information for the respective thread. Based on the replacement information, recently used information is copied to the nano-TLB if evicted from the micro-TLB.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 31, 2009
    Applicant: MIPS Technologies, Inc.
    Inventors: Soumya BANERJEE, Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7634638
    Abstract: An instruction encoding architecture is provided for a microprocessor to allow atomic modification of privileged architecture registers. The instructions include an opcode that designates to the microprocessor that the instructions are to execute in privileged (kernel) state only, and that the instructions are to communicate with privileged control registers, a field for designating which of a plurality of privileged architecture registers is to be modified, a field for designating which bit fields within the designated privileged architecture register is to be modified, and a field to designate whether the designated bit fields are to be set or cleared. The instruction encoding allows a single instruction to atomically set or clear bit fields within privileged architecture registers, without reading the privileged architecture registers into a general purpose register.
    Type: Grant
    Filed: October 22, 2002
    Date of Patent: December 15, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7631130
    Abstract: A circuit for selecting one of N requestors in a round-robin fashion is disclosed. The circuit 1-bit left rotatively increments a first addend by a second addend to generate a sum that is ANDed with the inverse of the first addend to generate a 1-hot vector indicating which of the requestors is selected next. The first addend is an N-bit vector where each bit is false if the corresponding requester is requesting access to a shared resource. The second addend is a 1-hot vector indicating the last selected requester. A multithreading microprocessor dispatch scheduler employs the circuit for N concurrent threads each thread having one of P priorities. The dispatch scheduler generates P N-bit 1-hot round-robin bit vectors, and each thread's priority is used to select the appropriate round-robin bit from P vectors for combination with the thread's priority and an issuable bit to create a dispatch level used to select a thread for instruction dispatching.
    Type: Grant
    Filed: March 22, 2005
    Date of Patent: December 8, 2009
    Assignee: MIPS Technologies, Inc
    Inventor: Michael Gottlieb Jensen
  • Publication number: 20090271592
    Abstract: A circuit for selecting one of N requesters in a round-robin fashion is disclosed. The circuit 1-bit left rotatively increments a first addend by a second addend to generate a sum that is ANDed with the inverse of the first addend to generate a 1-hot vector indicating which of the requestors is selected next. The first addend is an N-bit vector where each bit is false if the corresponding requester is requesting access to a shared resource. The second addend is a 1-hot vector indicating the last selected requestor. A multithreading microprocessor dispatch scheduler employs the circuit for N concurrent threads each thread having one of P priorities. The dispatch scheduler generates P N-bit 1-hot round-robin bit vectors, and each thread's priority is used to select the appropriate round-robin bit from P vectors for combination with the thread's priority and an issuable bit to create a dispatch level used to select a thread for instruction dispatching.
    Type: Application
    Filed: April 23, 2009
    Publication date: October 29, 2009
    Applicant: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Patent number: 7600100
    Abstract: An instruction encoding architecture is provided for a microprocessor to allow atomic modification of privileged architecture registers. The instructions include an opcode that designates the instructions are to be executed in privileged (kernel) state only, and are to communicate with privileged control registers. The instructions designate which of a plurality of privileged architecture registers is to be modified, which bit fields within the designated privileged architecture register is to be modified, and whether the designated bit fields are to be set or cleared. An instruction atomically sets or clears bit fields within privileged architecture registers, without reading the privileged architecture registers into a general purpose register. In addition, the instruction encoding allows a programmer to specify whether the previous content of a privileged architecture register is to be saved to a general purpose register during the atomic modification.
    Type: Grant
    Filed: December 6, 2006
    Date of Patent: October 6, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen