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: 10571988
    Abstract: 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: Grant
    Filed: January 10, 2018
    Date of Patent: February 25, 2020
    Assignee: Juniper Networks, Inc.
    Inventors: Vaishali Kulkarni, Jeffrey G. Libby, David J. Ofelt
  • Patent number: 9880603
    Abstract: 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: Grant
    Filed: March 13, 2013
    Date of Patent: January 30, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Vaishali Kulkarni, Jeffrey G. Libby, David J. Ofelt
  • Patent number: 9753524
    Abstract: 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: Grant
    Filed: September 23, 2016
    Date of Patent: September 5, 2017
    Assignee: Juniper Networks, Inc.
    Inventors: Vaishali Kulkarni, Jeffrey G. Libby, Mihir Wagh
  • Patent number: 9477257
    Abstract: 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: Grant
    Filed: March 13, 2013
    Date of Patent: October 25, 2016
    Assignee: JUNIPER NETWORKS, INC.
    Inventors: Vaishali Kulkarni, Jeffrey G. Libby, Mihir Wagh
  • Patent number: 9116814
    Abstract: 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: Grant
    Filed: November 27, 2013
    Date of Patent: August 25, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Jianhui Huang, Sharada Yeluri, Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, Paul Coelho
  • Patent number: 9098262
    Abstract: 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: Grant
    Filed: October 31, 2014
    Date of Patent: August 4, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Pradeep S. Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
  • Patent number: 9026424
    Abstract: 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: Grant
    Filed: October 27, 2008
    Date of Patent: May 5, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Sharada Yeluri, Jianhui Huang, John Keen, Rajesh Nair
  • Publication number: 20150058599
    Abstract: 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: Application
    Filed: October 31, 2014
    Publication date: February 26, 2015
    Inventors: Jean-Marc FRAILONG, Pradeep S. SINDHU, Jeffrey G. LIBBY, Jian Hui HUANG, Rajesh NAIR, John KEEN
  • Patent number: 8954409
    Abstract: 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: Grant
    Filed: September 22, 2011
    Date of Patent: February 10, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Oren Kerem, Jeffrey G. Libby, Deepak Goel, David J. Ofelt, Anurag P. Gupta
  • Patent number: 8880856
    Abstract: 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: Grant
    Filed: June 17, 2009
    Date of Patent: November 4, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Pradeep Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
  • Patent number: 8843805
    Abstract: 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: Grant
    Filed: March 16, 2012
    Date of Patent: September 23, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Deepak Goel, Jeffrey G. Libby, Anurag P. Gupta, Abhijit Ghosh, David J. Ofelt
  • Patent number: 8799909
    Abstract: 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: Grant
    Filed: December 23, 2008
    Date of Patent: August 5, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri, Anurag P. Gupta, John Keen
  • Patent number: 8627007
    Abstract: 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: Grant
    Filed: October 28, 2009
    Date of Patent: January 7, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Jianhui Huang, Sharada Yeluri, Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, Paul Coelho
  • Patent number: 8520675
    Abstract: 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: Grant
    Filed: December 23, 2008
    Date of Patent: August 27, 2013
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, John Keen, Rajesh Nair, Avanindra Godbole, Sharada Yeluri
  • Patent number: 8498306
    Abstract: 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: Grant
    Filed: March 10, 2011
    Date of Patent: July 30, 2013
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Sharada Yeluri, Anurag P Gupta, Jeffrey G Libby, Edwin Su
  • Patent number: 8332622
    Abstract: 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: Grant
    Filed: December 12, 2011
    Date of Patent: December 11, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Anurag P Gupta, John Keen, Jeffrey G Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
  • Publication number: 20120263178
    Abstract: 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: Application
    Filed: June 26, 2012
    Publication date: October 18, 2012
    Applicant: 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: 8233496
    Abstract: 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: Grant
    Filed: March 12, 2010
    Date of Patent: July 31, 2012
    Assignee: 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: 20120084534
    Abstract: 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: Application
    Filed: December 12, 2011
    Publication date: April 5, 2012
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Anurag P. GUPTA, John Keen, Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharida Yeluri
  • Patent number: 8085780
    Abstract: 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: Grant
    Filed: January 27, 2010
    Date of Patent: December 27, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond M. Lim, Jeffrey G. Libby