Patents Assigned to MIPS Technology, Inc.
  • Patent number: 9235510
    Abstract: A computer includes a memory and a processor connected to the memory. The processor includes memory segment configuration registers to store defined memory address segments and defined memory address segment attributes such that the processor operates in accordance with the defined memory address segments and defined memory address segment attributes to allow kernel mode access to user space virtual addresses for enhanced kernel mode memory capacity.
    Type: Grant
    Filed: November 21, 2012
    Date of Patent: January 12, 2016
    Assignee: MIPS Technologies, Inc.
    Inventors: Sanjay Patel, Chris Dearman, Ranganathan Sudhakar
  • Patent number: 9189412
    Abstract: A processor includes a computation engine to produce a computed value for a set of operands. A cache stores the set of operands and the computed value. The cache is configured to selectively identify a match and a miss for a new set of operands. In the event of a match the computed value is supplied by the cache and a computation engine operation is aborted. In the event of a miss a new computed value for the new set of operands is computed by the computation engine and is stored in the cache.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: November 17, 2015
    Assignee: MIPS Technologies, Inc.
    Inventor: Ranganathan Sudhakar
  • Patent number: 9135067
    Abstract: Methods and systems that reduce the number of instance of a shared resource needed for a processor to perform an operation and/or execute a process without impacting function are provided. a method of processing in a processor is provided. Aspects include determining that an operation to be performed by the processor will require the use of a shared resource. A command can be issued to cause a second operation to not use the shared resources N cycles later. The shared resource can then be used for a first aspect of the operation at cycle X and then used for a second aspect of the operation at cycle X+N. The second operation may be rescheduled according to embodiments.
    Type: Grant
    Filed: February 28, 2013
    Date of Patent: September 15, 2015
    Assignee: MIPS Technologies, Inc.
    Inventor: Debasish Chandra
  • Patent number: 9086906
    Abstract: A computer readable storage medium includes executable instructions to define a processor with guest mode control registers supporting guest mode operating behavior defined by guest context specified in the guest mode control registers. The guest mode control registers include a control bit to specify a guest access blocked register state and a shared register state. Root mode control registers support root mode operating behavior defined by root context specified in the root mode control registers. The root mode control registers include control bits to enable replicated register state access and shared register state access. The guest context and the root context support virtualization of hardware resources such that multiple operating systems supporting multiple applications are executed by the hardware resources.
    Type: Grant
    Filed: March 30, 2012
    Date of Patent: July 21, 2015
    Assignee: MIPS Technologies, Inc.
    Inventors: Sanjay Patel, Ranjit Joseph Rozario
  • Patent number: 9064076
    Abstract: Systems and methods of user interface for facilitation of high level generation of processor extensions. In accordance with a method embodiment of the present invention, an instruction format is accessed at a graphical user interface. A programming language description of a computation element for an execution unit of the processor extension is accessed. A representation of a hardware design for the processor extension comprising the instruction format and the computation element is generated.
    Type: Grant
    Filed: March 23, 2006
    Date of Patent: June 23, 2015
    Assignees: Synopsys, Inc., MIPS Technologies, Inc.
    Inventors: Gunnar Braun, Frank Fiedler, Andreas Hoffmann, Gideon Intrater, Olaf Lüthje, Achim Nohl, Ludwig Rieder
  • Patent number: 9032404
    Abstract: A multiprocessor computer system includes an exception domain having multiple thread contexts (TCs) each having a restart address register, and a timer that generates a periodic interrupt request to the exception domain. The exception domain selects an eligible TC to service the interrupt request, which is non-specific regarding which TC to select. A first interrupt handler executes on the selected TC to service the interrupt request to schedule a set of processes assigned by the SMP OS for execution on the selected TC, and write an address of a second interrupt handler to the restart address register of each TC other than the selected TC. The second interrupt handler schedules a plurality of sets of processes assigned by the SMP OS for execution on respective ones of the TCs other than the selected TC.
    Type: Grant
    Filed: December 20, 2005
    Date of Patent: May 12, 2015
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Publication number: 20140281413
    Abstract: Methods and systems that allow the processor to effectively and efficiently reduce or eliminate the latency associated with instructions that copy the value of one register to another register. A processor includes a superforwarding table, a superforwarding logic block, and a computation engine. The superforwarding table stores an entry, wherein the entry has a valid bit, a key field, and a forward field. The superforwarding logic block determines which register contains the information needed for an instruction. The computation engine executes instructions.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 18, 2014
    Applicant: MIPS Technologies, Inc.
    Inventors: Qian WANG, Ranganathan Sudhakar
  • Publication number: 20140258694
    Abstract: A processor is configured to identify a branch instruction immediately followed by an architectural delay slot. A single bonded instruction comprising the branch instruction immediately followed by the architectural delay slot is created. The single bonded instruction is loaded into an instruction buffer.
    Type: Application
    Filed: March 7, 2013
    Publication date: September 11, 2014
    Applicant: MIPS Technologies, Inc.
    Inventors: Ranganathan Sudhakar, Parthiv Pota
  • Publication number: 20140258624
    Abstract: A processor includes a computation engine to produce a computed value for a set of operands. A cache stores the set of operands and the computed value. The cache is configured to selectively identify a match and a miss for a new set of operands. In the event of a match the computed value is supplied by the cache and a computation engine operation is aborted. In the event of a miss a new computed value for the new set of operands is computed by the computation engine and is stored in the cache.
    Type: Application
    Filed: March 7, 2013
    Publication date: September 11, 2014
    Applicant: MIPS Technologies, Inc.
    Inventor: Ranganathan Sudhakar
  • Publication number: 20140250289
    Abstract: Improved branch target buffers (BTBs) and methods of processing data in a microprocessor with a pipeline are provided. According to various embodiments, a BTB is provided that includes a non-return buffer, a return buffer, and a multiplexer. The non-return buffer is designed to store a multiple of non-return entries. Each non-return entry corresponds to a non-return type instruction. The return buffer is designed to store a plurality of return entries that each correspond to a return type instruction. Additionally, the return buffer may generate a control signal. The multiplexer also generates a control signal and outputs either data from the non-return buffer or data from a return prediction stack (RPS). Whether the multiplexer returns data from the non-return buffer or the RPS depends on the control signal.
    Type: Application
    Filed: March 1, 2013
    Publication date: September 4, 2014
    Applicant: MIPS Technologies, Inc.
    Inventors: Parthiv POTA, Sanjay PATEL
  • Publication number: 20140245317
    Abstract: Methods and systems that reduce the number of instance of a shared resource needed for a processor to perform an operation and/or execute a process without impacting function are provided. a method of processing in a processor is provided. Aspects include determining that an operation to be performed by the processor will require the use of a shared resource. A command can be issued to cause a second operation to not use the shared resources N cycles later. The shared resource can then be used for a first aspect of the operation at cycle X and then used for a second aspect of the operation at cycle X+N. The second operation may be rescheduled according to embodiments.
    Type: Application
    Filed: February 28, 2013
    Publication date: August 28, 2014
    Applicant: MIPS Technologies, Inc.
    Inventor: Debasish CHANDRA
  • Publication number: 20140244933
    Abstract: Methods and systems that identify and power up ways for future instructions are provided. A processor includes an n-way set associative cache and an instruction fetch unit. The n-way set associative cache is configured to store instructions. The instruction fetch unit is in communication with the n-way set associative cache and is configured to power up a first way, where a first indication is associated with an instruction and indicates the way where a future instruction is located and where the future instruction is two or more instructions ahead of the current instruction.
    Type: Application
    Filed: February 28, 2013
    Publication date: August 28, 2014
    Applicant: MIPS Technologies, Inc.
    Inventors: Ranganathan Sudhakar, Parthiv Pota
  • Publication number: 20140244987
    Abstract: Methods and systems that perform one or more operations on a plurality of elements using a multiple data processing element processor are provided. An input vector comprising a plurality of elements is received by a processor. The processor determines if performing a first operation on a first element will cause an exception and if so, writes an indication of the exception caused by the first operation to a first portion of an output vector stored in an output register. A second operation can be performed on a second element with the result of the second operation being written to a second portion of the output vector stored in the output register.
    Type: Application
    Filed: February 22, 2013
    Publication date: August 28, 2014
    Applicant: MIPS Technologies, Inc.
    Inventors: Ilie GARBACEA, James ROBINSON
  • Publication number: 20140244977
    Abstract: A method of sharing a plurality of registers in a register pool among a plurality of microprocessor threads begins by allocating a first set of registers in the register pool to a first thread, the first thread executing a first instruction using the first set of registers in the register pool. The first thread is descheduled without saving values stored in the first set of registers. A second thread is scheduled to execute a second instruction using registers allocated in the register pool. Finally, the first thread is rescheduled, the first thread reusing the allocated first set of registers.
    Type: Application
    Filed: February 22, 2013
    Publication date: August 28, 2014
    Applicants: MIPS Technologies, Inc.
    Inventor: Ilie GARBACEA
  • Patent number: 8789042
    Abstract: A processor includes guest mode control registers supporting guest mode operating behavior defined by guest context specified in the guest mode control registers. Root mode control registers support root mode operating behavior defined by root context specified in the root mode control registers. The guest context and the root context are simultaneously active to support virtualization of hardware resources such that multiple operating systems supporting multiple applications are executed by the hardware resources.
    Type: Grant
    Filed: September 27, 2010
    Date of Patent: July 22, 2014
    Assignee: MIPS Technologies, Inc.
    Inventor: James Robert Howard Hakewill
  • Patent number: 8725950
    Abstract: A processor includes multiple processor core units, each including a processor core and a cache memory. Victim lines evicted from a first processor core unit's cache may be stored in another processor core unit's cache, rather than written back to system memory. If the victim line is later requested by the first processor core unit, the victim line is retrieved from the other processor core unit's cache. The processor has low latency data transfers between processor core units. The processor transfers victim lines directly between processor core units' caches or utilizes a victim cache to temporarily store victim lines while searching for their destinations. The processor evaluates cache priority rules to determine whether victim lines are discarded, written back to system memory, or stored in other processor core units' caches. Cache priority rules can be based on cache coherency data, load balancing schemes, and architectural characteristics of the processor.
    Type: Grant
    Filed: June 30, 2010
    Date of Patent: May 13, 2014
    Assignee: MIPS Technologies, Inc.
    Inventor: Sanjay Vishin
  • Publication number: 20130332703
    Abstract: A method of sharing a plurality of registers in a shared register pool among a plurality of microprocessor threads begins with a determination that a first instruction to be executed by a microprocessor in a first microprocessor thread requires a first logical register. Next a determination is made that a second instruction to be executed by the microprocessor in a second microprocessor thread requires a second logical register. A first physical register in the shared register pool is allocated to the first microprocessor thread for execution of the first instruction and the first logical register is mapped to the first physical register. A second physical register in the shared register pool is allocated to the second microprocessor thread for execution of the second instruction. Finally, the second logical register is mapped to the second physical register.
    Type: Application
    Filed: June 8, 2012
    Publication date: December 12, 2013
    Applicant: MIPS Technologies, Inc.
    Inventor: Ilie GARBACEA
  • Publication number: 20130159578
    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. A method for automatic hardware interrupt handling is also presented.
    Type: Application
    Filed: February 4, 2013
    Publication date: June 20, 2013
    Applicant: MIPS Technologies, Inc.
    Inventor: MIPS Technologies, Inc.
  • Publication number: 20130132702
    Abstract: A computer includes a memory and a processor connected to the memory. The processor includes memory segment configuration registers to store defined memory address segments and defined memory address segment attributes such that the processor operates in accordance with the defined memory address segments and defined memory address segment attributes to allow kernel mode access to user space virtual addresses for enhanced kernel mode memory capacity.
    Type: Application
    Filed: November 21, 2012
    Publication date: May 23, 2013
    Applicant: MIPS Technologies, Inc.
    Inventor: MIPS Technologies, Inc.
  • Publication number: 20130061060
    Abstract: Embodiments provide systems and methods for controlling the use of processing algorithms, and applications thereof. In an embodiment, authorization to use an algorithm is validated in a system having a processor capable of executing user defined instructions, by executing a user defined instruction that writes a first value to a first storage of a user defined instruction block, uses the first value to transform a second value located in a second storage of the user defined instruction block, and compares the transformed second value to a third value located in a third storage. Use of the algorithm is permitted only if the comparison of the transformed second value to the third value indicates that use of the algorithm is authorized. In another embodiment, authorization to use an at least partially decrypted algorithm is validated via a key for enablement.
    Type: Application
    Filed: November 2, 2012
    Publication date: March 7, 2013
    Applicant: MIPS Technologies, Inc.
    Inventor: MIPS Technologies, Inc.