Patents by Inventor Philip A. Thomas
Philip A. Thomas 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: 8717889Abstract: In some embodiments, an apparatus includes a module within a first stage of a switch fabric, a module within a second stage of the switch fabric, and a module within a third stage of the switch fabric. The module within the first stage is configured to send data to the module within the second stage. The module within the second stage is configured to send data to the module within the third stage. The module within the second stage is configured to send a first suspension indicator to the module within the third stage. The module within the third stage is configured to send a second suspension indicator to the module within the first stage in response to the first suspension indicator. The module within the first stage is configured to stop sending data to the module within the second stage in response to the second suspension indicator.Type: GrantFiled: August 24, 2012Date of Patent: May 6, 2014Assignee: Juniper Networks, Inc.Inventor: Philip A. Thomas
-
Patent number: 8713220Abstract: A network device includes a main storage memory and a queue handling component. The main storage memory includes multiple memory banks which store a plurality of packets for multiple output queues. The queue handling component controls write operations to the multiple memory banks and controls read operations from the multiple memory banks, where the read operations for at least one of the multiple output queues alternates sequentially between the each of the multiple memory banks, and where the read operations and the write operations occur during a same clock period on different ones of the multiple memory banks.Type: GrantFiled: December 31, 2012Date of Patent: April 29, 2014Assignee: Juniper Networks, Inc.Inventors: Anurag Agrawal, Philip A. Thomas
-
Patent number: 8713221Abstract: First in, first out (FIFO) queues may be used to transfer data between a producer clock domain and a number of consumer clock domains. In one implementation, a control component for the FIFO queues may include a number of counters, corresponding to each of the consumer clock domains, each of the counters maintaining a count value relating to an amount of data read by the corresponding consumer clock domain. The control component may additionally include a credit deduction component coupled to the count values of the counters, the credit deduction component determining whether any of the count values is above a threshold, and in response to the determination that any of the count values is above the threshold, reducing the count value of each of the counters and issuing a write pulse signal to the producer clock domain, the write pulse signal causing the producer clock domain to perform a write operation to the FIFO queues.Type: GrantFiled: December 1, 2010Date of Patent: April 29, 2014Assignee: Juniper Networks, Inc.Inventors: Anurag Agrawal, Philip A Thomas
-
Patent number: 8705500Abstract: A method includes installing an interface card having a first module of a switch fabric and a second module of the switch fabric, and an interface card having a third module of the switch fabric in a first chassis, within a first time period. The switch fabric is in a first configuration and is operable as a three-stage switch fabric after the first time period and before a second time period. The interface card having the third module is removed from the first chassis within the second time period. An interface card having a fourth module of the switch fabric and a fifth module of the switch fabric is installed in the first chassis within the second time period. The switch fabric is in a transitional configuration and is operable as a three-stage switch fabric after the second time period but before the third time period. The interface card having the third module is installed in a second chassis and the first chassis is operatively coupled with the second chassis within the third time period.Type: GrantFiled: November 5, 2009Date of Patent: April 22, 2014Assignee: Juniper Networks, Inc.Inventors: Gunes Aybay, Anurag Agrawal, Jean-Marc Frailong, Fuguang Shi, Philip A. Thomas
-
Patent number: 8687629Abstract: A network device includes a hybrid switch fabric configured for switching packets and circuits that includes a packet switching portion that distributes packets across a plurality of packet ports of fabric chips within the hybrid switch fabric and operates in accordance with packet switching behavior requirements, and a circuit switching portion for switching circuits, wherein the circuit switching portion of the hybrid switch fabric directly connects a single input of the hybrid switch fabric to a single output of the hybrid switch fabric via a pre-determined path through the fabric chips and operates in accordance with circuit switching behavior requirements. The packet switching portion and the circuit switching portion include one or more fabric chips, wherein the fabric chips each include a plurality of ports each dynamically configurable as one of a packet port for receiving and outputting packet-switched data and a circuit port for receiving and outputting circuit-switched data.Type: GrantFiled: February 22, 2010Date of Patent: April 1, 2014Assignee: Juniper Networks, Inc.Inventors: Kireeti Kompella, Philip A. Thomas, Anurag Agrawal
-
Patent number: 8625596Abstract: A multi-chassis network device may automatically detect whether cables connected between chassis devices are correctly inserted. The device may insert, into a first data stream output from a first port of the device, control information identifying the first port. The device may receive, from a second data stream received by the first port of the device, second control information identifying a second port, at another device connected to the device via a cable. The device may determine, based on the second control information, whether the connection of the first port to the second port, via the cable, is valid and cause, when the connection of the first port to the second port is determined to not be valid, the device to output an indication that the connection is not valid or to reconfigure the device to make the connection of the first port to the second port valid.Type: GrantFiled: December 30, 2010Date of Patent: January 7, 2014Assignee: Juniper Networks, Inc.Inventors: Philip A. Thomas, Anurag Agrawal
-
Patent number: 8612508Abstract: A device may include a compressor. The compressor may receive a first number of inputs, each of the inputs having a predetermined width. The compressor may also compute a one's complement sum of the first number of inputs to generate carry bits having the predetermined width and sum bits having the predetermined width, modify the carry bits by moving a most significant bit of the carry bits to a least significant bit position, and output the modified carry bits and the sum bits.Type: GrantFiled: October 6, 2008Date of Patent: December 17, 2013Assignee: Juniper Networks, Inc.Inventors: Anurag Agrawal, Philip A. Thomas
-
Patent number: 8364864Abstract: A network device includes a main storage memory and a queue handling component. The main storage memory includes multiple memory banks which store a plurality of packets for multiple output queues. The queue handling component controls write operations to the multiple memory banks and controls read operations from the multiple memory banks, where the read operations for at least one of the multiple output queues alternates sequentially between the each of the multiple memory banks, and where the read operations and the write operations occur during a same clock period on different ones of the multiple memory banks.Type: GrantFiled: March 17, 2010Date of Patent: January 29, 2013Assignee: Juniper Networks, Inc.Inventors: Anurag Agrawal, Philip A. Thomas
-
Publication number: 20120320742Abstract: In some embodiments, an apparatus includes a module within a first stage of a switch fabric, a module within a second stage of the switch fabric, and a module within a third stage of the switch fabric. The module within the first stage is configured to send data to the module within the second stage. The module within the second stage is configured to send data to the module within the third stage. The module within the second stage is configured to send a first suspension indicator to the module within the third stage. The module within the third stage is configured to send a second suspension indicator to the module within the first stage in response to the first suspension indicator. The module within the first stage is configured to stop sending data to the module within the second stage in response to the second suspension indicator.Type: ApplicationFiled: August 24, 2012Publication date: December 20, 2012Applicant: Juniper Networks, Inc.Inventor: Philip A. Thomas
-
Patent number: 8325749Abstract: In one embodiment, a method can include receiving at an egress schedule module a request to schedule transmission of a group of cells from an ingress queue through a switch fabric of a multi-stage switch. The ingress queue can be associated with an ingress stage of the multi-stage switch. The egress schedule module can be associated with an egress stage of the multi-stage switch. The method can also include determining, in response to the request, that an egress port at the egress stage of the multi-stage switch is available to transmit the group of cells from the multi-stage switch.Type: GrantFiled: December 24, 2008Date of Patent: December 4, 2012Assignee: Juniper Networks, Inc.Inventors: Sarin Thomas, Srihari Vegesna, Pradeep Sindhu, Chi-Chung Kenny Chen, Jean-Marc Frailong, David J. Ofelt, Philip A. Thomas, Chang-Hong Wu
-
Patent number: 8279863Abstract: In some embodiments, a method includes sending a signal to a first module associated with a stage of a switch fabric and receiving a signal from the first module a first amount of time after sending the signal to the first module. A signal is sent to a second module associated with the stage of the switch fabric and a signal is received from the second module a second amount of time after sending the signal to the second module. The second amount of time is less than the first amount of time. A cell of a first data packet is sent to the first module and a cell of a second data packet is sent to the second module a third amount of time after sending the cell of the first data packet. The third amount of time is associated with the difference between the first amount of time and the second amount of time.Type: GrantFiled: June 30, 2009Date of Patent: October 2, 2012Assignee: Juniper Networks, Inc.Inventors: Sathish Shenoy, Anurag Agrawal, Philip A. Thomas
-
Patent number: 8254255Abstract: In some embodiments, an apparatus includes a module within a first stage of a switch fabric, a module within a second stage of the switch fabric, and a module within a third stage of the switch fabric. The module within the first stage is configured to send data to the module within the second stage. The module within the second stage is configured to send data to the module within the third stage. The module within the second stage is configured to send a first suspension indicator to the module within the third stage. The module within the third stage is configured to send a second suspension indicator to the module within the first stage in response to the first suspension indicator. The module within the first stage is configured to stop sending data to the module within the second stage in response to the second suspension indicator.Type: GrantFiled: December 29, 2008Date of Patent: August 28, 2012Assignee: Juniper Networks, Inc.Inventor: Philip A. Thomas
-
Publication number: 20110228795Abstract: A network device includes a main storage memory and a queue handling component. The main storage memory includes multiple memory banks which store a plurality of packets for multiple output queues. The queue handling component controls write operations to the multiple memory banks and controls read operations from the multiple memory banks, where the read operations for at least one of the multiple output queues alternates sequentially between the each of the multiple memory banks, and where the read operations and the write operations occur during a same clock period on different ones of the multiple memory banks.Type: ApplicationFiled: March 17, 2010Publication date: September 22, 2011Applicant: Juniper Networks, Inc.Inventors: Anurag AGRAWAL, Philip A. Thomas
-
Patent number: 7966442Abstract: In general, this disclosure describes techniques of storing data in and retrieving data from a cache of a computing device. More specifically, techniques are described for utilizing a “perfect hash” function to implement an associative cache within a computing device. That is, the associative cache implements a fully associative map between a predetermined set of addresses and data values, employing only a single tag fetch comparison.Type: GrantFiled: May 17, 2010Date of Patent: June 21, 2011Assignee: Juniper Networks, Inc.Inventors: Ramesh Panwar, Philip A. Thomas
-
Patent number: 7877549Abstract: In general, this disclosure describes techniques of ensuring cache coherency in a multi-processor computing system. More specifically, a relaxed coherency mechanism is described that provides the appearance of strong coherency and consistency to correctly written software executing on the multi-processor system. The techniques, as described herein, combine software synchronization instructions with certain hardware-implemented instructions to ensure cache coherency.Type: GrantFiled: June 12, 2007Date of Patent: January 25, 2011Assignee: Juniper Networks, Inc.Inventors: Ramesh Panwar, Philip A. Thomas
-
Publication number: 20100329249Abstract: In some embodiments, a method includes sending a signal to a first module associated with a stage of a switch fabric and receiving a signal from the first module a first amount of time after sending the signal to the first module. A signal is sent to a second module associated with the stage of the switch fabric and a signal is received from the second module a second amount of time after sending the signal to the second module. The second amount of time is less than the first amount of time. A cell of a first data packet is sent to the first module and a cell of a second data packet is sent to the second module a third amount of time after sending the cell of the first data packet. The third amount of time is associated with the difference between the first amount of time and the second amount of time.Type: ApplicationFiled: June 30, 2009Publication date: December 30, 2010Inventors: Sathish Shenoy, Anurag Agrawal, Philip A. Thomas
-
Publication number: 20100165843Abstract: In some embodiments, an apparatus includes a module within a first stage of a switch fabric, a module within a second stage of the switch fabric, and a module within a third stage of the switch fabric. The module within the first stage is configured to send data to the module within the second stage. The module within the second stage is configured to send data to the module within the third stage. The module within the second stage is configured to send a first suspension indicator to the module within the third stage. The module within the third stage is configured to send a second suspension indicator to the module within the first stage in response to the first suspension indicator. The module within the first stage is configured to stop sending data to the module within the second stage in response to the second suspension indicator.Type: ApplicationFiled: December 29, 2008Publication date: July 1, 2010Inventor: Philip A. Thomas
-
Publication number: 20100165983Abstract: In some embodiments, an apparatus includes a first housing, a second housing and at least one cable. The first housing includes a first interface card of a switch fabric. The second housing includes a second interface card of the switch fabric and a third interface card of the switch fabric. The second interface card of the switch fabric is operatively and physically coupled to the third interface card of the switch fabric via a midplane. The second interface card defines a plane that is nonparallel to the a plane defined by the third interface card and a plane defined by the midplane. The plane defined by the third interface card is nonparallel to the plane defined by the second interface card and the plane defined by the midplane. The cable is configured to operatively couple the first interface card to the second interface card.Type: ApplicationFiled: December 29, 2008Publication date: July 1, 2010Inventors: Gunes Aybay, Jaya Bandyopadhyay, Jean-Marc Frailong, Pradeep Sindhu, Philip A. Thomas, Anjan Venkatramani
-
Publication number: 20100165984Abstract: In some embodiments, an apparatus includes a first housing, a second housing and at least one cable. The first housing includes a first interface card of a switch fabric. The second housing includes a second interface card of the switch fabric and a third interface card of the switch fabric. The second interface card of the switch fabric is operatively and physically coupled to the third interface card of the switch fabric via a midplane. The second interface card defines a plane that is nonparallel to the a plane defined by the third interface card and a plane defined by the midplane. The plane defined by the third interface card is nonparallel to the plane defined by the second interface card and the plane defined by the midplane. The cable is configured to operatively couple the first interface card to the second interface card.Type: ApplicationFiled: December 29, 2008Publication date: July 1, 2010Inventors: Gunes Aybay, Jaya Bandyopadhyay, Jean-Marc Frailong, Pradeep Sindhu, Philip A. Thomas, Anjan Venkatramani
-
Publication number: 20100158031Abstract: In one embodiment, a method can include receiving at an egress schedule module a request to schedule transmission of a group of cells from an ingress queue through a switch fabric of a multi-stage switch. The ingress queue can be associated with an ingress stage of the multi-stage switch. The egress schedule module can be associated with an egress stage of the multi-stage switch. The method can also include determining, in response to the request, that an egress port at the egress stage of the multi-stage switch is available to transmit the group of cells from the multi-stage switch.Type: ApplicationFiled: December 24, 2008Publication date: June 24, 2010Inventors: Sarin Thomas, Srihari Vegesna, Pradeep Sindhu, Chi-Chung Kenny Chen, Jean-Marc Frailong, David J. Ofelt, Philip A. Thomas, Chang-Hong Wu