Patents Assigned to MIPS Technologies, Inc.
  • Patent number: 8181000
    Abstract: A method and apparatus within a processing system is provided for associating shadow register sets with interrupt routines. The invention includes a vector generator that receives interrupts, and generates exception vectors to call interrupt routines that correspond to the interrupts. The exception vector considers the type of interrupt and the priority level of the interrupt when selecting the exception vector. Shadow set mapping logic is coupled to the vector generator. The mapping logic contains a number of fields that correspond to the different exception vectors that may be generated. The fields are programmable by kernel mode instructions, and contain data mapping each field to one of a number of shadow register sets. When an interrupt occurs, the vector generator generates a corresponding exception vector. In addition, the shadow set mapping logic looks at the field corresponding to the exception vector, and retrieves the data stored therein.
    Type: Grant
    Filed: April 17, 2006
    Date of Patent: May 15, 2012
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael G. Uhler
  • Patent number: 8171262
    Abstract: A method and apparatus for overlaying hazard clearing with a jump instruction within a pipeline microprocessor is described. The apparatus includes hazard logic to detect when a jump instruction specifies that hazards are to be cleared as part of a jump operation. If hazards are to be cleared, the hazard logic disables branch prediction for the jump instruction, thereby causing the jump instruction to proceed down the pipeline until it is finally resolved, and flushing the pipeline behind the jump instruction. Disabling of branch prediction for the jump instruction effectively clears all execution and/or instruction hazards that preceded the jump instruction. Alternatively, hazard logic causes issue control logic to stall the jump instruction for n-cycles until all hazards are cleared. State tracking logic may be provided to determine whether any instructions are executing in the pipeline that create hazards. If so, hazard logic performs normally.
    Type: Grant
    Filed: November 21, 2005
    Date of Patent: May 1, 2012
    Assignee: MIPS Technology, Inc.
    Inventors: Niels Gram Jeppesen, G. Michael Uhler
  • Publication number: 20120082167
    Abstract: A system for processing data packets in a data packet network has at least one input port for receiving data packets, at least one output port for sending out data packets, a processor for processing packet data, and a packet predictor for predicting a future packet based on a received packet, such that at least some processing for the predicted packet may be accomplished before the predicted packet actually arrives at the system. The system is used in preferred embodiments in Internet routers.
    Type: Application
    Filed: December 12, 2011
    Publication date: April 5, 2012
    Applicant: MIPS Technologies, Inc.
    Inventor: Enrique MUSOLL
  • 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: 8145882
    Abstract: A system implemented in hardware includes a main processing core decoding instructions for out of order execution. The instructions include template based user defined instructions. A user execution block executes the template based user defined instructions. An interface is positioned between the main processing core and the user execution block. A computer readable medium includes executable instructions to describe a processing core supporting execution of a proprietary instruction set and decoding of customized instructions that adhere to a specified pattern. The specified pattern includes a source, a destination and a latency period. A user execution block is connected to the processing core to execute the customized instructions.
    Type: Grant
    Filed: May 25, 2006
    Date of Patent: March 27, 2012
    Assignee: MIPS Technologies, Inc.
    Inventors: Karagada Ramarao Kishore, Gideon Intrater, Xing Xu Jiang, Maria Ukanwa
  • Patent number: 8145884
    Abstract: A fork instruction for execution on a multithreaded microprocessor and occupying a single instruction issue slot is disclosed. The fork instruction, executing in a parent thread, includes a first operand specifying the initial instruction address of a new thread and a second operand. The microprocessor executes the fork instruction by allocating context for the new thread, copying the first operand to a program counter of the new thread context, copying the second operand to a register of the new thread context, and scheduling the new thread for execution. If no new thread context is free for allocation, the microprocessor raises an exception to the fork instruction. The fork instruction is efficient because it does not copy the parent thread general purpose registers to the new thread. The second operand is typically used as a pointer to a data structure in memory containing initial general purpose register set values for the new thread.
    Type: Grant
    Filed: October 23, 2009
    Date of Patent: March 27, 2012
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Patent number: 8131941
    Abstract: A number of coherence domains are maintained among the multitude of processing cores disposed in a microprocessor. A cache coherency manager defines the coherency relationships such that coherence traffic flows only among the processing cores that are defined as having a coherency relationship. The data defining the coherency relationships between the processing cores is optionally stored in a programmable register. For each source of a coherent request, the processing core targets of the request are identified in the programmable register. In response to a coherent request, an intervention message is forwarded only to the cores that are defined to be in the same coherence domain as the requesting core. If a cache hit occurs in response to a coherent read request and the coherence state of the cache line resulting in the hit satisfies a condition, the requested data is made available to the requesting core from that cache line.
    Type: Grant
    Filed: September 21, 2007
    Date of Patent: March 6, 2012
    Assignee: MIPS Technologies, Inc.
    Inventor: Ryan C. Kinter
  • Publication number: 20120036380
    Abstract: The present invention provides a clock ratio controller for dynamic voltage and frequency scaled digital systems, and applications thereof. In an embodiment, a digital system is provided that includes a first digital circuit that operates at a first rate determined by a first clock signal and a second digital circuit that operates at a second rate determined by a second clock signal. The first digital circuit is coupled to the second digital circuit by a bus that is used for communications between the first digital circuit and the second digital circuit. A clock ratio controller is used to adjust the frequency of the first clock signal and/or the second clock signal in response to a power management signal without causing a loss of synchronization between the first digital circuit and the second digital circuit.
    Type: Application
    Filed: October 20, 2011
    Publication date: February 9, 2012
    Applicant: MIPS Technologies, Inc.
    Inventor: Matthias KNOTH
  • Publication number: 20120030392
    Abstract: A processing system is provided consisting of an interrupt pin, multiple registers, a stack pointer, and an automatic interrupt system. The multiple registers store a number of processor states values. When the system detects an interrupt on the interrupt pin the system prepares to enter an exception mode where the automatic interrupt system causes an interrupt vector to be fetched, the stack pointer to be updated, and the processor state values to be read in parallel from the registers and stored in memory locations based on the updated stack pointer, prior to the execution of an interrupt service routine.
    Type: Application
    Filed: July 30, 2010
    Publication date: February 2, 2012
    Applicant: MIPS Technologies, Inc.
    Inventors: Erik K. Norden, David Yiu-Man Lau, James H. Robinson
  • Patent number: 8103987
    Abstract: A system and methods that facilitate the design process and minimize the time and effort required to complete the design and fabrication of an integrated circuits (IC) are described. The system and method utilize a plurality of repositories, rules engines and design and verification tools to analyze the workload and automatically produce a hardened GDSII description or other representation of the device. The system and method securely maintains synthesizable RTL on a server in a data center while providing designers access to portions of the mechanism by way of a network portal.
    Type: Grant
    Filed: March 9, 2007
    Date of Patent: January 24, 2012
    Assignee: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, Todd Michael Bezenek, Clement Tse
  • Patent number: 8081645
    Abstract: A method for processing multiple data packets includes receiving from a network interface, at a packet management unit (PMU), a data packet for processing, and determining whether to store or drop the data packet. The method further includes queueing the data packet in a queue within a queueing system and preloading a portion of the data packet into a context from a pool of contexts in a stream processing unit (SPU). The queued data packet referenced by the context is processed by the SPU and outputted to the network interface.
    Type: Grant
    Filed: December 29, 2009
    Date of Patent: December 20, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Enrique Musoll, Mario Nemirovsky
  • 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: 8078806
    Abstract: A microprocessor coupled to a system memory by a bus includes an instruction decode unit that decodes an instruction that specifies a data stream in the system memory and a stream prefetch priority. The microprocessor also includes a load/store unit that generates load/store requests to transfer data between the system memory and the microprocessor. The microprocessor also includes a stream prefetch unit that generates a plurality of prefetch requests to prefetch the data stream from the system memory into the microprocessor. The prefetch requests specify the stream prefetch priority. The microprocessor also includes a bus interface unit (BIU) that generates transaction requests on the bus to transfer data between the system memory and the microprocessor in response to the load/store requests and the prefetch requests. The BIU prioritizes the bus transaction requests for the prefetch requests relative to the bus transaction requests for the load/store requests based on the stream prefetch priority.
    Type: Grant
    Filed: October 25, 2010
    Date of Patent: December 13, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 8078846
    Abstract: A conditional move instruction implemented in a processor by forming and processing two decoded instructions, and applications thereof. In an embodiment, the conditional move instruction specifies a first source operand, a second source operand, and a third operand that is both a source and a destination. If the value of the second operand is not equal to a specified value, the first decoded instruction moves the third operand to a completion buffer register. If the value of the second operand is equal to the specified value, the second decoded instruction moves the value of the first operand to the completion buffer. When the decoded instruction that performed the move graduates, the contents of the completion buffer register is transferred to a register file register specified by the third operand.
    Type: Grant
    Filed: December 18, 2006
    Date of Patent: December 13, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Karagada Ramarao Kishore, Xing Yu Jiang, Vidya Rajagopalan, Maria Ukanwa
  • Patent number: 8077734
    Abstract: A system for processing data packets in a data packet network has at least one input port for receiving data packets, at least one output port for sending out data packets, a processor for processing packet data, and a packet predictor for predicting a future packet based on a received packet, such that at least some processing for the predicted packet may be accomplished before the predicted packet actually arrives at the system. The system is used in preferred embodiments in Internet routers.
    Type: Grant
    Filed: August 4, 2008
    Date of Patent: December 13, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Enrique Musoll
  • Patent number: 8074058
    Abstract: The present invention provides extended precision in SIMD arithmetic operations in a processor having a register file and an accumulator. A first set of data elements and a second set of data elements are loaded into first and second vector registers, respectively. Each data element comprises N bits. Next, an arithmetic instruction is fetched from memory. The arithmetic instruction is decoded. Then, the first vector register and the second vector register are read from the register file. The present invention executes the arithmetic instruction on corresponding data elements in the first and second vector registers. The resulting element of the execution is then written into the accumulator. Then, the resulting element is transformed into an N-bit width element and written into a third register for further operation or storage in memory. The transformation of the resulting element can include, for example, rounding, clamping, and/or shifting the element.
    Type: Grant
    Filed: June 8, 2009
    Date of Patent: December 6, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Timothy J. Van Hook, Peter Hsu, William A. Huffman, Henry P. Moreton, Earl A. Killian
  • Patent number: 8069354
    Abstract: Power management control software including power management policies is provided with those policies divided into observation code and response code. When predetermined execution points within the operating system 2 are reached or an application specific task is executed, registered observation code is triggered and executed to store event data within an event data store. The operating system subsequently executes the response code to read the event data from the event data store and generates power control predictions and control signals therefrom.
    Type: Grant
    Filed: August 14, 2007
    Date of Patent: November 29, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: John S. Min
  • Patent number: 8051320
    Abstract: The present invention provides a clock ratio controller for dynamic voltage and frequency scaled digital systems, and applications thereof. In an embodiment, a digital system is provided that includes a first digital circuit that operates at a first rate determined by a first clock signal and a second digital circuit that operates at a second rate determined by a second clock signal. The first digital circuit is coupled to the second digital circuit by a bus that is used for communications between the first digital circuit and the second digital circuit. A clock ratio controller is used to adjust the frequency of the first clock signal and/or the second clock signal in response to a power management signal without causing a loss of synchronization between the first digital circuit and the second digital circuit.
    Type: Grant
    Filed: December 12, 2007
    Date of Patent: November 1, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Matthias Knoth
  • Patent number: 8037253
    Abstract: A method and apparatus is described for insuring coherency between memories in a multi-agent system where the agents are interconnected by one or more fabrics. A global arbiter is used to segment coherency into three phases: request; snoop; and response, and to apply global ordering to the requests. A bus interface having request, snoop, and response logic is provided for each agent. A bus interface having request, snoop and response logic is provided for the global arbiter, and a bus interface is provided to couple the global arbiter to each type of fabric it is responsible for. Global ordering and arbitration logic tags incoming requests from the multiple agents and insures that snoops are responded to according to the global order, without regard to latency differences in the fabrics.
    Type: Grant
    Filed: September 10, 2009
    Date of Patent: October 11, 2011
    Assignee: MIPS Technologies, Inc.
    Inventors: Thomas A. Petersen, Sanjay Vishin