Patents by Inventor Ramesh Panwar

Ramesh Panwar 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: 6745289
    Abstract: A system for processing data includes a first set of cache memory and a second set of cache memory that are each coupled to a main memory. A compute engine coupled to the first set of cache memory transfers data from a communications medium into the first set of cache memory. The system transfers the data from the first set of cache memory to the second set of cache memory, in response to a request for the data from a compute engine coupled to the second set of cache memory. Data is transferred between the sets of cache memory without accessing main memory, regardless of whether the data has been modified. The data is also transferred directly between sets of cache memory when the data is exclusively owned by a set of cache memory or shared by sets of cache memory.
    Type: Grant
    Filed: March 25, 2002
    Date of Patent: June 1, 2004
    Assignee: Juniper Networks, Inc.
    Inventors: Frederick Gruner, Elango Ganesan, Nazar Zaidi, Ramesh Panwar
  • Publication number: 20030154346
    Abstract: A system for processing data includes a first set of cache memory and a second set of cache memory that are each coupled to a main memory. A compute engine coupled to the first set of cache memory transfers data from a communications medium into the first set of cache memory. The system transfers the data from the first set of cache memory to the second set of cache memory, in response to a request for the data from a compute engine coupled to the second set of cache memory. Data is transferred between the sets of cache memory without accessing main memory, regardless of whether the data has been modified. The data is also transferred directly between sets of cache memory when the data is exclusively owned by a set of cache memory or shared by sets of cache memory.
    Type: Application
    Filed: March 25, 2002
    Publication date: August 14, 2003
    Inventors: Frederick Gruner, Elango Ganesan, Nazar Zaidi, Ramesh Panwar
  • Publication number: 20030126233
    Abstract: A network content service apparatus includes a set of compute elements adapted to perform a set of network services; and a switching fabric coupling compute elements in said set of compute elements. The set of network services includes firewall protection, Network Address Translation, Internet Protocol forwarding, bandwidth management, Secure Sockets Layer operations, Web caching, Web switching, and virtual private networking. Code operable on the compute elements enables the network services, and the compute elements are provided on blades which further include at least one input/output port.
    Type: Application
    Filed: July 8, 2002
    Publication date: July 3, 2003
    Inventors: Mark Bryers, Elango Ganesan, Frederick Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Abbas Rashid, Mark Vilas, Nazar Zaidi, Yen Lee, Chau Anh Ngoc Nguyen, John Phillips, Yuhong Andy Zhou, Gregory G. Spurrier, Sankar Ramanoorthi, Michael Freed
  • Publication number: 20030120876
    Abstract: A multi-processor unit includes a set of processing clusters. Each processing cluster is coupled to a data ring and a snoop ring. The unit also includes a snoop controller adapted to process memory requests from each processing cluster. The data ring enables clusters to exchange requested information. The snoop ring is coupled to the snoop controller—enabling the snoop controller to forward each cluster's memory requests to the other clusters in the form of snoop requests.
    Type: Application
    Filed: March 25, 2002
    Publication date: June 26, 2003
    Inventors: David Hass, Mark Vilas, Fred Gruner, Ramesh Panwar, Nazar Zaidi
  • Publication number: 20030033479
    Abstract: A compute engine's central processing unit is coupled to a coprocessor that includes application engines. The central processing unit initializes the coprocessor to perform an application, and the coprocessor initializes an application engine to perform the application. The application engine responds by carrying out the application. In performing some applications, the application engine accesses cache memory—obtaining a physical memory address that corresponds to a virtual address and providing the physical address to the cache memory. In some instances, the coprocessor employs multiple application engines to carry out an application. In one implementation, the application engines facilitate different network services, including but not limited to: 1) virtual private networking; 2) secure sockets layer processing; 3) web caching; 4) hypertext mark-up language compression; 5) virus checking; 6) firewall support; and 7) web switching.
    Type: Application
    Filed: March 25, 2002
    Publication date: February 13, 2003
    Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
  • Publication number: 20030033488
    Abstract: A compute engine includes a central processing unit coupled to a coprocessor. The coprocessor includes a media access controller engine and a data transfer engine. The media access controller engine couples the compute engine to a communications network. The data transfer engine couples the media access controller engine to a set of cache memory. In further embodiments, a compute engine includes two media access controller engines. A reception media access controller engine receives data from the communications network. A transmission media access controller engine transmits data to the communications network. The compute engine also includes two data transfer engines. A streaming output engine stores network data from the reception media access controller engine in cache memory. A streaming input engine transfers data from cache memory to the transmission media access controller engine.
    Type: Application
    Filed: March 25, 2002
    Publication date: February 13, 2003
    Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
  • Publication number: 20030033481
    Abstract: A system includes a plurality of processing clusters and a snoop controller adapted to service memory requests. The snoop controller and each processing cluster are coupled to a snoop ring. A first processing cluster forwards a memory request to the snoop controller for access to a memory location. In response to the memory request, the snoop controller places a snoop request on the snoop ring—calling for a change in ownership of the requested memory location. A second processing cluster receives the snoop request on the snoop ring. The second processing cluster generates a response to the snoop request. If the second processing cluster owns the requested memory location, the second processing cluster modifies ownership status of the requested memory location.
    Type: Application
    Filed: March 25, 2002
    Publication date: February 13, 2003
    Inventors: Dave Hass, Frederick Gruner, Nazar Zaidi, Ramesh Panwar, Mark Vilas
  • Publication number: 20030009626
    Abstract: A multi-processor includes multiple processing clusters for performing assigned applications. Each cluster includes a set of compute engines, with each compute engine coupled to a set of cache memory. A compute engine includes a central processing unit and a coprocessor with a set of application engines. The central processing unit and coprocessor are coupled to the compute engine's associated cache memory. The sets of cache memory within a cluster are also coupled to one another.
    Type: Application
    Filed: July 6, 2001
    Publication date: January 9, 2003
    Inventors: Fred Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Nazar Zaidi
  • Publication number: 20030009629
    Abstract: A multi-processor includes multiple processing clusters for performing assigned applications. Each cluster includes a set of compute engines, with each compute engine coupled to a set of cache memory. A compute engine includes a central processing unit and a coprocessor with a set of application engines. The central processing unit and coprocessor are coupled to the compute engine's associated cache memory. The sets of cache memory within a cluster are also coupled to one another.
    Type: Application
    Filed: March 25, 2002
    Publication date: January 9, 2003
    Inventors: Fred Gruner, David Hass, Ramesh Panwar, Nazar Zaidi
  • Publication number: 20030009625
    Abstract: A multi-processor includes multiple processing clusters for performing assigned applications. Each cluster includes a set of compute engines, with each compute engine coupled to a set of cache memory. A compute engine includes a central processing unit and a coprocessor with a set of application engines. The central processing unit and coprocessor are coupled to the compute engine's associated cache memory. The sets of cache memory within a cluster are also coupled to one another.
    Type: Application
    Filed: March 25, 2002
    Publication date: January 9, 2003
    Inventors: Fred Gruner, David Hass, Ramesh Panwar, Nazar Zaidi
  • Patent number: 6256709
    Abstract: Two-way set associative data is stored in a cache memory array. An odd set data bank stores odd number sets of the two-way set associative data, where the two ways of each odd number set are aligned horizontally within the odd set data bank. An even set data bank stores even number sets of the two-way set associative data, where the two ways of each even number set are aligned horizontally within the even set data bank. Also, the odd set data bank is aligned horizontally with the even set data bank such that each odd number set is aligned horizontally with a next even number set. The horizontally aligned ways are interleaved for data path width reduction. Set and way selection circuits extract lines of data from the array. The array may be structurally implemented by single-ported RAM cells.
    Type: Grant
    Filed: June 26, 1997
    Date of Patent: July 3, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Sanjay Patel, Rajasekhar Cherabuddi, Ramesh Panwar, Adam R. Talcott
  • Patent number: 6240502
    Abstract: A method and apparatus for dynamically reconfiguring a processor involves placing the processor in a first configuration having a first number (m) of strands while the coded instructions comprise instructions from a number (m) threads. The instructions in each of the m threads are executed on one of the m strands using execution resources at least some of which are shared among the m strands. While the coded instructions comprise instructions from a number (n) threads, the processor is placed in a second configuration having a second number (n) of strands. The instruction are executed in each of the n strands using execution resources at least some of which are shared among the n strands.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: May 29, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Ricky C. Hetherington
  • Patent number: 6219778
    Abstract: A processor including at least one execution unit generating out-of-order results and out-of-order condition codes. Precise architectural state of the processor is maintained by providing a results buffer having a number of slots and providing a condition code buffer having the same number of slots as the results buffer, each slot in the condition code buffer in one-to-one correspondence with a slot in the results buffer. Each live instruction in the processor is assigned a slot in the results buffer and the condition code buffer. Each speculative result produced by the execution units is stored in the assigned slot in the results buffer. When an instruction is retired, the results for that instruction are transferred to an architectural result register and any condition codes generated by that instruction are transferred to an architectural condition code register.
    Type: Grant
    Filed: December 20, 1999
    Date of Patent: April 17, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Arjun Prabhu
  • Patent number: 6219723
    Abstract: A system and method for thermal overload detection and protection for a processor which allows the processor to run at near maximum potential for the vast majority of its execution life. This is effectuated by the provision of circuitry to detect when the processor has exceeded its thermal thresholds and which then causes the processor to automatically reduce the clock rate to a fraction of the nominal clock while execution continues. When the thermal condition has stabilized, the clock may be raised in a stepwise fashion back to the nominal clock rate. Throughout the period of cycling the clock frequency from nominal to minimum and back, the program continues to be executed. Also provided is a queue activity rise time detector and method to control the rate of acceleration of a functional unit from idle to full throttle by a localized stall mechanism at the boundary of each stage in the pipe.
    Type: Grant
    Filed: March 23, 1999
    Date of Patent: April 17, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Ramesh Panwar
  • Patent number: 6154812
    Abstract: A data cache unit associated with a processor, the data cache unit including a first non-blocking cache receiving a data access from a device in the processor. A second non-blocking cache is coupled to the first non-blocking cache to service misses in the first non-blocking cache. A data return path coupled to the second non-blocking cache couples data returning from the second non-blocking cache to both the first non-blocking cache and the device generating the access to the first non-blocking cache.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: November 28, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Sharad Mehrotra, Ramesh Panwar
  • Patent number: 6148371
    Abstract: A data cache unit associated with a processor, the data cache unit including a first non-blocking cache receiving a data access from a device in the processor. A second non-blocking cache is coupled to the first non-blocking cache to service misses in the first non-blocking cache. A data return path coupled to the second non-blocking cache couples data returning from the second non-blocking cache to both the first non-blocking cache and the device generating the access to the first non-blocking cache.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: November 14, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Sharad Mehrotra, Ramesh Panwar
  • Patent number: 6144982
    Abstract: An apparatus for tracking pipeline resources of a processor involves fetching selected ones of the coded instructions and marking the fetched instructions with instruction metadata. The instruction metadata indicates a number of pipeline resources required by each instruction. The marked instructions are issued from the fetch unit and, using the instruction metadata, a count of a number of resources committed to issued instructions in the execution pipelines is maintained. When it is determined that the number of resources committed to issued instructions exceeds a preselected maximum and instructions are prevented from issuing from the fetch unit. As each instruction is retired, the instruction metadata is used to determine a number of resources released by retirement of the issued instruction.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: November 7, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Ramesh Panwar
  • Patent number: 6098165
    Abstract: In a processor that executes complex instructions which are expanded into microinstructions prior to execution, non-complex instruction execution is optimized by providing a by-passable helper logic for expanding complex instructions into microinstructions. Control logic parses a bundle of instructions into sub-bundles of non-complex instructions and sub-bundles of microinstructions. The control logic detects when a complex instruction is present in a bundle of instructions and directs the complex instruction to the helper logic for expansion into two or more microinstructions. Each non-complex instruction bypasses the helper logic, thereby improving the execution performance of the non-complex instruction.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: August 1, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Dani Y. Dakhil
  • Patent number: 6094719
    Abstract: In an out-of-order processor having single-precision floating-point registers aliased into double-precision floating-point registers, a single-precision floating-point arithmetic operation having four possible register dependencies is converted into two microinstructions which are processed normally within the processor. The first microinstruction is coded to perform the arithmetic operation specified by the single-precision instruction using the first and second source registers specified and storing the result in a phantom register. The second microinstruction is coded for merging the contents of the phantom register and the destination register specified. Each microinstruction has at most two possible register dependencies, thereby reducing the total number of register dependencies which the processor is required to track.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: July 25, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Ramesh Panwar
  • Patent number: 6085305
    Abstract: A processor including at least one execution unit generating out-of-order results and out-of-order condition codes. Precise architectural state of the processor is maintained by providing a results buffer having a number of slots and providing a condition code buffer having the same number of slots as the results buffer, each slot in the condition code buffer in one-to-one correspondence with a slot in the results buffer. Each live instruction in the processor is assigned a slot in the results buffer and the condition code buffer. Each speculative result produced by the execution units is stored in the assigned slot in the results buffer. When an instruction is retired, the results for that instruction are transferred to an architectural result register and any condition codes generated by that instruction are transferred to an architectural condition code register.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: July 4, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Arjun Prabhu