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: 10768930Abstract: 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: GrantFiled: February 2, 2015Date of Patent: September 8, 2020Assignee: MIPS Tech, LLCInventor: Ranganathan Sudhakar
-
Patent number: 10671391Abstract: 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: GrantFiled: February 2, 2015Date of Patent: June 2, 2020Assignee: MIPS Tech, LLCInventors: Ranganathan Sudhakar, Ranjit J Rozario
-
Patent number: 10540179Abstract: 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: GrantFiled: March 7, 2013Date of Patent: January 21, 2020Assignee: MIPS Tech, LLCInventors: Ranganathan Sudhakar, Parthiv Pota
-
Patent number: 10108548Abstract: 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: GrantFiled: August 18, 2015Date of Patent: October 23, 2018Assignee: MIPS Tech, LLCInventors: Ranjit J. Rozario, Era Nangia, Debasish Chandra, Ranganathan Sudhakar
-
Patent number: 9870225Abstract: 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: GrantFiled: December 16, 2014Date of Patent: January 16, 2018Assignee: MIPS Tech, LLCInventor: Ranganathan Sudhakar
-
Patent number: 9740557Abstract: 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: GrantFiled: February 2, 2015Date of Patent: August 22, 2017Assignee: Imagination Technologies LimitedInventors: Ranjit J Rozario, Ranganathan Sudhakar
-
Patent number: 9720840Abstract: 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: GrantFiled: February 28, 2013Date of Patent: August 1, 2017Assignee: Imagination Technologies, LLCInventors: Ranganathan Sudhakar, Parthiv Pota
-
Publication number: 20160055083Abstract: 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: ApplicationFiled: August 18, 2015Publication date: February 25, 2016Inventors: Ranjit J. Rozario, Era Nangia, Debasish Chandra, Ranganathan Sudhakar
-
Patent number: 9235510Abstract: 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: GrantFiled: November 21, 2012Date of Patent: January 12, 2016Assignee: MIPS Technologies, Inc.Inventors: Sanjay Patel, Chris Dearman, Ranganathan Sudhakar
-
Patent number: 9189412Abstract: 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: GrantFiled: March 7, 2013Date of Patent: November 17, 2015Assignee: MIPS Technologies, Inc.Inventor: Ranganathan Sudhakar
-
Publication number: 20150242212Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 27, 2015Inventors: Ranganathan Sudhakar, Ranjit J Rozario
-
Publication number: 20150242274Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 27, 2015Inventors: Ranjit J. Rozario, Ranganathan Sudhakar
-
Publication number: 20150227366Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 13, 2015Inventor: Ranganathan Sudhakar
-
Publication number: 20150227371Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 13, 2015Inventor: Ranganathan Sudhakar
-
Publication number: 20150227365Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 13, 2015Inventor: Ranganathan Sudhakar
-
Publication number: 20150178076Abstract: 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: ApplicationFiled: December 16, 2014Publication date: June 25, 2015Inventor: Ranganathan Sudhakar
-
Patent number: 8909904Abstract: 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: GrantFiled: June 11, 2009Date of Patent: December 9, 2014Assignee: Advanced Micro Devices, Inc.Inventors: Ranganathan Sudhakar, Jonathan Choy, Debjit Das Sarma
-
Publication number: 20140281413Abstract: 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: ApplicationFiled: March 14, 2013Publication date: September 18, 2014Applicant: MIPS Technologies, Inc.Inventors: Qian WANG, Ranganathan Sudhakar
-
Publication number: 20140258694Abstract: 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: ApplicationFiled: March 7, 2013Publication date: September 11, 2014Applicant: MIPS Technologies, Inc.Inventors: Ranganathan Sudhakar, Parthiv Pota
-
Publication number: 20140258624Abstract: 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: ApplicationFiled: March 7, 2013Publication date: September 11, 2014Applicant: MIPS Technologies, Inc.Inventor: Ranganathan Sudhakar