Patents by Inventor Sanjeev Jain

Sanjeev Jain 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: 7366865
    Abstract: Provided are a method, system, network processor, network device, and article of manufacture for enqueueing entries in a packet queue referencing packets. When adding a packet to a first memory area, an entry is written to a packet queue in a second memory area referencing the added packet. A pointer is read referencing one end of the packet queue from a queue descriptor in the second memory area into a third memory area in one read operation. The pointer is updated in the third memory area to point to the added entry in the packet queue and the updated pointer in the third memory area is written to the queue descriptor in the second memory area in one write operation.
    Type: Grant
    Filed: September 8, 2004
    Date of Patent: April 29, 2008
    Assignee: Intel Corporation
    Inventors: Sridhar Lakshmanamurthy, Sanjeev Jain, Gilbert Wolrich, Debra Bernstein
  • Patent number: 7325099
    Abstract: Method and apparatus to enable slower memory, such as dynamic random access memory (DRAM)-based memory, to support low-latency access using vertical caching. Related function metadata used for packet-processing functions, including metering and flow statistics, is stored in an external DRAM-based store. In one embodiment, the DRAM comprises double data-rate (DDR) DRAM. A network processor architecture is disclosed including a DDR assist with data cache coupled to a DRAM controller. The architecture further includes multiple compute engines used to execute various packet-processing functions. One such function is a DDR assist function that is used to pre-fetch a set of function metadata for a current packet and store the function metadata in the data cache. Subsequently, one or more packet-processing functions may operate on the function metadata by accessing it from the cache. After the functions are completed, the function metadata are written back to the DRAM-based store.
    Type: Grant
    Filed: October 27, 2004
    Date of Patent: January 29, 2008
    Assignee: Intel Corporation
    Inventors: Sanjeev Jain, Mark B. Rosenbluth, Matthew Adiletta, Gilbert Wolrich
  • Publication number: 20080022175
    Abstract: A method according to one embodiment may include performing one or more fetch operations to retrieve one or more instructions from a program memory; scheduling a write instruction to write data from at least one data register into the program memory; and stealing one or more cycles from one or more of the fetch operations to write the data in the at least one data register into the program memory. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.
    Type: Application
    Filed: June 29, 2006
    Publication date: January 24, 2008
    Inventors: Sanjeev Jain, Mark B. Rosenbluth, Gilbert M. Wolrich, Jose S. Niell
  • Patent number: 7289455
    Abstract: In general, in one aspect, a method is provided for of tracking a network statistic stored within a collection of bits. The method includes storing the collection of bits storing the network statistic as at least a first portion and a second portion. The first portion includes a set of least-significant bits and the second portion includes a set of more significant bits. The method also includes incrementing the first portion based on a packet and determining if the incrementing of the first portion caused a designated bit of the first portion to be set. If it is determined that the incrementing of the first portion caused the designated bit to be set, the method increments the value stored by the second portion and resets the designated bit within the first portion.
    Type: Grant
    Filed: July 28, 2003
    Date of Patent: October 30, 2007
    Assignee: Intel Corporation
    Inventors: Sanjeev Jain, Donald F. Hooper
  • Patent number: 7277990
    Abstract: A system having queue control structures includes a conflict avoidance mechanism to prevent memory bank conflicts for queue descriptor access. In one embodiment, a queue descriptor bank table contains information including in which memory bank each queue descriptor is stored.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: October 2, 2007
    Inventors: Sanjeev Jain, Gilbert M. Wolrich
  • Publication number: 20070223504
    Abstract: Scheduling of packets is performed by a scheduler based on departure times. If wrap up of departure times is possible, departure times are transposed based on a zone associated with the last departure time. By using the zone to transpose in order to sort departure times, cycles of independent checks on each of the departure times are avoided.
    Type: Application
    Filed: March 23, 2006
    Publication date: September 27, 2007
    Inventors: Sanjeev Jain, Mark Rosenbluth, Gilbert Wolrich
  • Patent number: 7240164
    Abstract: A mechanism to process units of data associated with a dependent data stream using different threads of execution and a common data structure in memory. Accessing the common data structure in memory for the processing uses a single read operation and a single write operation. The folding of multiple read-modify-write memory operations in such a manner for multiple multi-threaded stages of processing includes controlling a first stage, which operates on the same data unit as a second stage to pass context state information to the second stage for coherency.
    Type: Grant
    Filed: August 14, 2003
    Date of Patent: July 3, 2007
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Hugh Wilkinson, Mark Rosenbluth, Debra Bernstein, Michael F. Fallon, Sanjeev Jain, Myles J. Wilde, Gilbert M. Wolrich
  • Publication number: 20070052443
    Abstract: A buffer circuit (31), for example a repeater or receiver circuit for a signal wire of an on-chip bus, receives an input signal, and produces an output signal. The buffer circuit (31) comprises a first inverting stage (7) and a second inverter stage (9). The second inverting stage (9) provides the drive for the output (5). The first inverting stage (7) has additional circuitry (15, 17, 19, 21, 23, 25, 27, 29) for controlling the strengths of the pull up path and the pull down path. The pull up/down paths are dynamically controlled according to the status of one or more aggressor signals. In one embodiment the switching threshold is lowered only in the worst case delay scenario, i.e. when the signal wire (3) is at a different logic level to the aggressor signals. In another embodiment, the switching threshold is raised when the signal wire and aggressor signals are all at the same logic level, thereby reducing crosstalk.
    Type: Application
    Filed: May 7, 2004
    Publication date: March 8, 2007
    Inventors: Atul Katoch, Sanjeev Jain, Rinze Meijer
  • Publication number: 20070044103
    Abstract: In general, in one aspect, the disclosure describes a method that includes issuing, by a first thread at a first programmable unit of a set of multiple multi-threaded programmable units integrated within a single die, a request for a lock associated with data. The method also includes receiving, by the first thread, a grant for the lock and identification of a second thread to receive a grant for the lock after the lock is released by the first thread. The first thread initiates transfer of the data associated with the lock to the one of the multiple multi-threaded programmable units executing the second thread and releases the lock.
    Type: Application
    Filed: July 25, 2005
    Publication date: February 22, 2007
    Inventors: Mark Rosenbluth, Sanjeev Jain, Gilbert Wolrich
  • Publication number: 20070022429
    Abstract: In general, in one aspect, the disclosure describes a processor that includes multiple multi-threaded programmable units integrated on a single die. The die also includes circuitry communicatively coupled to the programmable units that reorders and grants lock requests received from the threads based on an order in which the threads requested insertion into a sequence of lock grants.
    Type: Application
    Filed: July 25, 2005
    Publication date: January 25, 2007
    Inventors: Mark Rosenbluth, Sanjeev Jain, Gilbert Wolrich
  • Publication number: 20070013429
    Abstract: A clamper circuit (1) receives an input signal (3) from the signal wire being clamped, i.e. the victim wire. The clamper circuit (1) also receives aggressor signals (5, 7) from aggressor wires, the aggressor wires being the signal wires that can potentially induce crosstalk on the victim wire. An output signal (9), for clamping the victim wire, is selectively enabled based on the logic states of the input signal (3) and the aggressor signals (5, 7). In addition to selectively providing a clamping signal, the clamper circuit (1) also has the advantage of accelerating the switching of the victim wire when an opposite transition occurs on the aggressors and victim wire at the same time, thereby reducing worst case delay and improving the signal integrity.
    Type: Application
    Filed: August 7, 2004
    Publication date: January 18, 2007
    Inventors: Atul Katoch, Rinze Meijer, Sanjeev Jain
  • Publication number: 20070008985
    Abstract: Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices. The method and apparatus employ queue descriptors to manage transfer of data from corresponding queues in memory into a switch fabric. In one embodiment, each queue descriptor includes an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue, a schedule pointer identifying a head cell of the segment of data, and a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric. In another embodiment, the queue descriptor further includes a scheduler sequence number; and a committed sequence number that are employed in connection with transfers of data from queues containing multiple segments. The various pointers and sequence numbers are employed to facilitate efficient check-point and roll-back operations relating to unsuccessful transmissions into the switch fabric.
    Type: Application
    Filed: June 30, 2005
    Publication date: January 11, 2007
    Inventors: Sridhar Lakshmanamurthy, Sanjeev Jain, Gilbert Wolrich, Hugh Wilkinson
  • Publication number: 20060159103
    Abstract: In general, in one aspect, the disclosure describes a method that includes at a first packet processing thread executing at a first core, performing a memory read to data shared between packet processing threads including the first thread. The method also includes at the first packet processing thread, determining whether the data returned by the memory read has been changed by a packet processing thread operating on another core before performing an exclusive operation on the shared data by the first packet processing thread.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 20, 2006
    Inventors: Sanjeev Jain, Donald Hooper
  • Publication number: 20060155959
    Abstract: A context forwarding bus efficiently communicates control and data between processing elements in a processor unit having a plurality of processing elements. Control and data information is transferred over a first bus from processing element to processing element.
    Type: Application
    Filed: December 21, 2004
    Publication date: July 13, 2006
    Inventors: Sanjeev Jain, Gilbert Wolrich, Mark Rosenbluth
  • Publication number: 20060153185
    Abstract: Systems and methods for dynamically changing ring size in network processing are disclosed. In one embodiment, a method generally includes requesting a free memory block from a free block pool manager by a ring manager for a corresponding ring when a first memory block is filled, receiving an address of a free memory block from the free block pool manager in response to the request from the ring manager, storing the address of the free memory block in the first memory block by the ring manager, the storing linking the free memory block to the first memory block as a next linked memory block to the first memory block, and repeating the requesting, receiving and storing for each additional linked memory blocks. An external service thread may be assigned to fulfill block fill-up requests from the free block pool manager.
    Type: Application
    Filed: December 28, 2004
    Publication date: July 13, 2006
    Applicant: Intel Corporation
    Inventors: Sanjeev Jain, Mark Rosenbluth
  • Publication number: 20060143373
    Abstract: Queuing command information is stored in a content addressable memory (CAM) where a queuing command for a first queue is received, the CAM is examined to determine if commands for the first queue are present, and if commands for the first queue were found to be present, information is stored in a linked list for the received command in multiple CAM entries.
    Type: Application
    Filed: December 28, 2004
    Publication date: June 29, 2006
    Inventors: Sanjeev Jain, Gilbert Wolrich, Debra Bernstein
  • Publication number: 20060140203
    Abstract: Data is enqueued and dequeued using a block-based queuing structure.
    Type: Application
    Filed: December 28, 2004
    Publication date: June 29, 2006
    Inventors: Sanjeev Jain, Gilbert Wolrich, Mark Rosenbluth, Debra Bernstein
  • Publication number: 20060140192
    Abstract: Systems and methods employing a flexible mesh structure for hierarchical scheduling are disclosed. The method generally includes reading a packet grouping configured in a two dimensional mesh structure of N columns, each containing M packets, selecting and promoting a column best packet from each column to a final row containing N packets, reading, selecting and promoting a final best packet from the final row to a next level in the hierarchy. Each time a final best packet is selected and promoted, the mesh structure can be refreshed by replacing the packet corresponding to the final best packet, and reading, selecting and promoting a column best packet from the column containing the replacement packet to the final row. As only the column containing the replacement packet and the final row are read and compared for each refresh, the mesh structure results in reduced read and compare cycles for schedule determination.
    Type: Application
    Filed: December 29, 2004
    Publication date: June 29, 2006
    Applicant: Intel Corporation, A DELAWARE CORPORATION
    Inventors: Sanjeev Jain, Gilbert Wolrich
  • Publication number: 20060136659
    Abstract: A content addressable memory (CAM) includes a linked list structure for a pending queue to order memory commands for maximizing memory channel bandwidth by minimizing read/write stalls due to read-modify-write commands.
    Type: Application
    Filed: December 21, 2004
    Publication date: June 22, 2006
    Inventors: Sanjeev Jain, Gilbert Wolrich, Debra Bernstein
  • Publication number: 20060136681
    Abstract: A memory controller system includes a memory command storage module to store commands for a plurality of memory banks. The system includes a plurality of control mechanisms, each of which includes first and second pointers, to provide, in combination with a next field in each module location, a link list of commands for a given one of the plurality of memory banks.
    Type: Application
    Filed: December 21, 2004
    Publication date: June 22, 2006
    Inventors: Sanjeev Jain, Gilbert Wolrich, Mark Rosenbluth, Debra Bernstein