Patents by Inventor Nils Gura

Nils Gura 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: 9742679
    Abstract: A hardware-implemented rate limiter is described. This implementation guarantees that messages containing a value v are not forwarded at a higher rate than a predefined threshold value r. More specifically, given a number of times x in a time interval y, which specifies a rate r defined by x/y, the rate limiter reports a violation by selectively setting an error value when v occurs more than x times during the time interval y. Moreover, the rate limiter may be able to keep track of multiple predefined threshold values for different rates. Furthermore, the rate limiter may keep track of 2b different values v, where b is the number of digits of the binary representation of v.
    Type: Grant
    Filed: May 12, 2015
    Date of Patent: August 22, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Hans Eberle, Hagen W. Peters, Nils Gura
  • Publication number: 20160337252
    Abstract: A hardware-implemented rate limiter is described. This implementation guarantees that messages containing a value v are not forwarded at a higher rate than a predefined threshold value r. More specifically, given a number of times x in a time interval y, which specifies a rate r defined by x/y, the rate limiter reports a violation by selectively setting an error value when v occurs more than x times during the time interval y. Moreover, the rate limiter may be able to keep track of multiple predefined threshold values for different rates. Furthermore, the rate limiter may keep track of 2b different values v, where b is the number of digits of the binary representation of v.
    Type: Application
    Filed: May 12, 2015
    Publication date: November 17, 2016
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Hans Eberle, Hagen W. Peters, Nils Gura
  • Patent number: 9384145
    Abstract: Hardware circuitry may evaluate minimal perfect hash functions mapping keys to addresses in lookup tables. The circuitry may include primary hash function sub-circuits that apply linear hash functions to input key values (using carry-free arithmetic) to produce primary hash values. Each sub-circuit may multiply bit vectors representing key values by a bit matrix and add a constant bit vector to the result. The circuitry may include a secondary hash function sub-circuit that generates secondary hash values by aggregating values associated with multiple primary hash values using signed, unsigned, or modular integer addition, or bit-wise XOR operations. Secondary hash values may be usable to access data values in the lookup table that are associated with particular input key values. The circuitry may determine the validity of input keys and may alter the configuration or contents of the lookup tables. The hash function sub-circuits may include programmable hash tables.
    Type: Grant
    Filed: August 26, 2013
    Date of Patent: July 5, 2016
    Assignee: Oracle International Corporation
    Inventors: Nils Gura, Guy L. Steele, Jr., David R. Chase
  • Patent number: 9244857
    Abstract: A lookup circuit evaluates hash functions that map keys to addresses in lookup tables. The circuit may include multiple hash function sub-circuits, each of which applies a respective hash function to an input key value, producing a hash value. Each hash function sub-circuit (which may include a programmable hash table) may multiply bit vectors representing key values by a bit matrix and add a constant bit vector to the results. Each hash value may be used to access a location in a lookup table in memory to obtain its contents (e.g., a key and associated data). The circuit may include a selection sub-circuit that selects the data of one of the identified locations as an output of the lookup circuit (e.g., one whose key matches the input key). The circuit may modify obtained data prior to its selection and may output a signal indicating the validity of input keys.
    Type: Grant
    Filed: October 31, 2013
    Date of Patent: January 26, 2016
    Assignee: Oracle International Corporation
    Inventors: Guy L. Steele, Jr., David R. Chase, Nils Gura
  • Patent number: 9223720
    Abstract: A lookup circuit evaluates hash functions that map keys to addresses in lookup tables. The circuit includes multiple hash function sub-circuits, each of which applies a respective hash function to an input key, producing a hash value. Candidate pairs of hash functions to be implemented by the hash function sub-circuits (or hash function bit matrices thereof) may be generated and tested for suitability in hashing a particular collection of keys. Each hash function bit matrix may be generated according to heuristics chosen to improve the likelihood that it will be suitable for use in a pair, and may be tested against previously generated hash function bit matrices contained in one or more pools (each of which may contain matrices generated using different heuristics) to identify suitable pairs. The hash function bit matrices may be represented in the pools in a tabulated form, which may reduce the suitability testing time.
    Type: Grant
    Filed: December 13, 2013
    Date of Patent: December 29, 2015
    Assignee: Oracle International Corporation
    Inventors: David R. Chase, Nils Gura, Guy L. Steele, Jr.
  • Publication number: 20150169467
    Abstract: A lookup circuit evaluates hash functions that map keys to addresses in lookup tables. The circuit includes multiple hash function sub-circuits, each of which applies a respective hash function to an input key, producing a hash value. Candidate pairs of hash functions to be implemented by the hash function sub-circuits (or hash function bit matrices thereof) may be generated and tested for suitability in hashing a particular collection of keys. Each hash function bit matrix may be generated according to heuristics chosen to improve the likelihood that it will be suitable for use in a pair, and may be tested against previously generated hash function bit matrices contained in one or more pools (each of which may contain matrices generated using different heuristics) to identify suitable pairs. The hash function bit matrices may be represented in the pools in a tabulated form, which may reduce the suitability testing time.
    Type: Application
    Filed: December 13, 2013
    Publication date: June 18, 2015
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: David R. Chase, Nils Gura, Guy L. Steele, JR.
  • Publication number: 20150121034
    Abstract: A lookup circuit evaluates hash functions that map keys to addresses in lookup tables. The circuit may include multiple hash function sub-circuits, each of which applies a respective hash function to an input key value, producing a hash value. Each hash function sub-circuit (which may include a programmable hash table) may multiply bit vectors representing key values by a bit matrix and add a constant bit vector to the results. Each hash value may be used to access a location in a lookup table in memory to obtain its contents (e.g., a key and associated data). The circuit may include a selection sub-circuit that selects the data of one of the identified locations as an output of the lookup circuit (e.g., one whose key matches the input key). The circuit may modify obtained data prior to its selection and may output a signal indicating the validity of input keys.
    Type: Application
    Filed: October 31, 2013
    Publication date: April 30, 2015
    Applicant: Oracle International Corporation
    Inventors: Guy L. Steele, JR., David R. Chase, Nils Gura
  • Publication number: 20150058595
    Abstract: Hardware circuitry may evaluate minimal perfect hash functions mapping keys to addresses in lookup tables. The circuitry may include primary hash function sub-circuits that apply linear hash functions to input key values (using carry-free arithmetic) to produce primary hash values. Each sub-circuit may multiply bit vectors representing key values by a bit matrix and add a constant bit vector to the result. The circuitry may include a secondary hash function sub-circuit that generates secondary hash values by aggregating values associated with multiple primary hash values using signed, unsigned, or modular integer addition, or bit-wise XOR operations. Secondary hash values may be usable to access data values in the lookup table that are associated with particular input key values. The circuitry may determine the validity of input keys and may alter the configuration or contents of the lookup tables. The hash function sub-circuits may include programmable hash tables.
    Type: Application
    Filed: August 26, 2013
    Publication date: February 26, 2015
    Applicant: Oracle International Corporation
    Inventors: Nils Gura, Guy L. Steele, JR., David R. Chase
  • Patent number: 8670454
    Abstract: Embodiments of a system that includes a switch and a buffer-management technique for storing signals in the system are described. In this system, data cells are dynamically assigned from a host buffer to at least a subset of switch-ingress buffers in the switch based at least in part on the occupancy of the switch-ingress buffers. This buffer-management technique may reduce the number of switch-ingress buffers relative to the number of input and output ports to the switch, which in turn may overcome the limitations posed by the amount of memory available on chips, thereby facilitating large switches.
    Type: Grant
    Filed: March 26, 2009
    Date of Patent: March 11, 2014
    Assignee: Oracle America, Inc.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura
  • Patent number: 8583902
    Abstract: Techniques are disclosed relating to a processor including instruction support for performing a Montgomery multiplication. The processor may issue, for execution, programmer-selectable instruction from a defined instruction set architecture (ISA). The processor may include an instruction execution unit configured to receive instructions including a first instance of a Montgomery-multiply instruction defined within the ISA. The Montgomery-multiply instruction is executable by the processor to operate on at least operands A, B, and N residing in respective portions of a general-purpose register file of the processor, where at least one of operands A, B, N spans at least two registers of general-purpose register file. The instruction execution unit is configured to calculate P mod N in response to receiving the first instance of the Montgomery-multiply instruction, where P is the product of at least operand A, operand B, and R^?1.
    Type: Grant
    Filed: May 7, 2010
    Date of Patent: November 12, 2013
    Assignee: Oracle International Corporation
    Inventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence Spracklen, Nils Gura
  • Patent number: 8533473
    Abstract: A secure end to end connection is established between a remote device having a wireless link and a control/monitoring location for the remote device through a gateway. During the establishing of the secure connection, a compressed message representation is used to communicate between the gateway and the remote device over the wireless link and an uncompressed message representation is used to communicate between the gateway and the first location. The establishment of the secure connection utilizes public-key algorithms.
    Type: Grant
    Filed: March 4, 2005
    Date of Patent: September 10, 2013
    Assignee: Oracle America, Inc.
    Inventors: Vipul Gupta, Nils Gura, Arvinderpal S. Wander
  • Patent number: 8532102
    Abstract: A method for transmitting packets, including forwarding a first set of upstream packets and a first set of local packets by inserting at least one of the first set of local packets between subsets of the first set of upstream packets according to a first insertion rate; calculating a second insertion rate after forwarding a predetermined number of upstream packets generated by a single upstream source, by dividing a cardinality of the first set of upstream packets by a greatest common divisor of the predetermined number and the cardinality of the first set of upstream packets; and forwarding a second set of upstream packets and a second set of local packets from the local switch to the downstream switch by inserting at least one of the second set of local packets between subsets of the second set of upstream packets according to the second insertion rate.
    Type: Grant
    Filed: March 7, 2012
    Date of Patent: September 10, 2013
    Assignee: Oracle America, Inc.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
  • Patent number: 8483216
    Abstract: A method for transmitting packets, including forwarding a first set of upstream packets and a first set of local packets by inserting at least one of the first set of local packets between subsets of the first set of upstream packets according to a first insertion rate; calculating a second insertion rate after forwarding a predetermined number of upstream packets generated by a single upstream source, by dividing a cardinality of the first set of upstream packets by a greatest common divisor of the predetermined number and the cardinality of the first set of upstream packets; and forwarding a second set of upstream packets and a second set of local packets from the local switch to the downstream switch by inserting at least one of the second set of local packets between subsets of the second set of upstream packets according to the second insertion rate.
    Type: Grant
    Filed: March 7, 2012
    Date of Patent: July 9, 2013
    Assignee: Oracle America, Inc.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
  • Publication number: 20130094515
    Abstract: Systems, apparatus, and methods for removing duplicate data packets from a traffic flow of captured data packets transmitted via a communication network may generate a secure hash signature for a captured data packet included in a traffic flow of captured data packets. The secure hash signature may be transmitted to a memory controller. The memory controller may compare the received secure hash signature with one or more previously generated secure hash signatures stored in a memory and transmit a control signal to a switch responsively to the comparison The switch may then transmit, or not transmit, the captured data packet to an egress port for eventual transmission to an external device responsively to the received control signal.
    Type: Application
    Filed: August 31, 2012
    Publication date: April 18, 2013
    Inventors: Nils Gura, Lalit Chaudhari, Peter Vinsel, David Kucharczyk
  • Publication number: 20120177036
    Abstract: A method for transmitting packets, including forwarding a first set of upstream packets and a first set of local packets by inserting at least one of the first set of local packets between subsets of the first set of upstream packets according to a first insertion rate; calculating a second insertion rate after forwarding a predetermined number of upstream packets generated by a single upstream source, by dividing a cardinality of the first set of upstream packets by a greatest common divisor of the predetermined number and the cardinality of the first set of upstream packets; and forwarding a second set of upstream packets and a second set of local packets from the local switch to the downstream switch by inserting at least one of the second set of local packets between subsets of the second set of upstream packets according to the second insertion rate.
    Type: Application
    Filed: March 7, 2012
    Publication date: July 12, 2012
    Applicant: ORACLE AMERICA, INC.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
  • Publication number: 20120170577
    Abstract: A method for transmitting packets, including forwarding a first set of upstream packets and a first set of local packets by inserting at least one of the first set of local packets between subsets of the first set of upstream packets according to a first insertion rate; calculating a second insertion rate after forwarding a predetermined number of upstream packets generated by a single upstream source, by dividing a cardinality of the first set of upstream packets by a greatest common divisor of the predetermined number and the cardinality of the first set of upstream packets; and forwarding a second set of upstream packets and a second set of local packets from the local switch to the downstream switch by inserting at least one of the second set of local packets between subsets of the second set of upstream packets according to the second insertion rate.
    Type: Application
    Filed: March 7, 2012
    Publication date: July 5, 2012
    Applicant: ORACLE AMERICA, INC.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
  • Patent number: 8213606
    Abstract: In response to executing an arithmetic instruction, a first number is multiplied by a second number, and a partial result from a previously executed single arithmetic instruction is fed back from a first carry save adder structure generating high order bits of the current arithmetic instruction to a second carry save adder tree structure being utilized to generate low order bits of the current arithmetic instruction to generate a result that represents the first number multiplied by the second number summed with the high order bits from the previously executed arithmetic instruction. Execution of the arithmetic instruction may instead generate a result that represents the first number multiplied by the second number summed with the partial result and also summed with a third number, the third number being fed to the carry save adder tree structure.
    Type: Grant
    Filed: February 27, 2004
    Date of Patent: July 3, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sheueling Chang Shantz, Leonard Rarick, Lawrence Spracklen, Hans Eberle, Nils Gura
  • Patent number: 8194855
    Abstract: In response to executing a single arithmetic instruction, a first number is multiplied by a second number, and a partial result from a previously executed single arithmetic instruction is added implicitly to generate a result that represents the first number multiplied by the second number summed with the partial result from a previously executed single arithmetic instruction. The high order portion of the generated result is saved in an extended carry register as a next partial result for use with execution of a subsequent single arithmetic instruction. Execution of a single arithmetic instruction may instead generate a result that represents the first number multiplied by the second number summed with the partial result and also summed with a third number.
    Type: Grant
    Filed: July 24, 2003
    Date of Patent: June 5, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sheueling Chang Shantz, Hans Eberle, Nils Gura, Lawrence Spracklen, Leonard Rarick
  • Patent number: 8189578
    Abstract: A method for transmitting packets, including forwarding a first set of upstream packets and a first set of local packets by inserting at least one of the first set of local packets between subsets of the first set of upstream packets according to a first insertion rate; calculating a second insertion rate after forwarding a predetermined number of upstream packets generated by a single upstream source, by dividing a cardinality of the first set of upstream packets by a greatest common divisor of the predetermined number and the cardinality of the first set of upstream packets; and forwarding a second set of upstream packets and a second set of local packets from the local switch to the downstream switch by inserting at least one of the second set of local packets between subsets of the second set of upstream packets according to the second insertion rate.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: May 29, 2012
    Assignee: Oracle America, Inc.
    Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
  • Patent number: 8184629
    Abstract: Multiple multicast acknowledgements can be merged into a single multicast acknowledgement, thus reducing traffic and reducing logic complexity. An intermediate node that receives multiple multicast acknowledgements merges the multiple acknowledgements into a single acknowledgement, and then supplies the single merged acknowledgment to the multicast source. Encoding of the single merged acknowledgement conveys to the source which of the multicast targets successfully received (or which failed to receive) the multicast information.
    Type: Grant
    Filed: January 10, 2006
    Date of Patent: May 22, 2012
    Assignee: Oracle America, Inc.
    Inventors: Hans Eberle, Nils Gura