Firmware execution profiling and verification

US11720681B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11720681-B2
Application numberUS-202017062146-A
CountryUS
Kind codeB2
Filing dateOct 2, 2020
Priority dateDec 31, 2019
Publication dateAug 8, 2023
Grant dateAug 8, 2023

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.

An example method of generating an execution profile of a firmware module comprises: receiving an execution trace of a firmware module comprising a plurality of executable instructions, wherein the execution trace comprises a plurality of execution trace records, wherein each execution trace record of the plurality of execution trace records indicates a successful execution of an executable instruction identified by a program counter (PC) value; retrieving a first execution trace record of the plurality of execution trace records, wherein the first execution trace record comprises a first PC value; identifying a first executable instruction referenced by the first PC value; identifying a firmware function containing the first executable instruction; incrementing a cycle count for the firmware function by a number of cycles associated with the first executable instruction; and generating, using the cycle count, an execution profile of the firmware module.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving, by a processing device, an execution trace of a firmware module comprising a plurality of executable instructions, wherein the execution trace comprises a plurality of execution trace records, wherein each execution trace record of the plurality of execution trace records indicates a successful execution of an executable instruction identified by a program counter (PC) value; retrieving a first execution trace record of the plurality of execution trace records, wherein the first execution trace record comprises a first PC value; identifying a first executable instruction referenced by the first PC value; identifying a firmware function containing the first executable instruction; incrementing a cycle count for the firmware function by a number of cycles associated with the first executable instruction; generating, using the cycle count, an execution profile of the firmware module; and utilizing, by the processing device, the execution profile for firmware verification. 2. The method of claim 1 , wherein each execution trace record of the plurality of execution trace records further comprises a timestamp. 3. The method of claim 1 , wherein the plurality of execution trace records are ordered based on an execution flow of the plurality of executable instructions. 4. The method of claim 1 , wherein the execution trace is generated by an execution environment running the firmware module. 5. The method of claim 1 , further comprising: responsive to determining that an identifier of the firmware function does not match a stored function identifier, incrementing a call count associated with the firmware function. 6. The method of claim 1 , wherein generating the execution profile further comprises: generating a text comprising a source code line associated with the first executable instruction, the first PC value, and the cycle count. 7. The method of claim 1 , further comprising: causing the execution profile to be rendered by a graphical user interface (GUI). 8. The method of claim 1 , wherein identifying the first executable instruction referenced by the first PC value further comprises: computing a relative address by subtracting a second PC value corresponding to an entry point of the firmware module from the first PC value; and identifying a source code line identified by the relative address. 9. The method of claim 8 , wherein identifying the firmware function further comprises: traversing a list of functions that is ordered by relative starting addresses, until a function is identified having an address range that includes the relative address. 10. A system, comprising: a memory; and a processing device coupled to the memory, the processing device to perform operations, comprising: receiving an execution trace of a firmware module comprising a plurality of executable instructions, wherein the execution trace comprises a plurality of execution trace records, wherein each execution trace record of the plurality of execution trace records indicates a successful execution of an executable instruction identified by a program counter (PC) value; retrieving a first execution trace record of the plurality of execution trace records, wherein the first execution trace record comprises a first PC value; identifying a firmware function containing a first executable instruction referenced by the first PC value; incrementing a cycle count for the firmware function by a number of cycles associated with the first executable instruction; and generating an execution profile of the firmware module, wherein the execution profile comprises a source code line associated with the first executable instruction, the first PC value, and the cycle count. 11. The system of claim 10 , wherein the plurality of execution trace records are ordered based on an execution flow of the plurality of executable instructions. 12. The system of claim 10 , wherein the execution trace is generated by an execution environment running the firmware module. 13. The system of claim 10 , wherein the operations further comprise: responsive to determining that an identifier of the firmware function does not match a stored function identifier, incrementing a call count associated with the firmware function. 14. The system of claim 10 , wherein the operations further comprise: causing the execution profile to be rendered by a graphical user interface (GUI). 15. The system of claim 10 , wherein identifying the first executable instruction referenced by the first PC value further comprises: computing a relative address by subtracting a second PC value corresponding to an entry point of the firmware module from the first PC value; and identifying a source code line identified by the relative address. 16. The system of claim 10 , wherein identifying the firmware function further comprises: traversing a list of functions that is ordered by relative starting addresses, until a function is identified having an address range that includes the relative address. 17. A non-transitory computer-readable storage medium comprising executable instructions which, when executed by a processing device, cause the processing device to perform operations, comprising: receiving an execution trace of a firmware module comprising a plurality of executable instructions, wherein the execution trace comprises a plurality of execution trace records, wherein each execution trace record of the plurality of execution trace records indicates a successful execution of an executable instruction identified by a program counter (PC) value; retrieving a first execution trace record of the plurality of execution trace records, wherein the first execution trace record comprises a first PC value; identifying a first executable instruction referenced by the first PC value; identifying a firmware function containing the first executable instruction; incrementing a cycle count for the firmware function by a number of cycles associated with the first executable instruction; generating, using the cycle count, an execution profile of the firmware module; and utilizing the execution profile for firmware verification. 18. The non-transitory computer-readable storage medium of claim 17 , wherein the plurality of execution trace records are ordered based on an execution flow of the plurality of executable instructions. 19. The non-transitory computer-readable storage medium of claim 17 , wherein the operations further comprise: responsive to determining that an identifier of the firmware function does not match a stored function identifier, incrementing a call count associated with the firmware function. 20. The non-transitory computer-readable storage medium of claim 17 , wherein identifying the first executable instruction referenced by the first PC value further comprises: computing a relative address by subtracting a second PC value corresponding to an entry point of the firmware module from the first PC value; and identifying a source code line identified by the relative address.

Assignees

Inventors

Classifications

  • G06F21/572Primary

    Secure firmware programming, e.g. of basic input output system [BIOS] · CPC title

  • Program or instruction counter, e.g. incrementing · CPC title

  • Visualisation of programs or trace data · CPC title

  • by tracing the execution of the program · CPC title

  • Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities · 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 US11720681B2 cover?
An example method of generating an execution profile of a firmware module comprises: receiving an execution trace of a firmware module comprising a plurality of executable instructions, wherein the execution trace comprises a plurality of execution trace records, wherein each execution trace record of the plurality of execution trace records indicates a successful execution of an executable ins…
Who is the assignee on this patent?
Micron Technology Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/572. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2023 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).