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: 9742679Abstract: 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: GrantFiled: May 12, 2015Date of Patent: August 22, 2017Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Hans Eberle, Hagen W. Peters, Nils Gura
-
Publication number: 20160337252Abstract: 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: ApplicationFiled: May 12, 2015Publication date: November 17, 2016Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Hans Eberle, Hagen W. Peters, Nils Gura
-
Patent number: 9384145Abstract: 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: GrantFiled: August 26, 2013Date of Patent: July 5, 2016Assignee: Oracle International CorporationInventors: Nils Gura, Guy L. Steele, Jr., David R. Chase
-
Patent number: 9244857Abstract: 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: GrantFiled: October 31, 2013Date of Patent: January 26, 2016Assignee: Oracle International CorporationInventors: Guy L. Steele, Jr., David R. Chase, Nils Gura
-
Patent number: 9223720Abstract: 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: GrantFiled: December 13, 2013Date of Patent: December 29, 2015Assignee: Oracle International CorporationInventors: David R. Chase, Nils Gura, Guy L. Steele, Jr.
-
Publication number: 20150169467Abstract: 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: ApplicationFiled: December 13, 2013Publication date: June 18, 2015Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: David R. Chase, Nils Gura, Guy L. Steele, JR.
-
Publication number: 20150121034Abstract: 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: ApplicationFiled: October 31, 2013Publication date: April 30, 2015Applicant: Oracle International CorporationInventors: Guy L. Steele, JR., David R. Chase, Nils Gura
-
Publication number: 20150058595Abstract: 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: ApplicationFiled: August 26, 2013Publication date: February 26, 2015Applicant: Oracle International CorporationInventors: Nils Gura, Guy L. Steele, JR., David R. Chase
-
Patent number: 8670454Abstract: 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: GrantFiled: March 26, 2009Date of Patent: March 11, 2014Assignee: Oracle America, Inc.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura
-
Patent number: 8583902Abstract: 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: GrantFiled: May 7, 2010Date of Patent: November 12, 2013Assignee: Oracle International CorporationInventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence Spracklen, Nils Gura
-
Patent number: 8533473Abstract: 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: GrantFiled: March 4, 2005Date of Patent: September 10, 2013Assignee: Oracle America, Inc.Inventors: Vipul Gupta, Nils Gura, Arvinderpal S. Wander
-
Patent number: 8532102Abstract: 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: GrantFiled: March 7, 2012Date of Patent: September 10, 2013Assignee: Oracle America, Inc.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
-
Patent number: 8483216Abstract: 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: GrantFiled: March 7, 2012Date of Patent: July 9, 2013Assignee: Oracle America, Inc.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
-
Publication number: 20130094515Abstract: 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: ApplicationFiled: August 31, 2012Publication date: April 18, 2013Inventors: Nils Gura, Lalit Chaudhari, Peter Vinsel, David Kucharczyk
-
Publication number: 20120177036Abstract: 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: ApplicationFiled: March 7, 2012Publication date: July 12, 2012Applicant: ORACLE AMERICA, INC.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
-
Publication number: 20120170577Abstract: 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: ApplicationFiled: March 7, 2012Publication date: July 5, 2012Applicant: ORACLE AMERICA, INC.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
-
Patent number: 8213606Abstract: 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: GrantFiled: February 27, 2004Date of Patent: July 3, 2012Assignee: Oracle America, Inc.Inventors: Sheueling Chang Shantz, Leonard Rarick, Lawrence Spracklen, Hans Eberle, Nils Gura
-
Patent number: 8194855Abstract: 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: GrantFiled: July 24, 2003Date of Patent: June 5, 2012Assignee: Oracle America, Inc.Inventors: Sheueling Chang Shantz, Hans Eberle, Nils Gura, Lawrence Spracklen, Leonard Rarick
-
Patent number: 8189578Abstract: 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: GrantFiled: June 30, 2009Date of Patent: May 29, 2012Assignee: Oracle America, Inc.Inventors: Wladyslaw Olesinski, Hans Eberle, Nils Gura, Robert A. Dickson, Aron J. Silverton, Sumti Jairath, Peter J. Yakutis
-
Patent number: 8184629Abstract: 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: GrantFiled: January 10, 2006Date of Patent: May 22, 2012Assignee: Oracle America, Inc.Inventors: Hans Eberle, Nils Gura