Concurrent validation of hardware units

US9804911B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9804911-B2
Application numberUS-201514722239-A
CountryUS
Kind codeB2
Filing dateMay 27, 2015
Priority dateMay 27, 2015
Publication dateOct 31, 2017
Grant dateOct 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method includes holding a definition of multiple software-implemented tests for testing one or more hardware units of an Integrated Circuit (IC), and of invocation conditions that specify whether the tests are permitted to run. The tests are applied to the hardware units at least partially in parallel, using a processor in the IC, by repeatedly tracking respective execution states of the tests and evaluating the invocation conditions, and invoking a test that currently does not run but is permitted to run in accordance with the invocation conditions.

First claim

Opening claim text (preview).

The invention claimed is: 1. An Integrated Circuit (IC), comprising: one or more hardware units on a chip; and at least one processor, on the chip, which is configured to hold a definition of-multiple software-implemented tests for testing the one or more hardware units, and of corresponding invocation conditions that specify whether the corresponding tests are permitted to run, and to apply the tests to the one or more hardware units for execution at least partially in parallel, by repeatedly tracking respective execution states of the tests and evaluating the corresponding invocation conditions of the tests, and invoking a test that currently does not run but is permitted to run in accordance with its corresponding invocation conditions, wherein at least one of the invocation conditions indicates that a corresponding test is permitted to run only if a specific interrupt occurred, a specific hardware signal was received, a certain value was written to a given memory location or a certain time-out has expired, wherein the at least one processor is configured to learn actual execution durations of one or more of the tests, and to adjust an invocation time of at least one of the tests based on the actual execution durations, so as to diversify a stress pattern applied to the hardware units. 2. The IC according to claim 1 , wherein one or more of the tests are partitioned into phases, and wherein the invocation conditions specify whether each of the phases is permitted to run. 3. The IC according to claim 1 , wherein the at least one processor is configured to run each test, or each predefined test phase, in its entirety when invoked. 4. The IC according to claim 1 , wherein the processor is configured to adjust the invocation time by inserting an artificial delay between invocations associated with the one of the tests. 5. The IC according to claim 1 , wherein at least one of the invocation conditions indicates that a corresponding test is permitted to run only if a specific interrupt occurred. 6. The IC according to claim 1 , wherein at least one of the invocation conditions indicates that a specific hardware signal was received. 7. The IC according to claim 1 , wherein at least one of the invocation conditions indicates that a certain value was written to a given memory location. 8. The IC according to claim 1 , wherein at least one of the invocation conditions indicates that a certain time-out has expired. 9. A method, comprising: holding in at least one processor on a chip of an Integrated Circuit (IC), a definition of multiple software-implemented tests for testing one or more hardware units on the chip of the Integrated Circuit (IC), and of corresponding invocation conditions that specify whether the corresponding tests are permitted to run; and applying the tests to the one or more hardware units for execution at least partially in parallel, by the at least one processor in the IC, by repeatedly tracking respective execution states of the tests and evaluating the corresponding invocation conditions of the tests, and invoking a test that currently does not run but is permitted to run in accordance with its corresponding invocation conditions, wherein at least one of the invocation conditions indicates that a corresponding test is permitted to run only if a specific interrupt occurred, a specific hardware signal was received, a certain value was written to a given memory location or a certain time-out has expired, wherein applying the tests comprises learning actual execution durations of one or more of the tests, and adjusting an invocation time of at least one of the tests based on the actual execution durations, so as to diversify a stress pattern applied to the hardware units. 10. The method according to claim 9 , wherein one or more of the tests are partitioned into phases, and wherein the invocation conditions specify whether each of the phases is permitted to run. 11. The method according to claim 9 , wherein executing the tests comprises running each test, or each predefined test phase, in its entirety when invoked. 12. The method according to claim 9 , wherein adjusting the invocation time comprises inserting an artificial delay between invocations associated with the one of the tests. 13. The method according to claim 9 , wherein at least one of the invocation conditions indicates that a corresponding test is permitted to run only if a specific interrupt occurred. 14. The method according to claim 9 , wherein at least one of the invocation conditions indicates that a specific hardware signal was received. 15. The method according to claim 9 , wherein at least one of the invocation conditions indicates that a certain value was written to a given memory location. 16. The method according to claim 9 , wherein at least one of the invocation conditions indicates that a certain time-out has expired. 17. A tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by one or more processors in an Integrated Circuit (IC) on a chip, cause the one or more processors to hold a definition of multiple software-implemented tests for testing one or more hardware units on the chip of the IC, and of corresponding invocation conditions that specify whether the corresponding tests are permitted to run, and to execute the tests at least partially in parallel, by repeatedly evaluating the corresponding invocation conditions of the tests, and invoking a test that currently does not run but is permitted to run in accordance with its corresponding invocation conditions, wherein at least one of the invocation conditions indicates that a corresponding test is permitted to run only if a specific interrupt occurred, a specific hardware signal was received, a certain value was written to a given memory location or a certain time-out has expired, wherein executing the tests comprises learning actual execution durations of one or more of the tests, and adjusting an invocation time of at least one of the tests based on the actual execution durations, so as to diversify a stress pattern applied to the hardware units.

Assignees

Inventors

Classifications

  • G06F11/263Primary

    Generation of test inputs, e.g. test vectors, patterns or sequences {; with adaptation of the tested hardware for testability with external testers} · CPC title

  • G06F11/079Primary

    Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36) · CPC title

  • Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06) · CPC title

  • in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function (testing or monitoring of automated control systems G05B23/02) · CPC title

  • in multi-processor systems, e.g. one processor becoming the primary tester (G06F11/2736 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9804911B2 cover?
A method includes holding a definition of multiple software-implemented tests for testing one or more hardware units of an Integrated Circuit (IC), and of invocation conditions that specify whether the tests are permitted to run. The tests are applied to the hardware units at least partially in parallel, using a processor in the IC, by repeatedly tracking respective execution states of the test…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/263. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).