# US 11,907,088 B2 · Testing of hardware queue systems using on device test generation

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

- Number: US 11,907,088 B2
- Document ID: US11907088B2
- Status: Granted
- Kind: B2
- Application number: 17/551,482
- Filed: 2021-12-15
- Published: 2023-06-15
- Granted: 2024-02-20
- Earliest claimed: 2021-12-15
- Assignees: Synopsys, Inc.
- Applicants: Synopsys, Inc.
- Inventors: Hillel Mendelson; Tom Kolan; Hagai Hadad; Shay Aviv
- Web page: https://patentgrep.com/patent/US11907088B2

## CPC

- G06F 11/2236: {to test CPU or processors}
- G06F 11/263: Generation of test inputs, e.g. test vectors, patterns or sequences {; with adaptation of the tested hardware for testability with external testers}
- G06F 11/273: Tester hardware, i.e. output processing circuits {(G06F11/263 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An example system includes a processor that can receive a queue testing package. The processor can divide a hardware (HW) queue system to be tested into different types of queues. The processor can also generate a test using the different types of queues. The processor can further execute multiple instances of the generated test. The processor can also further compare results of the multiple instances of the test to detect a hardware fault in the hardware queue system.

## Claims

### Claim 1

A system, comprising a processor to:
divide a hardware queue system to be tested into different types of queues, wherein the hardware queue system comprises a plurality of queues and dividing the hardware queue system comprises dividing the plurality of queues into different types of queues;
generate a test of the plurality of queues, wherein the test is executed using the different types of queues;
execute multiple instances of the generated test using the different types of queues; and
compare results of the multiple instances of the test to detect a hardware fault in the hardware queue system.

### Claim 2 (depends on 1)

The system of claim 1, wherein the multiple instances of the generated test are executed in parallel on different parts of the hardware queue system.

### Claim 3 (depends on 1)

The system of claim 1, wherein the multiple instances of the generated test are executed in parallel on different identical parts of the hardware queue system.

### Claim 4 (depends on 1)

The system of claim 1, wherein the multiple instances of the generated test are executed in series on a same portion of the hardware queue system.

### Claim 5 (depends on 1)

The system of claim 1, wherein the multiple instances of the generated test are executed in parallel on different hardware queue systems of separate devices under test.

### Claim 6 (depends on 1)

The system of claim 1, wherein the queue types comprise an owned queue type.

### Claim 7 (depends on 1)

The system of claim 1, wherein the queue types comprise an unowned queue type.

### Claim 8 (depends on 1)

The system of claim 1, wherein the queue types comprise a reserved queue type.

### Claim 9 (depends on 1)

The system of claim 1, wherein the queue types comprise a shared queue type.

### Claim 10

A computer-implemented method, comprising:
dividing, via a processor, a hardware queue system to be tested into different types of queues, wherein the hardware queue system comprises a plurality of queues and dividing the hardware queue system comprises dividing the plurality of queues into different types of queues;
generating, via the processor, a test of the plurality of queues, wherein the test is executed using the different types of queues;
executing, via the processor, multiple instances of the generated test using the different types of queues; and
comparing, via the processor, results of the multiple instances of the test to detect a hardware fault in the hardware queue system.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, comprising executing, via the processor, the multiple instances of the generated test in parallel on different parts of the hardware queue system.

### Claim 12 (depends on 10)

The computer-implemented method of claim 10, comprising executing, via the processor, the multiple instances of the generated test in parallel on different identical parts of the hardware queue system.

### Claim 13 (depends on 10)

The computer-implemented method of claim 10, comprising executing, via the processor, the multiple instances of the generated test in series on a same portion of the hardware queue system.

### Claim 14 (depends on 10)

The computer-implemented method of claim 10, wherein dividing the hardware queue system into different types of queues comprises dividing the hardware queue system into an owned queue, an unowned queue, a reserved queue, and a shared queue.

### Claim 15 (depends on 10)

The computer-implemented method of claim 10, further comprising including an identifier corresponding to a particular thread in data to be enqueued in an executed test.

### Claim 16

A computer program product for testing hardware queue systems, the computer program product comprising a computer-readable storage medium having program code embodied therewith, wherein the computer-readable storage medium is not a transitory signal per se, the program code executable by a processor to cause the processor to:
divide a hardware queue system to be tested into different types of queues, wherein the hardware queue system comprises a plurality of queues and dividing the hardware queue system comprises dividing the plurality of queues into different types of queues;
generate a test of the plurality of queues, wherein the test is executed using the different types of queues;
execute multiple instances of the generated test using the different types of queues; and
compare results of the multiple instances of the test to detect a hardware fault in the hardware queue system.

### Claim 17 (depends on 16)

The computer program product of claim 16, further comprising program code executable by the processor to execute the multiple instances of the generated test in parallel on different identical parts of the hardware queue system.

### Claim 18 (depends on 16)

The computer program product of claim 16, further comprising program code executable by the processor to execute the multiple instances of the generated test in series on a same portion of the hardware queue system.

### Claim 19 (depends on 16)

The computer program product of claim 16, further comprising program code executable by the processor to include an identifier corresponding to a particular thread in data to be enqueued in an executed test.

### Claim 20 (depends on 16)

The computer program product of claim 16, further comprising program code executable by the processor to divide the hardware queue system into an owned queue, an unowned queue, a reserved queue, and a shared queue.
