Patents by Inventor Mayan Moudgill

Mayan Moudgill 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: 20120096243
    Abstract: A multithreaded processor comprises a plurality of hardware thread units, an instruction decoder coupled to the thread units for decoding instructions received therefrom, and a plurality of execution units for executing the decoded instructions. The multithreaded processor is configured for controlling an instruction issuance sequence for threads associated with respective ones of the hardware thread units. On a given processor clock cycle, only a designated one of the threads is permitted to issue one or more instructions, but the designated thread that is permitted to issue instructions varies over a plurality of clock cycles in accordance with the instruction issuance sequence. The instructions are pipelined in a manner which permits at least a given one of the threads to support multiple concurrent instruction pipelines.
    Type: Application
    Filed: October 27, 2011
    Publication date: April 19, 2012
    Applicant: Aspen Acquisition Corporation
    Inventors: Erdem Hokenek, Mayan Moudgill, Michael J. Schulte, C. John Glossner
  • Patent number: 8074051
    Abstract: A multithreaded processor comprises a plurality of hardware thread units, an instruction decoder coupled to the thread units for decoding instructions received therefrom, and a plurality of execution units for executing the decoded instructions. The multithreaded processor is configured for controlling an instruction issuance sequence for threads associated with respective ones of the hardware thread units. On a given processor clock cycle, only a designated one of the threads is permitted to issue one or more instructions, but the designated thread that is permitted to issue instructions varies over a plurality of clock cycles in accordance with the instruction issuance sequence. The instructions are pipelined in a manner which permits at least a given one of the threads to support multiple concurrent instruction pipelines.
    Type: Grant
    Filed: April 1, 2005
    Date of Patent: December 6, 2011
    Assignee: Aspen Acquisition Corporation
    Inventors: Erdem Hokenek, Mayan Moudgill, Michael J. Schulte, C. John Glossner
  • Patent number: 8056064
    Abstract: A method which determines by an optimizing compiler whether any variable in the given program equals to the given acyclic mathematical function applied to given variables in the program and the method includes expressing the bits of the value of the function as a Boolean function of the bits of the inputs and expressing for every variable and statement the value taken by v when s is executed as a Boolean function and expressing, for every statement the condition under which the statement is executed as a Boolean function, and Finally, a determination is made using a Boolean satisfiability oracle of whether, for the given variable and program statement, the a particular Boolean expression holds and a determination is of whether for a given variable and program statement whenever the predicate and the condition are true.
    Type: Grant
    Filed: August 11, 2005
    Date of Patent: November 8, 2011
    Assignee: Aspen Acquisition Corporation
    Inventors: Mayan Moudgill, Vladimir Kotlyar
  • Publication number: 20110254588
    Abstract: A circuit is described including a clock input for at least one clock signal. Only one clock buffer is connected to the clock input to generate, based on the at least one clock signal, at least a first modified clock signal and a second modified clock signal. A plurality of flip-flops are connected to the clock buffer. Each of the flip-flops receive the first and second modified clock signals. A plurality of data inputs are each connected to at least one of the plurality of flip-flops to provide input data to the plurality of flip-flops. A plurality of data outputs each are connected to at least one of the plurality of flip-flops to provide output data from the plurality of flip-flops. Each of the plurality of flip-flops transform the input data to the output data utilizing the first modified clock signal and the second modified clock signal.
    Type: Application
    Filed: May 7, 2009
    Publication date: October 20, 2011
    Applicant: ASPEN ACQUISITION CORPORATION
    Inventors: Gary Nacer, Mayan Moudgill, Shenghong Wang
  • Publication number: 20110252211
    Abstract: A method is described for operation of a DMA engine. Copying is initiated for transfer of a first number of bytes from first source memory locations to first destination memory locations. Then, a halt instruction is issued before the first number of bytes are copied. After copying is stopped, a second number of bytes is established, encompassing those bytes remaining to be copied. After the transfer is halted, a quantity of the second number of bytes is identified. Quantity information is then generated and stored. Second source memory locations are identified to indicate where the second number of bytes are stored. Second source memory location information is then generated and stored. Second destination memory locations are then identified to indicate where the second number of bytes are to be transferred. Second destination memory location information is then generated and stored.
    Type: Application
    Filed: August 5, 2009
    Publication date: October 13, 2011
    Applicant: Aspen Acquisition Corporation
    Inventors: Mayan Moudgill, Shenghong Wang
  • Publication number: 20110241744
    Abstract: A processor register file for a multi-threaded processor is described. The processore register file includes, in one embodiment, T threads, having N b-bit wide registers. Each of the registers includes a b-bit master latch, T b-bit slave latches connected to the master latch, and a slave latch write enable connected to the slave latches. The master latch is not opened at the same time as the slave latches. In addition, only one of the slave latches is enabled at any given time. As should be apparent to those skilled in the art, T, N, and b are all integers. Other embodiments and variations are also provided.
    Type: Application
    Filed: August 20, 2009
    Publication date: October 6, 2011
    Applicant: Aspen Acquisition Corporation
    Inventors: Mayan Moudgill, Gary Nacer, Shenghong Wang
  • Publication number: 20110153701
    Abstract: A method for a Galois Field multiply includes executing first and second instructions. The first instruction includes receiving a first input, such as a first variable, receiving a second input, such as a second variable, performing a polynomial multiplication over GF(2m), using the first and second inputs, and producing a product. The second instruction includes receiving a third input, which may be the product from the first instruction, receiving a fourth input, which is a predetermined generator polynomial to operate upon the product, receiving a fifth input, which is a length of the predetermined generator polynomial, to limit operation of the predetermined generator polynomial upon the product, and computing, via the predetermined generator polynomial limited by the length, a modulus of the product with respect to a divisor. A hardware block is also described.
    Type: Application
    Filed: May 7, 2009
    Publication date: June 23, 2011
    Applicant: ASPEN ACQUISITION CORPORATION
    Inventor: Mayan Moudgill
  • Patent number: 7895413
    Abstract: A microprocessor for processing instructions comprises multiple clusters for receiving the instructions, each of the clusters having a plurality of functional units for executing the instructions, multiple register sub-files each having multiple registers for storing data for executing the instructions, wherein each of the clusters is associated with corresponding one of the register sub-files so that an instruction dispatched to a cluster is executed by accessing registers in a register sub-file associated with the cluster to which the instruction is dispatched, a register-renaming unit for renaming target registers in an instruction with registers in a register sub-file associated with a cluster to which the instruction is dispatched, and issue-queue units each of which is associated with a corresponding one of the clusters, wherein an issue-queue unit holds instruction renamed by the register-renaming unit until the renamed instruction is issued to be executed in a cluster associated with the issue-queue u
    Type: Grant
    Filed: May 15, 2008
    Date of Patent: February 22, 2011
    Assignee: International Business Machines Corporation
    Inventor: Mayan Moudgill
  • Publication number: 20100293210
    Abstract: A digital signal processor is provided in a wireless communication device, wherein the processor comprises a vector unit, first and second registers coupled to and accessible by the vector unit; and an instruction set configured to perform matrix inversion of a matrix of channel values by coordinate rotation digital computer instructions using the vector unit and the first and second registers.
    Type: Application
    Filed: September 24, 2007
    Publication date: November 18, 2010
    Applicant: SANDBRIDGE TECHNOLOGIES, INC.
    Inventors: Mihai Sima, Daniel Iancu, Hua Ye, Mayan Moudgill
  • Publication number: 20100274989
    Abstract: A method executed by an instruction set on a processor is described. The method includes providing a tbbit instruction, inputting a first index for the tbbit instruction, loading a second value for the tbbit instruction, wherein the second value comprises at least 2b bits, using selected b bits of the first index to select at least one target bit in the loaded second value, shifting the target bit into the bottom of the first index, and computing a second index based on the shifting of the target bit into the bottom of the first index. Other methods and variations are also described.
    Type: Application
    Filed: December 8, 2008
    Publication date: October 28, 2010
    Inventors: Mayan Moudgill, Sitij Agrawal
  • Publication number: 20100241834
    Abstract: The method selects registers by a register instruction field having x bits. A first group of registers has up to 2y registers and a second group of registers has up to 2z registers where y and z are at least one and not great than x. The method includes encoding an instruction field with x bits wherein y of the x bits designates a register of the first group and z bits of the x bits designates a register of the second group. The register of the first group designated by the y bits of the instruction field and the register of the second group designated by the z bits of the instruction field are selected.
    Type: Application
    Filed: August 28, 2008
    Publication date: September 23, 2010
    Applicant: SANDBRIDGE TECHNOLOGIES, INC.
    Inventor: Mayan Moudgill
  • Patent number: 7797363
    Abstract: A processor comprises a plurality of arithmetic units, an accumulator unit, and a reduction unit coupled between the plurality of arithmetic units and the accumulator unit. The reduction unit receives products of vector elements from the arithmetic units and a first accumulator value from the accumulator unit, and processes the products and the first accumulator value to generate a second accumulator value for delivery to the accumulator unit. The processor implements a plurality of vector multiply and reduce operations having guaranteed sequential semantics, that is, operations which guarantee that the computational result will be the same as that which would be produced using a corresponding sequence of individual instructions.
    Type: Grant
    Filed: April 1, 2005
    Date of Patent: September 14, 2010
    Assignee: Sandbridge Technologies, Inc.
    Inventors: Erdem Hokenek, Michael J. Schulte, Mayan Moudgill, C. John Glossner
  • Publication number: 20100228938
    Abstract: A method includes identifying a first register with M bits and a second register with N bits. The process also includes shifting K bits, where K<=N, from the second register into the first register. The shifting operation executes a left shift operation including reading bits K . . . N?1 from the first register, writing bits K . . . N?1 into bit positions O . . . N?K?1 of the first register, reading K bits from the second register, and writing K bits from second register into bit positions N?K . . . N?1 of first register, or a right shift operation including reading bits O . . . N?K?1 from the first register, writing bits O . . . N?K?1 into bit position K . . . N?1 of the first register, reading the K bits from the second register, and writing K bits from second register into bit positions O . . . K?1 of first register.
    Type: Application
    Filed: December 4, 2008
    Publication date: September 9, 2010
    Applicant: Sandbridge Technologies Inc.
    Inventor: Mayan Moudgill
  • Publication number: 20100199075
    Abstract: A multithreaded processor comprises a plurality of hardware thread units, an instruction decoder coupled to the thread units for decoding instructions received therefrom, and a plurality of execution units for executing the decoded instructions. The multithreaded processor is configured for controlling an instruction issuance sequence for threads associated with respective ones of the hardware thread units. On a given processor clock cycle, only a designated one of the threads is permitted to issue one or more instructions, but the designated thread that is permitted to issue instructions varies over a plurality of clock cycles in accordance with the instruction issuance sequence. The instructions are pipelined in a manner which permits at least a given one of the threads to support multiple concurrent instruction pipelines.
    Type: Application
    Filed: October 15, 2009
    Publication date: August 5, 2010
    Inventors: Erdem Hokenek, Mayan Moudgill, Michael J. Schulte, C. John Glossner
  • Publication number: 20100199073
    Abstract: A multithreaded processor comprises a plurality of hardware thread units, an instruction decoder coupled to the thread units for decoding instructions received therefrom, and a plurality of execution units for executing the decoded instructions. The multithreaded processor is configured for controlling an instruction issuance sequence for threads associated with respective ones of the hardware thread units. On a given processor clock cycle, only a designated one of the threads is permitted to issue one or more instructions, but the designated thread that is permitted to issue instructions varies over a plurality of clock cycles in accordance with the instruction issuance sequence. The instructions are pipelined in a manner which permits at least a given one of the threads to support multiple concurrent instruction pipelines.
    Type: Application
    Filed: October 15, 2009
    Publication date: August 5, 2010
    Inventors: Erdem Hokenek, Mayan Moudgill, Michael J. Schulte, C. John Glossner
  • Publication number: 20100122068
    Abstract: A multithreaded processor comprises a plurality of hardware thread units, an instruction decoder coupled to the thread units for decoding instructions received therefrom, and a plurality of execution units for executing the decoded instructions. The multithreaded processor is configured for controlling an instruction issuance sequence for threads associated with respective ones of the hardware thread units. On a given processor clock cycle, only a designated one of the threads is permitted to issue one or more instructions, but the designated thread that is permitted to issue instructions varies over a plurality of clock cycles in accordance with the instruction issuance sequence. The instructions are pipelined in a manner which permits at least a given one of the threads to support multiple concurrent instruction pipelines.
    Type: Application
    Filed: October 15, 2009
    Publication date: May 13, 2010
    Inventors: Erdem Hokenek, Mayan Moudgill, Michael J. Schulte, C. John Glossner
  • Publication number: 20100115527
    Abstract: A method of parallelizing a pipeline includes stages operable on a sequence of work items. The method includes allocating an amount of work for each work item, assigning at least one stage to each work item, partitioning the at least one stage into at least one team, partitioning the at least one team into at least one gang, and assigning the at least one team and the at least one gang to at least one processor. Processors, gangs, and teams are juxtaposed near one another to minimize communication losses.
    Type: Application
    Filed: November 8, 2007
    Publication date: May 6, 2010
    Applicant: SANDBRIDGE TECHNOLOGIES, INC.
    Inventors: Vladimir Kotlyar, Mayan Moudgill, Yurly M. Pogudin
  • Publication number: 20100031007
    Abstract: A method reads and compares first and second register values, each with a size of at least two bytes. A third register indicates a match if: (1) a byte in the first register value is equal to (or, alternatively, not equal to) a corresponding byte in the second register value, or (2) if a byte in the first register value is zero. Next, a fourth register value is set to one of the following: (1) a count of the matching byte, if the corresponding bytes in the first and second register values are equal (or, alternatively, are not equal), or (2) a number outside of a range between 0 and n?1, if the corresponding bytes in the first and second register values are not equal (or, alternatively, are equal). The value, n, is an integer equal to the number of bytes in the first and second register values.
    Type: Application
    Filed: February 3, 2009
    Publication date: February 4, 2010
    Applicant: SANDBRIDGE TECHNOLOGIES, INC.
    Inventor: Mayan MOUDGILL
  • Publication number: 20090276432
    Abstract: A method and apparatus for efficiently storing multiple data types in a computer's register or data file. A single data file can store data with a variety of sizes and number formats, including integers, fractions, and mixed numbers. The register file is partitioned into fields, such that only the relevant portions of the register file are read or written.
    Type: Application
    Filed: November 15, 2005
    Publication date: November 5, 2009
    Inventors: Erdem Hokenek, Mayan Moudgill, C. John Glossner, Michael J. Schulte
  • Publication number: 20090193279
    Abstract: A method for providing at least one sequence of values to a plurality of processors is described. In the method, a sequence generator from one or more sequence generators is associated with a memory location. The sequence generator is configured to generate the at least one sequence of values. One or more read accesses of the memory location are enabled by a processor from the plurality of processors. In response to enabling the read access, the sequence generator is executed so that it returns a first value from the sequence of values to the processor. After executing the sequence generator, the sequence generator is advanced so that the next access generates a second value from the sequence of values. The second value is sequentially subsequent to the first value.
    Type: Application
    Filed: January 29, 2009
    Publication date: July 30, 2009
    Applicant: SANDBRIDGE TECHNOLOGIES, INC.
    Inventors: Mayan MOUDGILL, Vitaly Kalashnikov, Murugappan Senthilvelan, Umesh Srikantiah, Tak-po Li, Pablo Balzola