Patents by Inventor Rishiyur S. Nikhil

Rishiyur S. Nikhil 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: 8572534
    Abstract: A Hardware Description Language (HDL) utilizing a Term Rewriting System (TRS) is provided that simplifies handling of clocks, and signaling between various clock domains of a multi-clock domain circuit specification. A specific clock data type is supplied for use with clock signals. Using the clock data type, and other requirements of a circuit specification, clock domain crossing between domains of clocks of the same clock family is handled implicitly. For clock domain crossing between clock domains driven by clocks of different clock families, a “hardware approach” and a “linguistic approach” are provided. A “hardware approach” provides facilities to explicitly specify a synchronizer, using, in part, TRS rules. A “linguistic approach” allows a designer to abstracts the instantiation of synchronizers and instead specify a circuit specification in terms of differently clocked interfaces.
    Type: Grant
    Filed: February 16, 2010
    Date of Patent: October 29, 2013
    Assignee: Bluespec, Inc.
    Inventors: Edward W. Czeck, Ravi A. Nanavati, Rishiyur S. Nikhil, Joseph E. Stoy
  • Publication number: 20100146468
    Abstract: A Hardware Description Language (HDL) utilizing a Term Rewriting System (TRS) is provided that simplifies handling of clocks, and signaling between various clock domains of a multi-clock domain circuit specification. A specific clock data type is supplied for use with clock signals. Using the clock data type, and other requirements of a circuit specification, clock domain crossing between domains of clocks of the same clock family is handled implicitly. For clock domain crossing between clock domains driven by clocks of different clock families, a “hardware approach” and a “linguistic approach” are provided. A “hardware approach” provides facilities to explicitly specify a synchronizer, using, in part, TRS rules. A “linguistic approach” allows a designer to abstracts the instantiation of synchronizers and instead specify a circuit specification in terms of differently clocked interfaces.
    Type: Application
    Filed: February 16, 2010
    Publication date: June 10, 2010
    Applicant: BLUESPEC, INC.
    Inventors: Edward W. Czeck, Ravi A. Nanavati, Rishiyur S. Nikhil, Joseph E. Stoy
  • Patent number: 7665059
    Abstract: A Hardware Description Language (HDL) utilizing a Term Rewriting System (TRS) is provided that simplifies handling of clocks, and signaling between various clock domains of a multi-clock domain circuit specification. A specific clock data type is supplied for use with clock signals. Using the clock data type, and other requirements of a circuit specification, clock domain crossing between domains of clocks of the same clock family is handled implicitly. For clock domain crossing between clock domains driven by clocks of different clock families, a “hardware approach” and a “linguistic approach” are provided. A “hardware approach” provides facilities to explicitly specify a synchronizer, using, in part, TRS rules. A “linguistic approach” allows a designer to abstracts the instantiation of synchronizers and instead specify a circuit specification in terms of differently clocked interfaces.
    Type: Grant
    Filed: June 7, 2006
    Date of Patent: February 16, 2010
    Assignee: Bluespec, Inc.
    Inventors: Edward W. Czeck, Ravi A. Nanavati, Rishiyur S. Nikhil, Joseph E. Stoy
  • Publication number: 20070288874
    Abstract: A Hardware Description Language (HDL) utilizing a Term Rewriting System (TRS) is provided that simplifies handling of clocks, and signaling between various clock domains of a multi-clock domain circuit specification. A specific clock data type is supplied for use with clock signals. Using the clock data type, and other requirements of a circuit specification, clock domain crossing between domains of clocks of the same clock family is handled implicitly. For clock domain crossing between clock domains driven by clocks of different clock families, a “hardware approach” and a “linguistic approach” are provided. A “hardware approach” provides facilities to explicitly specify a synchronizer, using, in part, TRS rules. A “linguistic approach” allows a designer to abstracts the instantiation of synchronizers and instead specify a circuit specification in terms of differently clocked interfaces.
    Type: Application
    Filed: June 7, 2006
    Publication date: December 13, 2007
    Inventors: Edward W. Czeck, Ravi A. Nanavati, Rishiyur S. Nikhil, Joseph E. Stoy
  • Patent number: 6675189
    Abstract: A system for learning and applying a task and data parallel strategy to an application that includes at least one task for processing an input data stream to produce an output data stream includes the following components. A controller measuring an execution of the application to generate an action space representing a task and data parallel strategy. A run-time system applying the action space to implement the task and data parallel strategy.
    Type: Grant
    Filed: May 28, 1998
    Date of Patent: January 6, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: James Mathew Rehg, Kathleen Knobe, Rishiyur S. Nikhil, Umakishore Ramachandran
  • Patent number: 6480876
    Abstract: A system for integrating task and data parallelism in a dynamic application that includes at least one task for processing an input data stream to produce an output data stream replaces the at least one task with the following components. A splitter task for partitioning the input data stream into a plurality of data chunks. A plurality of worker tasks for processing subsets of the data chunks, each worker task being an instance of the at least one task, and a joiner task combining the processed data chunks to produce the output data stream.
    Type: Grant
    Filed: May 28, 1998
    Date of Patent: November 12, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: James Mathew Rehg, Kathleen Knobe, Rishiyur S. Nikhil, Umakishore Ramachandran
  • Publication number: 20020091747
    Abstract: A system for integrating task and data parallelism in a dynamic application that includes at least one task for processing an input data stream to produce an output data stream replaces the at least one task with the following components. A splitter task for partitioning the input data stream into a plurality of data chunks. A plurality of worker tasks for processing subsets of the data chunks, each worker task being an instance of the at least one task, and a joiner task combining the processed data chunks to produce the output data stream.
    Type: Application
    Filed: May 28, 1998
    Publication date: July 11, 2002
    Inventors: JAMES MATHEW REHG, KATHLEEN KNOBE, RISHIYUR S. NIKHIL, UMAKISHORE RAMACHANDRAN
  • Patent number: 6067604
    Abstract: In a computer system, a memory is allocated to a plurality of ports. The ports are arranged in a spatial ordering. A plurality of various sized data items are temporally ordered in each of the plurality of ports. Each data item includes a time-stamp to indicate the temporal ordering of the plurality of data items. The plurality of data items are atomically accessed by a plurality of threads using space and time coordinates. The space and time coordinates uniquely identify each of the plurality of data items.
    Type: Grant
    Filed: August 11, 1997
    Date of Patent: May 23, 2000
    Assignee: Compaq Computer Corporation
    Inventors: Umakishore Ramachandran, Robert H. Halstead, Jr., Christopher F. Joerg, Leonidas Kontothanassis, Rishiyur S. Nikhil, James M. Rehg
  • Patent number: 5560029
    Abstract: A multiprocessor system comprises a plurality of processing nodes, each node processing multiple threads of computation. Each node includes a data processor which sequentially processes blocks of code, each block defining a thread of computation. The code includes instructions to send start messages with data values to start new threads of computation. Each node also includes a synchronization coprocessor for processing start messages from the same and other nodes of the system. The coprocessor processes the messages from a message queue to store values as operands for threads of computation, to determine when all operands required for a thread of computation have been received and to provide in a continuation queue an indication to the data processor that a thread of computation may be initiated. The data processor subsequently nonsynchronously initiates the thread of computation. Alternatively, a single processor may perform the continuation and message processing functions in an interleaved sequence.
    Type: Grant
    Filed: May 31, 1994
    Date of Patent: September 24, 1996
    Assignee: Massachusetts Institute of Technology
    Inventors: Gregory M. Papadopoulos, Rishiyur S. Nikhil, Robert J. Greiner, Arvind
  • Patent number: 5499349
    Abstract: A multithreaded parallel data processing system has at least one processing element for processing multiple threads of computation. Threads are described by thread descriptors or tokens which are stored while waiting to be processed in a thread descriptor storage. Thread descriptors are comprised of an instruction pointer and a frame pointer. The instruction pointer points to the next instruction to be executed, and the frame pointer points to a frame of memory locations that the next instruction will operate on. Included within the instruction set of the at least one processing element is a fork instruction generates two thread descriptors which are added to the current thread descriptors, a start instruction on a first processor sends a message containing a thread descriptor to a second processor, and a join instruction joins two threads by producing a single thread descriptor when both of the joining threads have reached a join instruction.
    Type: Grant
    Filed: October 3, 1994
    Date of Patent: March 12, 1996
    Assignee: Massachusetts Institute of Technology
    Inventors: Rishiyur S. Nikhil, Arvind
  • Patent number: 5430850
    Abstract: A multiprocessor system comprises a plurality of processing nodes, each node processing multiple threads of computation. Each node includes a data processor which sequentially processes blocks of code, each block defining a thread of computation. The code includes instructions to send start messages with data values to start new threads of computation. Each node also includes a synchronization coprocessor for processing start messages from the same and other nodes of the system. The coprocessor processes the start messages to store values as operands for threads of computation, to determine when all operands required for a thread of computation have been received and to provide an indication to the data processor that a thread of computation may be initiated. The data processor subsequently nonsynchronously initiates the thread of computation. Preferably, the processors load and store from and to a common memory with the translation from a local virtual address to a local physical address.
    Type: Grant
    Filed: July 22, 1991
    Date of Patent: July 4, 1995
    Assignee: Massachusetts Institute of Technology
    Inventors: Gregory M. Papadopoulos, Rishiyur S. Nikhil, Robert J. Greiner, Arvind
  • Patent number: 5353418
    Abstract: A multithreaded parallel data processing system has at least one processing element for processing multiple threads of computation. Threads are described by thread descriptors which are stored while waiting to be processed in a thread descriptor storage. Thread descriptors are comprised of an instruction pointer and a frame pointer. The instruction pointer points to the next instruction to be executed, and the frame pointer points to a frame of memory locations that the next instruction will operate on. Included within the instruction on set of the at least one processing element is a load instruction that loads global data into local processing element memory that is performed to two phases: a request phase and a response phase. Also included are instructions to fork a thread into two threads and to join two threads into a single thread.
    Type: Grant
    Filed: May 21, 1990
    Date of Patent: October 4, 1994
    Assignee: Massachusetts Institute of Technology
    Inventors: Rishiyur S. Nikhil, Arvind