Device and method for executing a program, and method for storing a program

US10445168B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10445168-B2
Application numberUS-201314898301-A
CountryUS
Kind codeB2
Filing dateJun 18, 2013
Priority dateJun 18, 2013
Publication dateOct 15, 2019
Grant dateOct 15, 2019

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 device and a method for executing a program, and a method for storing a program are described. The method of executing a program includes a sequence of instruction cycles, wherein each instruction cycle comprises: updating the program counter value; reading a data word from a memory location identified by the updated program counter value, wherein the data word comprises an instruction and a protection signature; determining a verification signature by applying a signature function associated with the program counter value to the instruction; executing the instruction if the verification signature and the protection signature are consistent with each other; and initiating an error action if they are inconsistent with each other. A method for storing a program on a data carrier is also described.

First claim

Opening claim text (preview).

What is claimed is: 1. A device for executing a program in a sequence of instruction cycles, the program comprising instructions stored in a plurality of memory locations of a memory unit, wherein the device comprises: a program counter arranged to provide a program counter value; a memory access unit arranged to read a data word from a memory location identified by the program counter value, wherein the data word comprises an instruction and a protection signature; a signature unit arranged to determine a signature function corresponding to the program counter value and to determine a verification signature by applying the signature function to the instruction; a processing unit arranged to execute the instruction if the verification signature and the protection signature are consistent with each other; an error signal unit arranged to initiate an error action if they are inconsistent with each other; and a context value unit arranged to provide a context value to the signature unit and to update the context value for each instruction cycle, the context value being used to define a specific signature function for each of the plurality of memory locations storing the instructions of the program; wherein the signature unit is arranged to determine the signature function on the basis of the context value, and wherein the context value unit is arranged to determine the context value as J=x id ∥(x mod *x pol mod 2**p) wherein the symbol .parallel. means “concatenated with”, the symbol * means “multiplied by”, the symbol ** means “to the power of”, x id is a context identifier, x pol is a generator polynomial of size p, and x mod is a dynamic context-modifier. 2. The device of claim 1 , wherein the signature function depends parametrically on the context value. 3. The device of claim 1 , wherein the context value unit is arranged to update the context value for each instruction cycle by: incrementing the context value by one increment in response to the instruction of a preceding instruction cycle being a normal instruction; and incrementing the context value by a multiple of said increment in response to the instruction of a preceding instruction cycle being a relative jump instruction. 4. The device of claim 1 , arranged to determine the signature function on the basis of the program counter value. 5. A method comprising: providing a program counter value; and performing a sequence of instruction cycles, wherein each instruction cycle comprises: updating the program counter value; reading a data word (w) from a memory location identified by the updated program counter value, wherein the data word comprises an instruction and a protection signature; determining a verification signature (c) by applying a signature function associated with the program counter value to the instruction; executing the instruction if the verification signature and the protection signature are consistent with each other; initiating an error action if they are inconsistent with each other; and providing a context value to define a specific signature function for each of a plurality of memory locations that store the instructions of the program, wherein the context value is determined as J=x id ∥(x mod *x pol mod 2**p) wherein the symbol .parallel. means “concatenated with”, the symbol * means “multiplied by”, the symbol ** means “to the power of”, x id is a context identifier, x pol is a generator polynomial of size p, and x mod is a dynamic context-modifier. 6. The device of claim 5 , wherein the signature function is a checksum function. 7. The device of claim 5 , wherein determining the signature function comprises: determining a generator polynomial. 8. The method of claim 5 , comprising: providing the context value separately from the program counter value; wherein the operation of determining the signature function comprises: updating the context value, and determining the signature function in dependence on the context value. 9. The method of claim 5 , wherein the signature function depends parametrically on the context value. 10. The method of claim 8 , wherein updating the context value comprises: incrementing the context value by one increment in response to the instruction of a preceding instruction cycle being a normal instruction; and incrementing the context value by a multiple of said increment in response to the instruction of a preceding instruction cycle being a relative jump instruction.

Assignees

Inventors

Classifications

  • within a central processing unit [CPU] · 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

  • in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title

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

  • to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00) · 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 US10445168B2 cover?
A device and a method for executing a program, and a method for storing a program are described. The method of executing a program includes a sequence of instruction cycles, wherein each instruction cycle comprises: updating the program counter value; reading a data word from a memory location identified by the updated program counter value, wherein the data word comprises an instruction and a …
Who is the assignee on this patent?
Mayer Florian, Nxp Usa Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/079. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 15 2019 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).