# US 12,120,035 B2 · Latency detection using multiple clocks, including determination of whether latency exceeds a threshold

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

- Number: US 12,120,035 B2
- Document ID: US12120035B2
- Status: Granted
- Kind: B2
- Application number: 17/844,362
- Filed: 2022-06-20
- Published: 2023-12-21
- Granted: 2024-10-15
- Earliest claimed: 2022-06-20
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Mellanox Technologies, Ltd.
- Inventors: Liron Mula; Aviv Kfir; Miri Shtaif; Eran Gil Beracha
- Web page: https://patentgrep.com/patent/US12120035B2

## CPC

- H04L 47/56: implementing delay-aware scheduling
- H04L 43/0852: Delays
- H04L 43/16: Threshold monitoring
- H04L 47/625: for service slots or service orders
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A device, a switch, and a method of determining latency which exceeds a threshold are described. A task is enqueued and a time is determined based on two clocks. A time the task is dequeued is determined based on the two clocks. Based on the time of enqueue and the time of dequeue according to each of the two clocks, the task is identified as meeting or violating a service level agreement.

## Claims

### Claim 1

A method of determining latency which exceeds a latency threshold, the method comprising:
determining a first length of time, according to a first clock, between an enqueuing of a task and a dequeuing of the task;
determining a second length of time, according to a second clock, between the enqueuing of the task and the dequeuing of the task, wherein the second clock is modified by a random element after the second clock reaches a maximum value; and
based on the first length of time and the second length of time, determining a latency of the task exceeds the latency threshold.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the latency of the task exceeds the latency threshold comprises determining the task breaches a service level agreement.

### Claim 3 (depends on 1)

The method of claim 1, wherein the random element comprises modifying a time duration of a clock period of the second clock.

### Claim 4 (depends on 1)

The method of claim 1, wherein the random element comprises pausing the second clock a random amount of time after the second clock reaches the maximum value and before resetting the second clock to zero.

### Claim 5 (depends on 4)

The method of claim 4, wherein the random element comprises, after pausing the second clock the random amount of time after the second clock reaches the maximum value, modifying a time duration of a clock period of the second clock.

### Claim 6 (depends on 4)

The method of claim 4, wherein the random amount of time is based on one or more linear feedback shift registers.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining the latency of the task exceeds the latency threshold is further based on a third length of time according to a third clock, wherein the third clock is modified by a second random element after the third clock reaches a second maximum value.

### Claim 8 (depends on 1)

The method of claim 1, further comprising, in response to determining the latency of the task exceeds the latency threshold, flagging the task as associated with excessive latency by appending the task with one or more bits.

### Claim 9 (depends on 1)

The method of claim 1, further comprising determining a latency error has occurred in response to determining a predetermined number of tasks exceed the latency threshold.

### Claim 10 (depends on 1)

The method of claim 1, further comprising determining a plurality of tasks of a common type exceed the latency threshold.

### Claim 11

A device, comprising:
one or more circuits configured to perform a method, the method comprising:
determining a first length of time, according to a first clock, between an enqueuing of a task and a dequeuing of the task;
determining a second length of time, according to a second clock, between the enqueuing of the task and the dequeuing of the task, wherein the second clock is modified by a random element after the second clock reaches a maximum value; and
based on the first length of time and the second length of time, determining a latency of the task exceeds a latency threshold.

### Claim 12 (depends on 11)

The device of claim 11, wherein determining the latency of the task exceeds the latency threshold comprises determining the task breaches a service level agreement.

### Claim 13 (depends on 11)

The device of claim 11, wherein the random element comprises modifying a time duration of a clock period of the second clock.

### Claim 14 (depends on 13)

The device of claim 13, wherein the random element comprises pausing the second clock a random amount of time after the second clock reaches the maximum value and before resetting the second clock to zero.

### Claim 15 (depends on 14)

The device of claim 14, wherein the random amount of time is based on one or more linear feedback shift registers.

### Claim 16 (depends on 15)

The device of claim 15, wherein determining the latency of the task exceeds the latency threshold is further based on a third length of time according to a third clock, wherein the third clock is modified by a second random element after the third clock reaches a second maximum value.

### Claim 17 (depends on 11)

The device of claim 11, wherein the method further comprises, in response to determining the latency of the task exceeds the latency threshold, flagging the task as associated with excessive latency by appending the task with one or more bits.

### Claim 18 (depends on 11)

The device of claim 11, wherein the method further comprises determining a latency error has occurred in response to determining a predetermined number of tasks exceed the latency threshold.

### Claim 19 (depends on 11)

The device of claim 11, wherein the method further comprises determining a plurality of tasks of a common type exceed the latency threshold.

### Claim 20

A switch comprising:
one or more circuits configured to perform a method, the method comprising:
determining a first length of time, according to a first clock, between an enqueuing of a packet and a dequeuing of the packet;
determining a second length of time, according to a second clock, between the enqueuing of the packet and the dequeuing of the packet, wherein the second clock is modified by a random element after the second clock reaches a maximum value; and
based on the first length of time and the second length of time, determining a latency of the packet exceeds a latency threshold.
