Patents by Inventor Jeffrey G. Libby
Jeffrey G. Libby 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: 10571988Abstract: A dispatch module implemented in at least one of a memory or a processing device is operatively coupled to a first processing module and a second processing module. The first processing module has a priority higher than a priority of the second processing module. The dispatch module includes a workload counter associated with the first processing module to provide an indication of a workload at the first processing module. The dispatch module initiates a clock signal at the second processing module only if the indication of the workload at the first processing module satisfies a criterion. The dispatch module sends a data unit to the second processing module for processing only if the indication of the workload at the first processing module satisfies a criterion.Type: GrantFiled: January 10, 2018Date of Patent: February 25, 2020Assignee: Juniper Networks, Inc.Inventors: Vaishali Kulkarni, Jeffrey G. Libby, David J. Ofelt
-
Patent number: 9880603Abstract: A dispatch module implemented in at least one of a memory or a processing device is operatively coupled to a first processing module and a second processing module. The first processing module has a priority higher than a priority of the second processing module. The dispatch module includes a workload counter associated with the first processing module to provide an indication of a workload at the first processing module. The dispatch module initiates a clock signal at the second processing module only if the indication of the workload at the first processing module satisfies a criterion. The dispatch module sends a data unit to the second processing module for processing only if the indication of the workload at the first processing module satisfies a criterion.Type: GrantFiled: March 13, 2013Date of Patent: January 30, 2018Assignee: Juniper Networks, Inc.Inventors: Vaishali Kulkarni, Jeffrey G. Libby, David J. Ofelt
-
Patent number: 9753524Abstract: A dispatch module implemented in at least one of a memory or a processing device is operatively coupled to multiple processing modules, each having a first clock configuration and a second clock configuration. The dispatch module, at a first time, changes a first processing module included in the multiple processing modules from a first clock configuration to a second clock configuration. The dispatch module prohibits, at a second time within a predetermined time period and after the first time, a second processing module included in the multiple processing modules from changing from the first clock configuration to the second clock configuration if an indicator associated with a number of changes of the multiple processing modules between a first clock configuration and a second clock configuration within the predetermined time period and prior to the second time satisfies a criterion.Type: GrantFiled: September 23, 2016Date of Patent: September 5, 2017Assignee: Juniper Networks, Inc.Inventors: Vaishali Kulkarni, Jeffrey G. Libby, Mihir Wagh
-
Patent number: 9477257Abstract: A dispatch module implemented in at least one of a memory or a processing device is operatively coupled to multiple processing modules, each having a first clock configuration and a second clock configuration. The dispatch module, at a first time, changes a first processing module included in the multiple processing modules from a first clock configuration to a second clock configuration. The dispatch module prohibits, at a second time within a predetermined time period and after the first time, a second processing module included in the multiple processing modules from changing from the first clock configuration to the second clock configuration if an indicator associated with a number of changes of the multiple processing modules between a first clock configuration and a second clock configuration within the predetermined time period and prior to the second time satisfies a criterion.Type: GrantFiled: March 13, 2013Date of Patent: October 25, 2016Assignee: JUNIPER NETWORKS, INC.Inventors: Vaishali Kulkarni, Jeffrey G. Libby, Mihir Wagh
-
Patent number: 9116814Abstract: A data read/write system includes a system clock, a single port memory, a cache memory that is separate from the single port memory, and a controller coupled to an instruction pipeline. The controller receives, via the instruction pipeline, first data to write to an address of the single port memory, and further receives, via the instruction pipeline, a request to read second data from the single port memory. The controller stores the first data in the cache memory, and retrieves the second data from either the cache memory or the single port memory during one or more first clock cycles of the system clock. The controller copies the first data from the cache memory and stores the first data at the address in the single port memory during a second clock cycle of the system clock that is different than the one or more first clock cycles.Type: GrantFiled: November 27, 2013Date of Patent: August 25, 2015Assignee: Juniper Networks, Inc.Inventors: Jianhui Huang, Sharada Yeluri, Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, Paul Coelho
-
Patent number: 9098262Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: GrantFiled: October 31, 2014Date of Patent: August 4, 2015Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Pradeep S. Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
-
Patent number: 9026424Abstract: A device may emulate target instructions by executing a first set of microinstructions, and may store a base address of a table that includes a microinstruction provided in a second set of microinstructions for emulating the target instructions. The device may also locate the microinstruction based on the stored base address, and emulate one of the target instructions by executing the microinstruction.Type: GrantFiled: October 27, 2008Date of Patent: May 5, 2015Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Sharada Yeluri, Jianhui Huang, John Keen, Rajesh Nair
-
Publication number: 20150058599Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: ApplicationFiled: October 31, 2014Publication date: February 26, 2015Inventors: Jean-Marc FRAILONG, Pradeep S. SINDHU, Jeffrey G. LIBBY, Jian Hui HUANG, Rajesh NAIR, John KEEN
-
Patent number: 8954409Abstract: In general, techniques of the present disclosure relate to synchronizing concurrent access to multiple portions of a data structure. In one example, a method includes, sequentially selecting a plurality of requests from a request queue, wherein at least one of the requests specifies a plurality of requested synchronization objects for corresponding candidate portions of a data structure to which to apply an operation associated with a data element. The method also includes querying one or more sets of identifiers to determine whether one or more of the requested synchronizations objects specified by the selected request are acquirable. The method also includes acquiring each of the requested synchronization objects that are acquirable. The method includes, responsive to acquiring all of the one or more requested synchronization objects, selecting a subset of the candidate portions of the data structure and applying the operation only to the selected subset of the candidate portions.Type: GrantFiled: September 22, 2011Date of Patent: February 10, 2015Assignee: Juniper Networks, Inc.Inventors: Oren Kerem, Jeffrey G. Libby, Deepak Goel, David J. Ofelt, Anurag P. Gupta
-
Patent number: 8880856Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: GrantFiled: June 17, 2009Date of Patent: November 4, 2014Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Pradeep Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
-
Patent number: 8843805Abstract: In general, techniques are described for efficiently and transparently partitioning a physical address space of a DRAM part lacking dedicated error protection circuitry to supply addressable error protection bytes for use in detecting and/or correcting bit errors elsewhere present in the physical address space. In one example, a network device includes a DRAM and a memory controller that receives a write command to write data to the DRAM. An address translation module of the memory controller logically partitions the DRAM to define a plurality of physically addressable sections that includes an error protection section for storing error protection bits and one or more data storage sections. The memory controller defines a contiguous logical address space representing the data storage sections. A DRAM controller of the network device communicates with the DRAM to store the data to one of the data storage sections in accordance with the contiguous logical address space.Type: GrantFiled: March 16, 2012Date of Patent: September 23, 2014Assignee: Juniper Networks, Inc.Inventors: Deepak Goel, Jeffrey G. Libby, Anurag P. Gupta, Abhijit Ghosh, David J. Ofelt
-
Patent number: 8799909Abstract: Systems and methods of various embodiments provide mechanisms to support synchronous and asynchronous transactions. Distinct encodings allow an instruction to choose whether to perform any operation synchronously or asynchronously. Separate synchronous and asynchronous result registers hold the data returned in the most recent replies received for synchronous and asynchronous transaction requests, respectively. A status bit indicates whether an asynchronous transaction request is currently outstanding.Type: GrantFiled: December 23, 2008Date of Patent: August 5, 2014Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri, Anurag P. Gupta, John Keen
-
Patent number: 8627007Abstract: A data read/write system includes a system clock, a single port memory, a cache memory that is separate from the single port memory, and a controller coupled to an instruction pipeline. The controller receives, via the instruction pipeline, first data to write to an address of the single port memory, and further receives, via the instruction pipeline, a request to read second data from the single port memory. The controller stores the first data in the cache memory, and retrieves the second data from either the cache memory or the single port memory during one or more first clock cycles of the system clock. The controller copies the first data from the cache memory and stores the first data at the address in the single port memory during a second clock cycle of the system clock that is different than the one or more first clock cycles.Type: GrantFiled: October 28, 2009Date of Patent: January 7, 2014Assignee: Juniper Networks, Inc.Inventors: Jianhui Huang, Sharada Yeluri, Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, Paul Coelho
-
Patent number: 8520675Abstract: Methods and systems consistent with the present invention provide efficient packet replication in a router in order to multicast a stream of data. Packets are replicated and processed in a multithreaded environment. Embodiments consistent with the present invention implement a two-stage process for packet replication. The first stage thread will recirculate the packet to multiple second-stage threads. These second-stage threads will then create one or more outgoing copies of the packet. In this way, the copies are handled by multiple threads running in parallel.Type: GrantFiled: December 23, 2008Date of Patent: August 27, 2013Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, John Keen, Rajesh Nair, Avanindra Godbole, Sharada Yeluri
-
Patent number: 8498306Abstract: Data units received by a network device may be classified into traffic flow classes in which the determined traffic flow class for a data unit may be dynamically refined as the data unit is processed by the network device. A dispatch component of the network device may receive data units associated with traffic flow classes. Parallel processing engines of the network device may receive the data units from the dispatch component and may generate, for a least one of the data units, a plurality of dynamically refined indications of the traffic flow class to which the data unit belongs. Additionally, an ordering component of the network device may include a plurality of re-order queues, where the at least one data unit successively progresses through at least two of the re-order queues in an order defined by the plurality of dynamically refined indications of the traffic flow class.Type: GrantFiled: March 10, 2011Date of Patent: July 30, 2013Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Sharada Yeluri, Anurag P Gupta, Jeffrey G Libby, Edwin Su
-
Patent number: 8332622Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: GrantFiled: December 12, 2011Date of Patent: December 11, 2012Assignee: Juniper Networks, Inc.Inventors: Anurag P Gupta, John Keen, Jeffrey G Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
-
Publication number: 20120263178Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.Type: ApplicationFiled: June 26, 2012Publication date: October 18, 2012Applicant: JUNIPER NETWORKS, INC.Inventors: Pradeep SINDHU, Debashis BASU, Pankaj PATEL, Raymond LIM, Avanindra GODBOLE, Tatao CHUANG, Chi-Chung K. CHEN, Jeffrey G. LIBBY, Dennis FERGUSON, Philippe LACROUTE, Gerald CHEUNG
-
Patent number: 8233496Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.Type: GrantFiled: March 12, 2010Date of Patent: July 31, 2012Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Debashis Basu, Pankaj Patel, Raymond Lim, Avanindra Godbole, Tatao Chuang, Chi-Chung K. Chen, Jeffrey G. Libby, Dennis Ferguson, Philippe Lacroute, Gerald Cheung
-
Publication number: 20120084534Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: ApplicationFiled: December 12, 2011Publication date: April 5, 2012Applicant: JUNIPER NETWORKS, INC.Inventors: Anurag P. GUPTA, John Keen, Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharida Yeluri
-
Patent number: 8085780Abstract: A packet header processing engine includes a level 2 (L2) header generation unit and a level 3 (L3) header generation unit. The L2 and L3 header generation units are implemented in parallel with one another. The L2 generation unit writes L2 header information to a first buffer and the L3 generation unit writes L3 header information to a second buffer. When the L2 and L3 header generation units finish processing a packet, the packet may be unloaded from the first and second buffer while a new packet is simultaneously loaded to the packet header processing engine.Type: GrantFiled: January 27, 2010Date of Patent: December 27, 2011Assignee: Juniper Networks, Inc.Inventors: Raymond M. Lim, Jeffrey G. Libby