Patents by Inventor Ryan Kinter

Ryan Kinter 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: 20070113053
    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: Application
    Filed: January 5, 2007
    Publication date: May 17, 2007
    Applicant: MIPS Technologies, Inc.
    Inventors: Michael Jensen, Ryan Kinter
  • Publication number: 20060206686
    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: March 8, 2005
    Publication date: September 14, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Soumya Banerjee, Michael Jensen, Ryan Kinter
  • Publication number: 20060179281
    Abstract: A multithreading processor with an efficient and fair thread scheduler is disclosed. The scheduler enables threads to be grouped and a priority assigned to each group of threads. Round-robin order is maintained for each group. Consequently, the group priorities may be changed relatively frequently in order to obtain the benefits of not starving threads that require relatively low bandwidth and of interleaving instruction dispatch of multiple independent threads to enjoy pipeline efficiencies, and as long as the group populations are changed relatively infrequently, round-robin order fairness is provided within the groups in case multiple threads in a group have issuable instructions.
    Type: Application
    Filed: July 27, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Michael Jensen, Ryan Kinter
  • Publication number: 20060179274
    Abstract: An apparatus for reducing instruction re-fetching in a multithreading processor configured to concurrently execute a plurality of threads is disclosed. The apparatus includes a buffer for each thread that stores fetched instructions of the thread, having an indicator for indicating which of the fetched instructions in the buffer have already been dispatched for execution. An input for each thread indicates that one or more of the already-dispatched instructions in the buffer has been flushed from execution. Control logic for each thread updates the indicator to indicate the flushed instructions are no longer already-dispatched, in response to the input. This enables the processor to re-dispatch the flushed instructions from the buffer to avoid re-fetching the flushed instructions. In one embodiment, there are fewer buffers than threads, and they are dynamically allocatable by the threads. In one embodiment, a single integrated buffer is shared by all the threads.
    Type: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Darren Jones, Ryan Kinter, G. Uhler, Sanjay Vishin
  • Publication number: 20060179284
    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: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Michael Jensen, Darren Jones, Ryan Kinter, Sanjay Vishin
  • Publication number: 20060179279
    Abstract: A bifurcated instruction scheduler for dispatching instructions of multiple threads concurrently executing in a multithreading processor is provided. The scheduler includes a first portion within a reusable core that is not customizable by a customer, a second portion outside the core that is customizable, and an interface coupling the second portion to the core. The second portion implements a thread scheduling policy that may be customized to the customer's particular application. The first portion may be scheduling policy-agnostic and issues instructions of the threads each clock cycle to execution units based on the scheduling policy communicated by the second portion. The second portion communicates the scheduling policy via a priority for each of the threads. When the core commits an instruction for execution, the core communicates to the second portion which thread the committed instruction is in to enable the second portion to update the priorities in response thereto.
    Type: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Darren Jones, Ryan Kinter, Kevin Kissell, Thomas Petersen
  • Publication number: 20060179439
    Abstract: A leaky-bucket style thread scheduler for scheduling concurrent execution of multiple threads in a microprocessor is provided. The execution pipeline notifies the scheduler when it has completed instructions. The scheduler maintains a virtual water level for each thread and decreases it each time the execution pipeline executes an instruction of the thread. The scheduler includes an instruction execution rate for each thread. The scheduler increases the virtual water level based on the requested rate per a predetermined number of clock cycles. The scheduler includes virtual water pressure parameters that define a set of virtual water pressure ranges over the height of the virtual water bucket. When a thread's virtual water level moves from one virtual water pressure range to the next higher range, the scheduler increases the instruction issue priority for the thread; conversely, when the level moves down, the scheduler decreases the instruction issue priority for the thread.
    Type: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Darren Jones, Ryan Kinter, Thomas Petersen, Sanjay Vishin
  • Publication number: 20060179280
    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: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Michael Jensen, Darren Jones, Ryan Kinter, Sanjay Vishin
  • Publication number: 20060101258
    Abstract: A method of extracting bits of a bit stream including retrieving bits from the bit stream into an accumulator, specifying a size value specifying a number of bits to extract, storing a position value into a control register, and executing a bit extraction instruction. The bit extraction instruction includes copying the size value number of bits from the accumulator beginning at the position value into a target register, setting any remaining bits of the target register to zero, and decrementing the position value by an amount based on the size value. The method may include loading bits from a bit stream into a register and moving the contents of the register into the accumulator to replenish the accumulator. The method may include determining, based on the position value, whether the accumulator needs to be replenished, and if not, branching to bypass replenishing functions.
    Type: Application
    Filed: October 1, 2004
    Publication date: May 11, 2006
    Applicant: MIPS Technologies Inc.
    Inventors: Darren Jones, Ryan Kinter, Rivka Shenhav, Radhika Thekkath
  • Publication number: 20060075208
    Abstract: A modular subtraction instruction for execution on a microprocessor having at least one register. The instruction includes opcode bits for designating the instruction and operand bits for designating at least one register storing an offset index, a decrement value, and an address index. When the modular subtraction instruction is executed on the microprocessor, the address index is modified by the decrement value if the address index is not zero and is modified by the offset index if the address index is zero. For example, the address index is repeatedly decremented using the decrement value until it reaches zero, and then the address index is reset back to the offset index. The operand bits may include multiple fields identifying multiple registers selected from the general purpose registers of the microprocessor. The modular subtraction instruction enables access to a buffer in memory in circular fashion by virtue of its operation.
    Type: Application
    Filed: October 1, 2004
    Publication date: April 6, 2006
    Applicant: MIPS Technologies Inc.
    Inventors: Darren Jones, Ryan Kinter, Radhika Thekkath, Chinh Tran
  • Publication number: 20060036808
    Abstract: A method and apparatus within a processing system is provided for separating access to an instruction memory and a data memory to allow concurrent access by different pipeline stages within the processing system to both the instruction memory and the data memory. An instruction memory interface is provided to access the instruction memory. A data memory interface is provided to access the data memory. Redirection logic is provided to determine whether an access by the data memory interface should be directed to the instruction memory interface utilizing either the address of the access, or the type of instruction that is executing. If the access is redirected, the access to the instruction memory is performed by the instruction memory interface, and data retrieved by the instruction memory interface is then provided to the data memory interface, and in turn to the pipeline stage within the processing system that requested the data memory interface to access the data.
    Type: Application
    Filed: August 29, 2005
    Publication date: February 16, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Gideon Intrater, Anders Jagd, Ryan Kinter
  • Publication number: 20050251639
    Abstract: A memory interface for use with a multiprocess memory system having a gating memory, the gating memory associating one or more memory access methods with each of a plurality of memory locations of the memory system wherein the gating memory returns a particular one access method for a particular one memory location responsive to a memory access instruction relating to the particular one memory location, the interface including: a request storage for storing a plurality of concurrent memory access instructions for one or more of the particular memory locations, each the memory access instruction issued from an associated independent thread context; an arbiter, coupled to the request storage, for selecting a particular one of the memory access instructions to apply to the gating memory; and a controller, coupled to the request storage and to the arbiter, for: storing the plurality of memory access instructions in the request storage; initiating application of the particular one memory access instruction selecte
    Type: Application
    Filed: September 30, 2004
    Publication date: November 10, 2005
    Inventors: Sanjay Vishin, Kevin Kissell, Darren Jones, Ryan Kinter
  • Publication number: 20050182903
    Abstract: A method and apparatus for preventing duplicate matching entries in a TLB is disclosed. Each entry in the TLB has an Include bit that specifies whether to include or exclude the entry in tag match determinations. When a TLB write is attempted, if the write tag matches a tag in an entry of the TLB, the entry's Include bit is cleared so that the entry is excluded in subsequent match determinations. Furthermore, if the matching entry is an entry other then the entry to be written, and the matching entry is valid, and the value to be written to the entry is valid, then an exception is generated and the write is aborted. When an entry is successfully written, its Include bit is set so that the entry is included in subsequent match determinations. The Include bit is also used to qualify tag lookup match determinations.
    Type: Application
    Filed: February 12, 2004
    Publication date: August 18, 2005
    Applicant: MIPS Technologies, Inc.
    Inventors: Ryan Kinter, G. Uhler
  • Publication number: 20050177707
    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: Application
    Filed: October 31, 2003
    Publication date: August 11, 2005
    Inventors: Soumya Banerjee, John Kelley, Ryan Kinter
  • Publication number: 20050102483
    Abstract: The invention includes a method of debugging an embedded processor. Scratch pad memory of an embedded processor is accessed to form a configuration file characterizing the configuration of scratch pad regions of the scratch pad memory. The embedded processor is debugged using information from the configuration file. The invention also includes an embedded processor with a processor core and scratch pad memory connected to the processor core. The scratch pad memory includes a set of scratch pad regions. The scratch pad memory stores values characterizing base addresses and region size values of the set of scratch pad regions.
    Type: Application
    Filed: December 3, 2004
    Publication date: May 12, 2005
    Inventors: Ryan Kinter, Scott McCoy, Gideon Intrater