Patents Assigned to MIPS Technologies, Inc.
  • Patent number: 7711763
    Abstract: Polynomial arithmetic instructions are provided in an instruction set architecture (ISA). A multiply-add-polynomial (MADDP) instruction and a multiply-polynomial (MULTP) instruction are provided.
    Type: Grant
    Filed: February 21, 2001
    Date of Patent: May 4, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Morten Stribaek, Kevin D. Kissell, Pascal Paillier
  • Patent number: 7711934
    Abstract: A processor core and method for managing branch misprediction in an out-of-order processor pipeline. In one embodiment, the pipeline of the processor core includes a front-end instruction fetch portion, a back-end instruction execution portion, and pipeline control logic. Operation of the instruction fetch portion is decoupled from operation of the instruction execution portion. Following detection of a control transfer misprediction, operation of the instruction fetch portion is halted and instructions residing in the instruction fetch portion are invalidated. When the instruction associated with the misprediction reaches a selected pipeline stage, instructions residing in the instruction execution portion of the pipeline are invalidated and the flow of instructions from the instruction fetch portion to the instruction execution portion of the processor pipeline is restarted.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: May 4, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Karagada Ramarao Kishore, Kjeld Svendsen, Vidya Rajagopalan
  • Patent number: 7711926
    Abstract: A method, cache controller, and computer processor provide a parallel mapping system whereby a plurality of mappers processes several inputs simultaneously. The plurality of mappers are disposed in a pipelined processor upstream from a multiplexor. Mapping, tag comparison, and selection by the multiplexor all occur in a single pipeline stage. Data does not wait idly to be selected by the multiplexor. Instead, each instruction of a first instruction set is read in parallel into a corresponding one of the plurality of mappers. This parallel mapping system implementation reduces processor cycle time and results in improved processor efficiency.
    Type: Grant
    Filed: April 18, 2001
    Date of Patent: May 4, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Ryan C. Kinter, David A. Courtright
  • Patent number: 7711931
    Abstract: A shared resource access control system having a gating storage responsive to a plurality of controls with each of the controls derived from an instruction context identifying the shared resource, the gating storage including a plurality of sets of access method functions with each set of access method functions including a first access method function and a second access method function with the gating storage producing a particular one access method function from a particular one set responsive to the controls; and a controller, coupled to the gating storage, for controlling access to the shared resource using the particular one access method function.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: May 4, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Publication number: 20100103938
    Abstract: A context-selection mechanism is provided for selecting a best context from a pool of contexts for processing a data packet. The context selection mechanism comprises, an interface for communicating with a multi-streaming processor; circuitry for computing input data into a result value according to logic rule and for selecting a context based on the computed value and a loading mechanism for preloading the packet information into the selected context for subsequent processing. The computation of the input data functions to enable identification and selection of a best context for processing a data packet according to the logic rule at the instant time such that a multitude of subsequent context selections over a period of time acts to balance load pressure on functional units housed within the multi-streaming processor and required for packet processing. In preferred aspects, programmable singular or multiple predictive rules of logic are utilized in the selection process.
    Type: Application
    Filed: December 29, 2009
    Publication date: April 29, 2010
    Applicant: MIPS Technologies, Inc.
    Inventors: Enrique MUSOLL, Mario Nemirovsky
  • Patent number: 7707391
    Abstract: In a multi-streaming processor, a system for fetching instructions from individual ones of multiple streams to an instruction pipeline is provided, comprising a fetch algorithm for selecting from which stream to fetch an instruction, and one or more predictors for forecasting whether a load instruction will hit or miss the cache or a branch will be taken. The prediction or predictions are used by the fetch algorithm in determining from which stream to fetch. In some cases probabilities are determined and also used in decisions, and predictors may be used at either or both of fetch and dispatch stages.
    Type: Grant
    Filed: April 6, 2006
    Date of Patent: April 27, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Enrique Musoll, Mario D. Nemirovsky
  • Patent number: 7707389
    Abstract: A method and apparatus for recoding one or more instruction sets. An expand instruction and an expandable instruction are read from an instruction cache. A tag compare and way selection unit checks to verify each instruction is a desired instruction. An instruction staging unit dispatches the expand instruction to a first recoder and the expandable instruction to a second recoder of a recoding unit. At least one information bit based on the expand instruction is generated at the first recoder. The second recoder uses the at least one information bit generated at the first recoder to recode the expandable instruction, and the recoded expandable instruction is placed in an instruction buffer.
    Type: Grant
    Filed: October 31, 2003
    Date of Patent: April 27, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, John L. Kelley, Ryan C. Kinter
  • Patent number: 7702055
    Abstract: A method of tracing processor data includes receiving a first trace stream from a first processor operating in response to a first clock and a second trace stream from a second processor operating in response to a second clock. The first trace stream is routed to a first dual-port synchronous memory in accordance with the first clock and the second trace stream is routed to a second dual-port synchronous memory in accordance with the second clock. The first trace stream and the second trace stream are delivered to a memory in accordance with a third clock.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: April 20, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Ernest L. Edgar
  • Patent number: 7698533
    Abstract: A configurable coprocessor interface between a central processing unit (CPU) and a coprocessor is provided. The coprocessor interface has an instruction transfer signal group for transferring different instruction types from the CPU to the coprocessor, sequentially or in parallel, a busy signal group, for allowing the coprocessor to signal the CPU that it cannot receive a transfer of one or more of the different instruction types, and an instruction order signal group for indicating to the coprocessor a relative execution order for multiple instructions that are transferred in parallel. In addition, the coprocessor interface includes separate data transfer signal groups for data being transferred from the CPU to the coprocessor, and for data being transferred from the coprocessor to the CPU, along with a data order signal group for indicating a relative order of data (if transferred out-of-order).
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: April 13, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Lawrence Henry Hudepohl, Darren Miller Jones, Radhika Thekkath, Franz Treue
  • Patent number: 7694304
    Abstract: Mechanisms for dynamically configuring the resources of a virtual multiprocessor are provided. An apparatus to configure resources for virtual processing elements in a virtual multiprocessor is provided. The apparatus includes a virtual multiprocessor context, virtual processing element contexts, and configuration logic. The virtual multiprocessor context, prescribes the resources, and controls a configuration state of the virtual multiprocessor. The virtual processing element contexts each exclusively correspond to a virtual processing element. The virtual processing element contexts each have first logic, for prescribing whether the virtual processing element is permitted to configure the resources; and second logic, for prescribing a subset of the resources that is allocated to the virtual processing element.
    Type: Grant
    Filed: August 27, 2004
    Date of Patent: April 6, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D Kissell
  • Publication number: 20100070257
    Abstract: Disclosed are methods, systems, and computer program products for evaluating performance aspects of electrical circuits, and particularly digital logic circuits. An exemplary method comprises obtaining access to a simulation dump file comprising state indications of the values of a plurality of signals of an electrical circuit at a plurality of simulation time points, and receiving an evaluation task that defines an output based on one or more input signals, with each input signal being a signal for which state indications are provided in the simulation dump file. The method further comprises generating, from the simulation dump file, one or more state representations for the input signals of the evaluation task, with each state representation being representative of the state of an input signal over a period of simulation time, and generating values of the output of the evaluation task at a plurality of simulation time points from the state representations.
    Type: Application
    Filed: September 12, 2008
    Publication date: March 18, 2010
    Applicant: MIPS Technologies, Inc.
    Inventors: Ajit Karthik Mylavarapu, Sanjai Balakrishnan Athi
  • 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: 7676664
    Abstract: A multiprocessing system including a multithreading microprocessor and multiprocessor operating system (OS) is disclosed. The microprocessor includes a first and a second plurality of thread contexts (TCs), each TC having a program counter and a general purpose register set for executing a thread. The microprocessor also includes a first and a second shared privileged resource, shared by the first and second respective plurality of TCs rather than being replicated for each of the respective first and second plurality of TCs, and privileged to be managed only by operating system-privileged threads rather than by user-privileged threads. The OS manages the first and second shared privileged resource and schedules execution of both the operating system-privileged threads and the user-privileged threads on the plurality of TCs.
    Type: Grant
    Filed: December 23, 2006
    Date of Patent: March 9, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Patent number: 7676660
    Abstract: A microprocessor core includes a plurality of inputs that indicate whether a corresponding plurality of independently occurring events has occurred. The inputs are non-memory address inputs. The core also includes a yield instruction in its instruction set architecture, comprising a user-visible output operand and an explicit input operand. The input operand specifies one or more of the independently occurring events. The yield instruction instructs the microprocessor core to suspend issuing for execution instructions of a program thread until at least one of the independently occurring events specified by the input operand has occurred. The program thread contains the yield instruction. The yield instruction further instructs the microprocessor core to return a value in the output operand indicating which of the independently occurring events occurred to cause the microprocessor core to resume issuing the instructions of the program thread.
    Type: Grant
    Filed: December 3, 2007
    Date of Patent: March 9, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Publication number: 20100049912
    Abstract: A microprocessor includes one or more N-way caches and a way prediction logic that selectively enables and disables the cache ways so as to reduce the power consumption. The way prediction logic receives an address and predicts in which one of the cache ways the data associated with the address is likely to be stored. The way prediction logic causes an enabling signal to be supplied only to the way predicted to contain the requested data. The remaining (N?1) of the cache ways do not receive the enabling signal. The power consumed by the cache is thus significantly reduced.
    Type: Application
    Filed: August 20, 2008
    Publication date: February 25, 2010
    Applicant: MIPS Technologies, Inc.
    Inventor: Ajit Karthik Mylavarapu
  • Publication number: 20100049953
    Abstract: A microprocessor includes an N-way cache and a logic block that selectively enables and disables the N-way cache for at least one clock cycle if a first register load instructions and a second register load instruction, following the first register load instruction, are detected as pointing to the same index line in which the requested data is stored. The logic block further provides a disabling signal to the N-way cache for at least one clock cycle if the first and second instructions are detected as pointing to the same cache way.
    Type: Application
    Filed: August 20, 2008
    Publication date: February 25, 2010
    Applicant: MIPS Technologies, Inc.
    Inventors: Ajit Karthik Mylavarapu, Sanjai Balakrishnan Athi
  • 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: 7664920
    Abstract: A microprocessor includes a hierarchical memory subsystem, an instruction decoder, and a stream prefetch unit. The decoder decodes an instruction that specifies a locality characteristic parameter. In one embodiment, the parameter specifies a relative urgency with which a data stream specified by the instruction is needed rather than specifying exactly which of the cache memories in the hierarchy to prefetch the data stream into. The prefetch unit selects one of the cache memory levels in the hierarchy for prefetching the data stream into based on the memory subsystem configuration and on the relative urgency. In another embodiment, the prefetch unit instructs the memory subsystem to mark the prefetched cache line for early, late, or normal eviction according to its cache line replacement policy based on the parameter value.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: February 16, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7661112
    Abstract: A background event buffer manager (BEBM) for ordering and accounting for events in a data processing system having a processor includes a port for receiving event identifications (IDs) from a device, a queuing function enabled for queuing event IDs received, and a notification function for notifying the processor of queued event IDs. The BEBM handles all event ordering and accounting for the processor. The BEBM in preferred embodiments queues events by type with priority and by priority within type, and also handles sending acknowledgement to the device when processing on each event is concluded, and buffers the acknowledgement process. In particular embodiments the apparatus and method is taught as a packet processing router engine.
    Type: Grant
    Filed: April 5, 2006
    Date of Patent: February 9, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Mario Nemirovsky, Narendra Sankar, Adolfo Nemirovsky, Enric Musoll
  • 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