Patents by Inventor Rammohan Narayan
Rammohan Narayan 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: 6202142Abstract: An instruction scanning unit for a superscalar microprocessor is disclosed. The instruction scanning unit processes start, end, and functional byte information (or predecode data) associated with a plurality of contiguous instruction bytes. The processing of start byte information and end byte information is performed independently and in parallel, and the instruction scanning unit produces a plurality of scan values which identify valid instructions within the plurality of contiguous instruction bytes. Additionally, the instruction scanning unit is scaleable. Multiple instruction scanning units may be operated in parallel to process a larger plurality of contiguous instruction bytes. Furthermore, the instruction scanning unit detects error conditions in the predecode data in parallel with scanning to locate instructions. Moreover, in parallel with the error checking and scanning to locate instructions, MROM instructions are located for dispatch to an MROM unit.Type: GrantFiled: June 1, 1999Date of Patent: March 13, 2001Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Shane A. Southard, Thang M. Tran
-
Patent number: 6161172Abstract: A method of instruction dispatch is provided in which a directly-decoded instruction and a microcode instruction are concurrently dispatched ("packed"). The instruction which is second in program order is retained until the succeeding clock cycle. During the succeeding clock cycle, a microcode unit determines if the microcode instruction and the directly-decoded instruction, when taken together, occupy less than or equal to the total number of issue positions available in the microprocessor. If the microcode unit determines that less than or equal to the total number of issue positions are occupied, then the packing is successful. If the microcode unit determines that greater than the total number of issue positions are occupied, then the packing is unsuccessful and the retained instruction is redispatched. Additionally, instruction dispatch selection is performed in two phases. First, a number of instructions are selected as potentially dispatchable instructions.Type: GrantFiled: November 23, 1998Date of Patent: December 12, 2000Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Rupaka Mahalingaiah, Paul K. Miller
-
Patent number: 6148393Abstract: A valid mask generator comprising a series of mask generation blocks. Each block generates a predetermined number of valid mask bits given a predetermined number of start pointer bits and end bits, wherein said predetermined number of valid mask bits generated by each block is less than the total number of bits in the valid mask. The series of mask generation blocks may be connected in series, wherein each block outputs a carry-out signal, and wherein each block receives the carry-out signal from the node before it as a carry-in signal. A method for generating a valid mask from a start pointer and a plurality of end bits is also contemplated.Type: GrantFiled: March 12, 1998Date of Patent: November 14, 2000Assignee: Advanced Micro Devices, Inc.Inventors: Thang M. Tran, Rammohan Narayan, Shane Southard
-
Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
Patent number: 6085311Abstract: A microprocessor includes an instruction alignment unit for locating instructions and conveying the located instructions to a set of decode units. The instruction alignment unit includes dual instruction queues. The first instruction queue receives instruction blocks fetched from the instruction cache. The instruction alignment unit uses instruction identification information provided by the instruction cache to select instructions from the first instruction queue for conveyance to the second instruction queue. Additionally, the instruction alignment unit applies a predetermined selection criteria to the instructions within the second instruction queue in order to select instructions for dispatch to the decode units. Selection logic for the first instruction queue need not consider the type of instruction, etc., in selecting instructions for conveyance to the second instruction queue. Selection logic for the second instruction queue considers instruction type, etc.Type: GrantFiled: May 18, 1999Date of Patent: July 4, 2000Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Venkateswara Rao Madduri -
Patent number: 6076146Abstract: An instruction cache employing a cache holding register is provided. When a cache line of instruction bytes is fetched from main memory, the instruction bytes are temporarily stored into the cache holding register as they are received from main memory. The instruction bytes are predecoded as they are received from the main memory. If a predicted-taken branch instruction is encountered, the instruction fetch mechanism within the instruction cache begins fetching instructions from the target instruction path. This fetching may be initiated prior to receiving the complete cache line containing the predicted-taken branch instruction. As long as instruction fetches from the target instruction path continue to hit in the instruction cache, these instructions may be fetched and dispatched into a microprocessor employing the instruction cache. The remaining portion of the cache line of instruction bytes containing the predicted-taken branch instruction is received by the cache holding register.Type: GrantFiled: May 12, 1999Date of Patent: June 13, 2000Assignee: Advanced Micro Devices, Inc.Inventors: Thang M. Tran, Karthikeyan Muthusamy, Rammohan Narayan, Andrew McBride
-
Patent number: 6049863Abstract: A predecode unit is configured to predecode variable byte-length instructions prior to their storage within an instruction cache of a superscalar microprocessor. The predecode unit generates three predecode bits associated with each byte of instruction code: a "start" bit, an "end" bit, and a "functional" bit. The start bit is set if the associated byte is the first byte of the instruction. Similarly, the end bit is set if the byte is the last byte of the instruction. The functional bits convey information regarding the location of an opcode byte for a particular instruction as well as an indication of whether the instruction can be decoded directly by the decode logic of the processor or whether the instruction is executed by invoking a microcode procedure controlled by an MROM unit. For fast path instructions, the functional bit is set for each prefix byte included in the instruction, and cleared for other bytes.Type: GrantFiled: June 11, 1997Date of Patent: April 11, 2000Assignee: Advanced Micro Devices, Inc.Inventors: Thang M. Tran, Rammohan Narayan, Andrew McBride, Karthikeyan Muthusamy
-
Patent number: 5983321Abstract: An instruction cache employing a cache holding register is provided. When a cache line of instruction bytes is fetched from main memory, the instruction bytes are temporarily stored into the cache holding register as they are received from main memory. The instruction bytes are predecoded as they are received from the main memory. If a predicted-taken branch instruction is encountered, the instruction fetch mechanism within the instruction cache begins fetching instructions from the target instruction path. This fetching may be initiated prior to receiving the complete cache line containing the predicted-taken branch instruction. As long as instruction fetches from the target instruction path continue to hit in the instruction cache, these instructions may be fetched and dispatched into a microprocessor employing the instruction cache. The remaining portion of the cache line of instruction bytes containing the predicted-taken branch instruction is received by the cache holding register.Type: GrantFiled: March 12, 1997Date of Patent: November 9, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Thang M. Tran, Karthikeyan Muthusamy, Rammohan Narayan, Andrew McBride
-
Patent number: 5968163Abstract: An instruction scanning unit for a superscalar microprocessor is disclosed. The instruction scanning unit processes start, end, and functional byte information (or predecode data) associated with a plurality of contiguous instruction bytes. The processing of start byte information and end byte information is performed independently and in parallel, and the instruction scanning unit produces a plurality of scan values which identify valid instructions within the plurality of contiguous instruction bytes. Additionally, the instruction scanning unit is scaleable. Multiple instruction scanning units may be operated in parallel to process a larger plurality of contiguous instruction bytes. Furthermore, the instruction scanning unit detects error conditions in the predecode data in parallel with scanning to locate instructions. Moreover, in parallel with the error checking and scanning to locate instructions, MROM instructions are located for dispatch to an MROM unit.Type: GrantFiled: March 10, 1997Date of Patent: October 19, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Shane A. Southard, Thang M. Tran
-
Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
Patent number: 5951675Abstract: A microprocessor includes an instruction alignment unit for locating instructions and conveying the located instructions to a set of decode units. The instruction alignment unit includes dual instruction queues. The first instruction queue receives instruction blocks fetched from the instruction cache. The instruction alignment unit uses instruction identification information provided by the instruction cache to select instructions from the first instruction queue for conveyance to the second instruction queue. Additionally, the instruction alignment unit applies a predetermined selection criteria to the instructions within the second instruction queue in order to select instructions for dispatch to the decode units. Selection logic for the first instruction queue need not consider the type of instruction, etc., in selecting instructions for conveyance to the second instruction queue. Selection logic for the second instruction queue considers instruction type, etc.Type: GrantFiled: October 27, 1998Date of Patent: September 14, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Venkateswara Rao Madduri -
Patent number: 5940602Abstract: A superscalar microprocessor is provided that includes a predecode unit configured to predecode variable byte-length instructions prior to their storage within an instruction cache. The predecode unit is configured to generate a plurality of predecode bits for each instruction byte. The plurality of predecode bits associated with each instruction byte include an end bit and an ROP bit that indicates a number of microinstructions required to implement the instruction. The plurality of predecode bits are collectively referred to as a predecode tag. An instruction alignment unit then uses the predecode tags to identify microinstructions. The instruction alignment unit dispatches the microinstructions simultaneously to a plurality of decode units which form fixed issue positions within the superscalar microprocessor. Because the instruction alignment unit identifies microinstructions, the multiplexing of instructions from the instruction alignment unit to the decoders is simplified.Type: GrantFiled: June 11, 1997Date of Patent: August 17, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Thang M. Tran
-
Patent number: 5935239Abstract: A mask decoder circuit is provided. The mask decoder circuit receives an input value indicative of one of a plurality of masks. The mask decoder circuit independently and in parallel processes portions of the input value to produce a submask (containing the portion of the output mask in which a transition from binary zeros to binary ones occurs) and to select either the submask, binary zeros, or binary ones for each of a plurality of regions within an output mask. The region receiving the submask is identified by the portion of the input value not processed to produce the submask. Other regions are filled with either binary zeros or binary ones according to the desired output mask.Type: GrantFiled: July 17, 1998Date of Patent: August 10, 1999Assignee: Advanced Micro Devices, Inc.Inventor: Rammohan Narayan
-
Patent number: 5900013Abstract: A device and method for comparing cancel tags, and for canceling data from a finite wrap-around data buffer. The data buffer stores tag values that are continuous, or sequential. A cancel tag is used to cancel all tags with a value "greater-than" the cancel tag. In comparing cancel tags of a wrap-around buffer, however, the comparator must take into account wrap-around conditions. When a wrap-around condition occurs, tags that have a lower value may be "greater-than" the cancel tag. The present invention advantageously adds an additional bit to the tags stored in the data buffer and the cancel tag. The additional bit is toggled whenever a wrap-around condition occurs. By comparing the additional bit of the tag to the additional bit of the cancel tag, a wrap-around condition can be detected without extensive additional circuitry. The comparison of the additional bit indicates whether the comparator should cancel tags that are greater-than or less-than the cancel tag.Type: GrantFiled: July 26, 1996Date of Patent: May 4, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Karthikeyan Muthusamy
-
Patent number: 5898851Abstract: A superscalar microprocessor is provided that includes a predecode unit configured to predecode variable byte-length instructions prior to their storage within an instruction cache. The predecode unit is configured to generate a plurality of predecode bits for each instruction byte. The plurality of predecode bits associated with each instruction byte include an end bit and two ROP bits. The ROP bits indicate a number of microinstructions required to implement the instruction. The plurality of predecode bits are collectively referred to as a predecode tag. An instruction alignment unit then uses the predecode tags to identify microinstructions. The instruction alignment unit dispatches the microinstructions simultaneously to a plurality of decode units which form fixed issue positions within the superscalar microprocessor. Because the instruction alignment unit identifies microinstructions, the multiplexing of instructions from the instruction alignment unit to the decoders is simplified.Type: GrantFiled: June 11, 1997Date of Patent: April 27, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Thang M. Tran
-
Patent number: 5884058Abstract: A method of instruction dispatch is provided in which a directly-decoded instruction and a microcode instruction are concurrently dispatched ("packed"). The instruction which is second in program order is retained until the succeeding clock cycle. During the succeeding clock cycle, a microcode unit determines if the microcode instruction and the directly-decoded instruction, when taken together, occupy less than or equal to the total number of issue positions available in the microprocessor. If the microcode unit determines that less than or equal to the total number of issue positions are occupied, then the packing is successful. If the microcode unit determines that greater than the total number of issue positions are occupied, then the packing is unsuccessful and the retained instruction is redispatched. Additionally, instruction dispatch selection is performed in two phases. First, a number of instructions are selected as potentially dispatchable instructions.Type: GrantFiled: June 18, 1997Date of Patent: March 16, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Rupaka Mahalingaiah, Paul K. Miller
-
Patent number: 5875315Abstract: An instruction scanning unit for a superscalar microprocessor is disclosed. The instruction scanning unit processes start and end byte information associated with a plurality of contiguous instruction bytes. The processing of start byte information and end byte information is performed independently and in parallel, and the instruction scanning unit produces a plurality of scan values which identify valid instructions within the plurality of contiguous instruction bytes. Additionally, the instruction scanning unit is scalable. Multiple instruction scanning units may be operated in parallel to process a larger plurality of contiguous instruction bytes. Furthermore, the instruction scanning unit detects certain error conditions. Error information may be used by external logic to determine the proper course of action in light of the detected error.Type: GrantFiled: August 20, 1997Date of Patent: February 23, 1999Assignee: Advanced Micro Devices, Inc.Inventor: Rammohan Narayan
-
Patent number: 5872947Abstract: An instruction classification circuit is provided which speculatively classifies potential instructions prior to the decode of these instructions. In parallel, predecode information associated with the plurality of instruction bytes is scanned to determine the valid instructions within the instruction bytes. Instruction classifications are then chosen from the speculatively generated classifications according to the valid instructions located. Instruction information may be determined prior to decoding the instructions. In one embodiment, instructions are classified as either single dispatch instructions or double dispatch instructions. A single dispatch instruction is dispatched to a single decode unit, while a double dispatch instruction is dispatched to a pair of decode units. Instructions utilizing a pair of decode units are detected prior to dispatch to decode units. Bussing between decode units included when double dispatch instructions are detected within the decode unit may be eliminated.Type: GrantFiled: October 24, 1995Date of Patent: February 16, 1999Assignee: Advanced Micro Devices, Inc.Inventor: Rammohan Narayan
-
Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
Patent number: 5872946Abstract: A microprocessor includes an instruction alignment unit for locating instructions and conveying the located instructions to a set of decode units. The instruction alignment unit includes dual instruction queues. The first instruction queue receives instruction blocks fetched from the instruction cache. The instruction alignment unit uses instruction identification information provided by the instruction cache to select instructions from the first instruction queue for conveyance to the second instruction queue. Additionally, the instruction alignment unit applies a predetermined selection criteria to the instructions within the second instruction queue in order to select instructions for dispatch to the decode units. Selection logic for the first instruction queue need not consider the type of instruction, etc., in selecting instructions for conveyance to the second instruction queue. Selection logic for the second instruction queue considers instruction type, etc.Type: GrantFiled: June 11, 1997Date of Patent: February 16, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Venkateswara Rao Madduri -
Patent number: 5867680Abstract: An instruction dispatch apparatus is provided in which a directly-decoded instruction and a microcode instruction are concurrently dispatched ("packed"). The instruction which is second in program order is retained until the succeeding clock cycle. During the succeeding clock cycle, a microcode unit determines if the microcode instruction and the directly-decoded instruction, when taken together, occupy less than or equal to the total number of issue positions available in the microprocessor. If the microcode unit determines that less than or equal to the total number of issue positions are occupied, then the packing is successful. If the microcode unit determines that greater than the total number of issue positions are occupied, then the packing is unsuccessful and the retained instruction is redispatched. Additionally, instruction dispatch selection is performed in two phases. First, a number of instructions are selected as potentially dispatchable instructions.Type: GrantFiled: July 24, 1996Date of Patent: February 2, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Rammohan Narayan, Rupaka Mahalingaiah, Paul K. Miller
-
Patent number: 5859992Abstract: An instruction alignment unit includes a byte queue configured to store instruction blocks. Each instruction block includes a fixed number of instruction bytes and identifies up to a maximum number of instructions within the fixed number of instruction bytes. Additionally, the instruction alignment unit is configured to form a pair of instruction lists: a dispatch list and a latch list. The dispatch list includes instruction locators corresponding to instructions within the instruction blocks stored in the byte queue. Additionally, the first three instructions from instructions blocks being received from the instruction cache during a particular clock cycle are appended to the dispatch list. The dispatch list is used to select instructions from the byte queue for dispatch to the decode units. The latch list is used for receiving instruction locators for the remaining instructions from the instruction blocks received from the instruction cache during the particular clock cycle.Type: GrantFiled: March 12, 1997Date of Patent: January 12, 1999Assignee: Advanced Micro Devices, Inc.Inventors: Thang M. Tran, Rammohan Narayan, Jagadish V. Nayak
-
Patent number: 5859991Abstract: A superscalar microprocessor employing an instruction scanning unit is disclosed. The instruction scanning unit processes start and end byte information associated with a plurality of contiguous instruction bytes. The processing of start byte information and end byte information is performed independently and in parallel, and the instruction scanning unit produces a plurality of scan values which identify valid instructions within the plurality of contiguous instruction bytes. Additionally, the instruction scanning unit is scalable. Multiple instruction scanning units may be operated in parallel to process a larger plurality of contiguous instruction bytes. Furthermore, the instruction scanning unit detects certain error conditions. Error information may be used by external logic to determine the proper course of action in light of the detected error.Type: GrantFiled: January 8, 1997Date of Patent: January 12, 1999Assignee: Advanced Micro Devices, Inc.Inventor: Rammohan Narayan