Semiconductor device, control flow inspection method, non-transitory computer readable medium, and electronic device

US11860762B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11860762-B2
Application numberUS-201917618930-A
CountryUS
Kind codeB2
Filing dateJun 25, 2019
Priority dateJun 25, 2019
Publication dateJan 2, 2024
Grant dateJan 2, 2024

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 semiconductor device ( 100 ) includes: first storage means ( 110 ) storing, in advance, a plurality of pieces of execution order inspection information ( 111˜11 n ) used for inspection of an execution order of a plurality of code blocks in a predetermined program, second storage means ( 120 ), which is a cache for the first storage means, and prediction means ( 130 ) for predicting a storage area of the execution order inspection information based on prediction auxiliary information in a first code block of the plurality of code blocks and a control flow graph of the program, the storage area being a prefetch target to be prefetched from the first storage means to the second storage means.

First claim

Opening claim text (preview).

What is claimed is: 1. A semiconductor device comprising: first storage apparatus configured to store, in advance, a plurality of pieces of execution order inspection information used for inspection of an execution order of a plurality of code blocks in a predetermined program; second storage apparatus, which is a cache for the first storage apparatus; at least one memory configured to store instructions, and at least one processor configured to execute the instructions to: predict a storage area of the execution order inspection information based on prediction auxiliary information in a first code block of the plurality of code blocks and a control flow graph of the program, the storage area being a prefetch target to be prefetched from the first storage apparatus to the second storage apparatus, and the storage area being predicted as the prefetch target in accordance with execution of an inspection instruction of control flow integrity configured in the first code block; prefetch the predicted storage area from the first storage apparatus to the second storage apparatus; determine, at a time of execution of an inspection instruction of control flow integrity configured in a third code block that has been executed after the first code block, an access destination to be one of the first storage apparatus and the second storage apparatus based on the prediction auxiliary information in the third code block, and acquire first execution order inspection information that corresponds to the current execution order of the third code block from the determined access destination; and calculate second execution order inspection information that corresponds to the current execution order of the third code block and inspect whether it is possible to execute a code block executed after the third code block in accordance with the result of comparing the acquired first execution order inspection information with the calculated second execution order inspection information. 2. The semiconductor device according to claim 1 , wherein the at least one processor further configured to execute the instructions to specify a second code block that may be executed after the first code block based on the prediction auxiliary information and the control flow graph; specify a path of a control flow from the first code block to the second code block; and predict the storage area of the execution order inspection information that corresponds to the specified path as the prefetch target. 3. The semiconductor device according to claim 2 , wherein the at least one processor further configured to execute the instructions to specify a first position of the first code block in the program based on the control flow graph; and specify a second position included in a control flow from the first position as the second code block based on the result of the analysis of the prediction auxiliary information and the control flow graph. 4. The semiconductor device according to claim 2 , wherein the at least one processor further configured to execute the instructions to predict, when the execution frequency of the specified path is higher than those of other paths that may be executed by being branched off from the first code block, the storage area of the execution order inspection information that corresponds to the specified path as the prefetch target. 5. The semiconductor device according to claim 2 , wherein the at least one processor further configured to execute the instructions to predict, when the number of code blocks included in the specified path is equal to or larger than a predetermined value, the storage area of the execution order inspection information that corresponds to the specified path as the prefetch target. 6. The semiconductor device according to claim 2 , wherein the at least one processor further configured to execute the instructions to specify the path so as to include three or more code blocks. 7. The semiconductor device according to claim 1 , wherein the prediction auxiliary information includes at least one of an input value to the first code block, an internal state variable value at the time of execution of the first code block, and the priority of execution of paths that may be executed by being branched off from the first code block. 8. The semiconductor device according to claim 1 , wherein the execution order inspection information includes a hash value calculated based on a path of a control flow regarding two or more of the plurality of code blocks. 9. The semiconductor device according to claim 1 , wherein the semiconductor device includes a secure area and a non-secure area, the secure area includes the at least one memory, the first storage apparatus, the second storage apparatus, a prediction circuitry, an inspection circuitry, and the non-secure area includes the at least one processor, the prediction circuitry configured to predict, in accordance with the execution of the inspection instruction by the at least one processor, the prefetch target in accordance with a fourth code block in which the inspection instruction is set, prefetch the prefetch target, determine an access destination to be one of the first storage apparatus and the second storage apparatus based on the prediction auxiliary information in the fourth code block, and acquire third execution order inspection information that corresponds to the current execution order of the fourth code block from the determined access destination, and the inspection circuitry configured to inspect whether it is possible to execute a code block executed after the code block in which the inspection instruction is set in accordance with the execution of the inspection instruction by the at least one processor. 10. An electronic device comprising the semiconductor device according to claim 1 . 11. A control flow inspection method, wherein a computer comprising: first storage apparatus for storing, in advance, a plurality of pieces of execution order inspection information used for inspection of an execution order of a plurality of code blocks in a predetermined program; and second storage apparatus, which is a cache for the first storage apparatus, acquires prediction auxiliary information in a first code block of the plurality of code blocks and a control flow graph of the program; predicts a storage area of the execution order inspection information based on the prediction auxiliary information and the control flow graph, the storage area being a prefetch target to be prefetched from the first storage apparatus to the second storage apparatus, and the storage area being predicted as the prefetch target in accordance with execution of an inspection instruction of control flow integrity configured in the first code block; prefetches the predicted storage area from the first storage apparatus to the second storage apparatus; determines, at a time of execution of an inspection instruction of control flow integrity configured in a third code block that has been executed after the first code block, an access destination to be one of the first storage apparatus and the second storage apparatus based on the prediction auxiliary information in the third code block, and acquire first execution order inspection information that corresponds to the current execution order of the third code block from the determined access destination; and calculates second execution order inspection information that corresponds to the current execution order of the third code block and inspect whether it is possible to execute a code block executed after the third code block in accordance with the result of comparing the acquired first execution

Assignees

Inventors

Classifications

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • for test execution, e.g. scheduling of test suites · 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 US11860762B2 cover?
A semiconductor device ( 100 ) includes: first storage means ( 110 ) storing, in advance, a plurality of pieces of execution order inspection information ( 111˜11 n ) used for inspection of an execution order of a plurality of code blocks in a predetermined program, second storage means ( 120 ), which is a cache for the first storage means, and prediction means ( 130 ) for predicting a storag…
Who is the assignee on this patent?
Nec Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/3612. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 02 2024 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).