Patents by Inventor Robert Hathaway
Robert Hathaway 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: 6920529Abstract: A coprocessor transfers data between media access controllers and a set of cache memory without accessing main memory. The coprocessor includes a reception media access controller that receives data from a network and a transmission media access controller that transmits data to a network. A streaming output data transfer engine in the coprocessor transfers data from the reception media access controller to cache memory. A streaming input data transfer engine in the coprocessor transfers data from cache memory to the transmission media access controller. The coprocessor's data transfer engines transfer data between cache memory and the media access controllers in a single data transfer operation—eliminating the need to store data in an intermediary memory location between the cache memory and data transfer engines.Type: GrantFiled: March 25, 2002Date of Patent: July 19, 2005Assignee: Juniper Networks, Inc.Inventors: Fred Gruner, Robert Hathaway, Ricardo Ramirez
-
Patent number: 6920542Abstract: 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: GrantFiled: March 25, 2002Date of Patent: July 19, 2005Assignee: Juniper Networks, Inc.Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
-
Patent number: 6901482Abstract: A system includes a plurality of processing clusters and a snoop controller. A first processing cluster in the plurality of processing clusters includes a first tier cache memory coupled to a second tier cache memory. The system employs a store-create operation to obtain sole ownership of a full cache line memory location for the first processing cluster, without retrieving the memory location from other processing clusters. The system issues the store-create operation for the memory location to the first tier cache. The first tier cache forwards a memory request including the store-create operation command to the second tier cache. The second tier cache determines whether the second tier cache has sole ownership of the memory location. If the second tier cache does not have sole ownership of the memory location, ownership of the memory location is relinquished by the other processing clusters with any ownership of the memory location.Type: GrantFiled: March 25, 2002Date of Patent: May 31, 2005Assignee: Juniper Networks, Inc.Inventors: Fred Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Nazar Zaidi
-
Patent number: 6901488Abstract: A compute engine includes a central processing unit coupled to a coprocessor. The coprocessor includes a sequencer coupled to a set of application engines for performing operations assigned to the compute engine. The sequencer is coupled to application engines through a set of data, enable, and control interfaces. An arbiter couples the sequencer and application engines to memory. Alternatively, the coprocessor may include multiple sequencers, with each sequencer being coupled to a different set of application engines. One set of application engines includes a media access controller for communicating with a network and a data transfer engine coupling the media access controller to the arbiter. In one implementation, 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: GrantFiled: March 25, 2002Date of Patent: May 31, 2005Assignee: Juniper Networks, Inc.Inventors: Fred Gruner, Robert Hathaway, Ricardo Ramirez
-
Patent number: 6898673Abstract: 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: GrantFiled: March 25, 2002Date of Patent: May 24, 2005Assignee: Juniper Networks, Inc.Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
-
Patent number: 6862669Abstract: An apparatus includes a compute engine coupled to a first tier cache memory including a data array. The first tier cache receives memory access requests from the compute engine. A second tier cache memory is coupled to the first tier cache to receive memory access requests for memory locations not owned by the first tier cache. To avoid stale data storage, the first tier cache does not load the data array with data returned by the second tier cache under the following condition—the second tier cache returns the data in response to a cacheable load operation from a memory location after the compute engine issues a subsequent store operation to the same memory location.Type: GrantFiled: March 25, 2002Date of Patent: March 1, 2005Assignee: Juniper Networks, Inc.Inventors: Fred Gruner, David Hass, Robert Hathaway
-
Patent number: 6839808Abstract: 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: GrantFiled: July 6, 2001Date of Patent: January 4, 2005Assignee: Juniper Networks, Inc.Inventors: Fred Gruner, David Hass, Robert Hathaway, Ramesh Penwar, Ricardo Ramirez, Nazar Zaidi
-
Publication number: 20040136778Abstract: A novel locking mechanism for mounting a radio to an antenna. The mounting face of a radio is secured to the mounting portion of an antenna. The mounting portion of the radio has a locking ring on which a plurality of radio locking tabs are located at equally spaced positions. The ring can be fixed to the radio, or in another embodiment, is still secured to the radio but can rotate independently. The mounting portion of the antenna has a corresponding number of equidistantly spaced tension springs, which have a plurality of spring fingers. To mount the radio to the antenna, the radio locking ring with radio locking tabs is twisted so that each antenna tension spring is deflected by a corresponding radio locking tab. The engagement of the radio locking ring to the antenna spring fingers secures the radio to the antenna. The deflection force also produces a friction force.Type: ApplicationFiled: December 10, 2003Publication date: July 15, 2004Applicant: ALCATELInventors: Dennis Rosenfeld, Robert Hathaway, Adrian T. Utrilla
-
Publication number: 20030126233Abstract: 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: ApplicationFiled: July 8, 2002Publication date: July 3, 2003Inventors: 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: 20030037205Abstract: A compute engine allocates data path bandwidth among different classes of packets. The compute engine identifies a packet's class and determines whether to transmit the packet based on the class' available bandwidth. If the class has available bandwidth, the compute engine grants the packet access to the data path. Otherwise, the compute engine only grants the packet access to the data path if none of the other packets waiting for data path access have a class with available bandwidth. After a packet is provided to the data path, the compute engine decrements a bandwidth allocation count for the packet's class. Once the bandwidth count for each class is exhausted, the compute engine sets each count to a respective starting value—reflecting the amount of bandwidth available to a class relative to the other classes.Type: ApplicationFiled: March 25, 2002Publication date: February 20, 2003Inventors: Robert Hathaway, Frederick Gruner, Mark Bryers
-
Publication number: 20030033479Abstract: 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: ApplicationFiled: March 25, 2002Publication date: February 13, 2003Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
-
Publication number: 20030033488Abstract: 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: ApplicationFiled: March 25, 2002Publication date: February 13, 2003Inventors: Frederick Gruner, Robert Hathaway, Ramesh Panwar, Elango Ganesan, Nazar Zaidi
-
Publication number: 20030014589Abstract: 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: ApplicationFiled: March 25, 2002Publication date: January 16, 2003Inventors: Fred Gruner, Robert Hathaway, Ricardo Ramirez
-
Publication number: 20030009626Abstract: 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: ApplicationFiled: July 6, 2001Publication date: January 9, 2003Inventors: Fred Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Nazar Zaidi
-
Publication number: 20030009627Abstract: 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: ApplicationFiled: March 25, 2002Publication date: January 9, 2003Inventors: Fred Gruner, Robert Hathaway, Ricardo Ramirez
-
Publication number: 20030009621Abstract: 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: ApplicationFiled: March 25, 2002Publication date: January 9, 2003Inventors: Fred Gruner, David Hass, Robert Hathaway