# US 2018/0024812 A1 · Dynamic evaluation and adaption of hardware hash function

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024812 A1
- Document ID: US20180024812A1
- Status: Published application
- Kind: A1
- Application number: 15/722,429
- Filed: 2017-10-02
- Published: 2018-01-25
- Earliest claimed: 2012-11-28
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Sascha JUNGHANS; Matthias KLEIN; Thomas SCHLIPF
- Web page: https://patentgrep.com/patent/US20180024812A1

## CPC

- G06F 7/544: for evaluating functions by calculation {(G06F7/4824 takes precedence)}
- G06F 7/57: Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations {(G06F7/49, G06F7/491 take precedence)}
- G06F 9/3838: {Dependency mechanisms, e.g. register scoreboarding}
- G06F 12/1018: involving hashing techniques, e.g. inverted page tables
- G06F 16/9014: {hash tables}
- G06F 1/0328: {in which the phase increment is adjustable, e.g. by using an adder-accumulator}
- G06F 1/1615: {with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function (constructional details of portable telephones comprising a plurality of mechanically joined movable body parts H04M1/0206)}
- G06F 16/152: {using file content signatures, e.g. hash values}
- G06F 2212/401: Compressed data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Creating hash values based on bit values of an input vector. An apparatus includes a first and a second hash table, a first and second hash function generator adapted to configure a respective hash function for a creation of a first and second hash value based on the bit values of the input vector. The hash values are stored in the respective hash tables. An evaluation unit includes a comparison unit to compare a respective effectiveness of the first hash function and the second hash function, and an exchanging unit responsive to the comparison unit adapted to replace the first hash function by the second hash function.

## Claims

### Claim 1

An apparatus for creating hash values based on bit values of an input vector, the apparatus comprising:
a first hash table;
a first hash function generator configured to configure a first hash function for creation of a first hash value based on the bit values of the input vector, the first hash value to be stored in the first hash table; and
an evaluation unit responsive to the bit values of the input vector to test a second hash function, the evaluation unit comprising:
a second hash table with fewer entries than the first hash table;
a second hash function generator configured to configure the second hash function for creation of a second hash value based on the bit values of the input vector, the second hash value to be stored in the second hash table;
a comparison unit to compare an effectiveness of the first hash function with an effectiveness of the second hash function; and
an exchanging unit responsive to the comparison unit configured to replace the first hash function with the second hash function.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the input vector represents an address value readable by a processor.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein a subset of bits of the input vector is used as input values for a group of hash bit logic units of the first hash function and for a group of hash bit logic units of the second hash function, wherein each hash bit logic unit of the group of hash bit logic units of the first hash function is differently configurable, and wherein each hash bit logic unit of the group of hash bit logic units of the first hash function generates one bit (H(0), H(1), . . . , H(m−1)) of a hash function value generated by the first hash function.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the replacement of the first hash function with the second hash function is performed without delaying an input stream of the bit values of the input vector.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein a new hash value based on the second hash function is compared to entries of the second hash table.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein based on the replacement of the first hash function with the second hash function and until a condition is met, a matching of new hash values to at least one hash table entry of the first hash table is assumed.

### Claim 7

A computer program product for creating hash values based on bit values of an input vector, the computer program product comprising
a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
configuring a first hash function for creation of a first hash value based on the bit values of the input vector, the first hash value to be stored in a first hash table;
configuring a second hash function for creation of a second hash value based on the bit values of the input vector, the second hash value to be stored in a second hash table, the second hash table having fewer entries than the first hash table;
comparing an effectiveness of the first hash function with an effectiveness of the second hash function; and
based on the comparing, replacing the first hash function with the second hash function.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the input vector represents an address value readable by a processor.

### Claim 9 (depends on 7)

The computer program product of claim 7, wherein a subset of bits of the input vector is used as input values for a group of hash bit logic units of the first hash function and for a group of hash bit logic units of the second hash function, wherein each hash bit logic unit of the group of hash bit logic units of the first hash function is differently configurable, and wherein each hash bit logic unit of the group of hash bit logic units of the first hash function generates one bit (H(0), H(1), . . . , H(m−1)) of a hash function value generated by the first hash function.

### Claim 10 (depends on 7)

The computer program product of claim 7, wherein the replacement of the first hash function with the second hash function is performed without delaying an input stream of the bit values of the input vector.

### Claim 11 (depends on 7)

The computer program product of claim 7, wherein a new hash value based on the second hash function is compared to entries of the second hash table.

### Claim 12 (depends on 7)

The computer program product of claim 7, wherein based on the replacement of the first hash function with the second hash function and until a condition is met, a matching of new hash values to at least one hash table entry of the first hash table is assumed.

### Claim 13

A method of creating hash values based on bit values of an input vector, the method comprising:
configuring a first hash function for a creation of a first hash value based on the bit values of the input vector, the first hash value to be stored in a first hash table;
configuring a second hash function for a creation of a second hash value based on the bit values of the input vector, the second hash value to be stored in a second hash table, the second hash table having fewer entries than the first hash table;
comparing an effectiveness of the first hash function with an effectiveness of the second hash function; and
based on the comparing, replacing the first hash function with the second hash function.

### Claim 14 (depends on 13)

The method of claim 13, wherein the input vector represents an address value readable by a processor.

### Claim 15 (depends on 13)

The method of claim 13, wherein a subset of bits of the input vector is used as input values for a group of hash bit logic units of the first hash function and for a group of hash bit logic units of the second hash function, wherein each hash bit logic unit of the group of hash bit logic units of the first hash function is differently configurable, and wherein each hash bit logic unit of the group of hash bit logic units of the first hash function generates one bit (H(0), H(1), . . . , H(m−1)) of a hash function value generated by the first hash function.

### Claim 16 (depends on 13)

The method of claim 13, wherein the replacing the first hash function with the second hash function is performed without delaying an input stream of the bit values of the input vector.

### Claim 17 (depends on 13)

The method of claim 13, wherein a new hash value based on the second hash function is compared to entries of the second hash table.

### Claim 18 (depends on 13)

The method of claim 13, wherein based on the replacement of the first hash function with the second hash function and until a condition is met, a matching of new hash values to at least one hash table entry of the first hash table is assumed.
