Patents by Inventor Ranganathan Sudhakar

Ranganathan Sudhakar 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).

  • Patent number: 10768930
    Abstract: A method provides for decoding, in a microprocessor, an instruction into data identifying a first register, a second register, an immediate value, and an opcode identifier. The opcode identifier is interpreted as indicating that an arithmetic operation is to be performed on the first register and the second register, and that the microprocessor is to perform a change of control operation in response to the addition of the first register and the second register causing overflow or underflow. The change of control operation is to a location in a program determined based on the immediate value. A processor can be provided with a decoder and other supporting circuitry to implement such method. Overflow/underflow can be checked on word boundaries of a double-word operation.
    Type: Grant
    Filed: February 2, 2015
    Date of Patent: September 8, 2020
    Assignee: MIPS Tech, LLC
    Inventor: Ranganathan Sudhakar
  • Patent number: 10671391
    Abstract: In an aspect, a processor supports modeless execution of 64 bit and 32 bit instructions. A Load/Store Unit (LSU) decodes an instruction that without explicit opcode data indicating whether the instruction is to operate in a 32 or 64 bit memory address space. LSU treats the instruction either as a 32 or 64 bit instruction in dependence on values in an upper 32 bits of one or more 64 bit operands supplied to create an effective address in memory. In an example, a 4 GB space addressed by 32-bit memory space is divided between upper and lower portions of a 64-bit address space, such that a 32-bit instruction is differentiated from a 64-bit instruction in dependence on whether an upper 32 bits of one or more operands is either all binary 1 or all binary 0. Such a processor may support decoding of different arithmetic instructions for 32-bit and 64-bit operations.
    Type: Grant
    Filed: February 2, 2015
    Date of Patent: June 2, 2020
    Assignee: MIPS Tech, LLC
    Inventors: Ranganathan Sudhakar, Ranjit J Rozario
  • Patent number: 10540179
    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: Grant
    Filed: March 7, 2013
    Date of Patent: January 21, 2020
    Assignee: MIPS Tech, LLC
    Inventors: Ranganathan Sudhakar, Parthiv Pota
  • Patent number: 10108548
    Abstract: In one aspect, a processor has a register file, a private Level 1 (L1) cache, and an interface to a shared memory hierarchy (e.g., an Level 2 (L2) cache and so on). The processor has a Load Store Unit (LSU) that handles decoded load and store instructions. The processor may support out of order and multi-threaded execution. As store instructions arrive at the LSU for processing, the LSU determines whether a counter, from a set of counters, is allocated to a cache line affected by each store. If not, the LSU allocates a counter. If so, then the LSU updates the counter. Also, in response to a store instruction, affecting a cache line neighboring a cache line that has a counter that meets a criteria, the LSU characterizes that store instruction as one to be effected without obtaining ownership of the effected cache line, and provides that store to be serviced by an element of the shared memory hierarchy.
    Type: Grant
    Filed: August 18, 2015
    Date of Patent: October 23, 2018
    Assignee: MIPS Tech, LLC
    Inventors: Ranjit J. Rozario, Era Nangia, Debasish Chandra, Ranganathan Sudhakar
  • Patent number: 9870225
    Abstract: A processor comprises a decoder for decoding an instruction based both on an explicit opcode identifier and on metadata encoded in the instruction. For example, a relative order of source register names may be used to decode the instruction. As an example, an instruction set may have a Branch Equal (BEQ) specifying two registers (r1 and r2) that store values that are compared for equality. An instruction set can provide a single opcode identifier for BEQ and a processor can determine whether to decode a particular instance of that opcode identifier as BEQ or another instruction, in dependence on an order of appearance of the source registers in that instance. For example, the BEQ opcode can be interpreted as a branch not equal, if a higher numbered register appears before a lower numbered register. Additional forms of metadata can include interpreting a constant included in an instruction, as well as determining equality of source registers, among other forms of metadata.
    Type: Grant
    Filed: December 16, 2014
    Date of Patent: January 16, 2018
    Assignee: MIPS Tech, LLC
    Inventor: Ranganathan Sudhakar
  • Patent number: 9740557
    Abstract: In one aspect, a pipelined ECC-protected cache access method and apparatus provides that during a normal operating mode, for a given cache transaction, a tag comparison action and a data RAM read are performed speculatively in a time during which an ECC calculation occurs. If a correctable error occurs, the tag comparison action and data RAM are repeated and an error mode is entered. Subsequent transactions are processed by performing the ECC calculation, without concurrent speculative actions, and a tag comparison and read are performed using only the tag data available after the ECC calculation. A reset to normal mode is effected by detecting a gap between transactions that is sufficient to avoid a conflict for use of tag comparison circuitry for an earlier transaction having a repeated tag comparison and a later transaction having a speculative tag comparison.
    Type: Grant
    Filed: February 2, 2015
    Date of Patent: August 22, 2017
    Assignee: Imagination Technologies Limited
    Inventors: Ranjit J Rozario, Ranganathan Sudhakar
  • Patent number: 9720840
    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: Grant
    Filed: February 28, 2013
    Date of Patent: August 1, 2017
    Assignee: Imagination Technologies, LLC
    Inventors: Ranganathan Sudhakar, Parthiv Pota
  • Publication number: 20160055083
    Abstract: In one aspect, a processor has a register file, a private Level 1 (L1) cache, and an interface to a shared memory hierarchy (e.g., an Level 2 (L2) cache and so on). The processor has a Load Store Unit (LSU) that handles decoded load and store instructions. The processor may support out of order and multi-threaded execution. As store instructions arrive at the LSU for processing, the LSU determines whether a counter, from a set of counters, is allocated to a cache line affected by each store. If not, the LSU allocates a counter. If so, then the LSU updates the counter. Also, in response to a store instruction, affecting a cache line neighboring a cache line that has a counter that meets a criteria, the LSU characterizes that store instruction as one to be effected without obtaining ownership of the effected cache line, and provides that store to be serviced by an element of the shared memory hierarchy.
    Type: Application
    Filed: August 18, 2015
    Publication date: February 25, 2016
    Inventors: Ranjit J. Rozario, Era Nangia, Debasish Chandra, Ranganathan Sudhakar
  • 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
  • Publication number: 20150242212
    Abstract: In an aspect, a processor supports modeless execution of 64 bit and 32 bit instructions. A Load/Store Unit (LSU) decodes an instruction that without explicit opcode data indicating whether the instruction is to operate in a 32 or 64 bit memory address space. LSU treats the instruction either as a 32 or 64 bit instruction in dependence on values in an upper 32 bits of one or more 64 bit operands supplied to create an effective address in memory. In an example, a 4 GB space addressed by 32-bit memory space is divided between upper and lower portions of a 64-bit address space, such that a 32-bit instruction is differentiated from a 64-bit instruction in dependence on whether an upper 32 bits of one or more operands is either all binary 1 or all binary 0. Such a processor may support decoding of different arithmetic instructions for 32-bit and 64-bit operations.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 27, 2015
    Inventors: Ranganathan Sudhakar, Ranjit J Rozario
  • Publication number: 20150242274
    Abstract: In one aspect, a pipelined ECC-protected cache access method and apparatus provides that during a normal operating mode, for a given cache transaction, a tag comparison action and a data RAM read are performed speculatively in a time during which an ECC calculation occurs. If a correctable error occurs, the tag comparison action and data RAM are repeated and an error mode is entered. Subsequent transactions are processed by performing the ECC calculation, without concurrent speculative actions, and a tag comparison and read are performed using only the tag data available after the ECC calculation. A reset to normal mode is effected by detecting a gap between transactions that is sufficient to avoid a conflict for use of tag comparison circuitry for an earlier transaction having a repeated tag comparison and a later transaction having a speculative tag comparison.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 27, 2015
    Inventors: Ranjit J. Rozario, Ranganathan Sudhakar
  • Publication number: 20150227366
    Abstract: A processor can address a double-word sized memory space (e.g., 64 bit addressing). The processor can be configured to decode a series of three instructions that cause 48 bits of an arbitrary 64 bit immediate value to be constructed in a register and a fourth instruction that completes the 64-bit value and branches to or accesses a memory location determined used the 64-bit value in the register. A separate instruction in an instruction set architecture can be provided for non-destructive writing of 16-bit portions of a 64 bit register.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 13, 2015
    Inventor: Ranganathan Sudhakar
  • Publication number: 20150227371
    Abstract: Aspects relate to microprocessors, methods of their operation, and compilers therefor, that provide branch instructions with and without a delay slot. Branch instructions without a delay slot may have a forbidden slot. A processor, when decoding and executing a branch instruction without a delay slot, at a program counter location, executes an instruction in a subsequent program counter location (a “forbidden slot”, in some implementations) only if the branch is not taken. A pre-determined set of instruction types may be identified, and if an instruction location in the forbidden slot is from the pre-determined set of instruction types, implementations may throw an exception without executing the instruction, or may execute the instruction and throw an exception after execution. Such exceptions may be dependent or independent on an outcome of executing the instruction itself.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 13, 2015
    Inventor: Ranganathan Sudhakar
  • Publication number: 20150227365
    Abstract: A method provides for decoding, in a microprocessor, an instruction into data identifying a first register, a second register, an immediate value, and an opcode identifier. The opcode identifier is interpreted as indicating that an arithmetic operation is to be performed on the first register and the second register, and that the microprocessor is to perform a change of control operation in response to the addition of the first register and the second register causing overflow or underflow. The change of control operation is to a location in a program determined based on the immediate value. A processor can be provided with a decoder and other supporting circuitry to implement such method. Overflow/underflow can be checked on word boundaries of a double-word operation.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 13, 2015
    Inventor: Ranganathan Sudhakar
  • Publication number: 20150178076
    Abstract: A processor comprises a decoder for decoding an instruction based both on an explicit opcode identifier and on metadata encoded in the instruction. For example, a relative order of source register names may be used to decode the instruction. As an example, an instruction set may have a Branch Equal (BEQ) specifying two registers (r1 and r2) that store values that are compared for equality. An instruction set can provide a single opcode identifier for BEQ and a processor can determine whether to decode a particular instance of that opcode identifier as BEQ or another instruction, in dependence on an order of appearance of the source registers in that instance. For example, the BEQ opcode can be interpreted as a branch not equal, if a higher numbered register appears before a lower numbered register. Additional forms of metadata can include interpreting a constant included in an instruction, as well as determining equality of source registers, among other forms of metadata.
    Type: Application
    Filed: December 16, 2014
    Publication date: June 25, 2015
    Inventor: Ranganathan Sudhakar
  • Patent number: 8909904
    Abstract: A processor includes a decode unit and a byte permute unit. The byte permute unit receives an instruction from the decode unit. The byte permute unit determines whether the instruction corresponds to a shuffle instruction or a shift instruction. For a shuffle instruction, the byte permute unit uses a byte shuffler to perform a shuffle operation indicated by the instruction. For a shift instruction that indicates a shift magnitude, the byte permute unit uses the byte shuffler to byte-level shift a source operand corresponding to the instruction by an integer number of bytes. The byte permute unit also generates a sequence of output bits by bit-shifting the byte-level shifted source operand by a number of bits such that the sum of the number of bits and the integer number of bytes is equal to the shift magnitude.
    Type: Grant
    Filed: June 11, 2009
    Date of Patent: December 9, 2014
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Ranganathan Sudhakar, Jonathan Choy, Debjit Das Sarma
  • 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