Method and device for processing data via coded operations
11169501 · 2021-11-09
Assignee
Inventors
Cpc classification
G05B19/05
PHYSICS
G06F21/64
PHYSICS
G06F11/085
PHYSICS
International classification
Abstract
A computer program product, a device, a functionally secure programmable controller and a method for processing data via coded operations in a number of cycles, wherein an uncoded variable x is coded with a cycle-specific signature D and a variable-specific signature B.sub.x to form a coded variable x.sub.c in accordance with the relationship: x.sub.c=D.Math.x+B.sub.x.
Claims
1. A method for processing data via coded operations during a plurality of processing cycles to reduce a required computational power of a device included in a program-controlled apparatus, the method comprising: acquiring the data; coding an uncoded variable x with a cycle-specific signature D and a variable-specific signature B.sub.x to form a coded variable x.sub.c to reduce the required computational power of the device utilizing the relationship:
x.sub.c=D.Math.x+B.sub.x; operating the program-controlled apparatus including the device having the reduced required computational power.
2. The method as claimed in claim 1, wherein the coded operations comprise at least one of (i) logic coded operations and (ii) arithmetic coded operations.
3. The method as claimed in claim 1, wherein the coded operations comprise a coded addition operation CADD in which a first coded variable x.sub.c and a second coded variable y.sub.c are added utilizing a first parameter K.sub.1 to form a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=(x.sub.c+y.sub.c+K.sub.1); and wherein the first parameter K.sub.1 is calculated via a signature B.sub.x specific to the first variable x, a signature B.sub.y specific to the second variable y and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.1=B.sub.z−B.sub.x−B.sub.y.
4. The method as claimed in claim 2, wherein the coded operations comprise a coded addition operation CADD in which a first coded variable x.sub.c and a second coded variable y.sub.c are added utilizing a first parameter K.sub.1 to form a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=(x.sub.c+y.sub.c+K.sub.1); and wherein the first parameter K.sub.1 is calculated via a signature B.sub.x specific to the first variable x, a signature B.sub.y specific to the second variable y and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.1=B.sub.z−B.sub.x−B.sub.y.
5. The method as claimed in claim 1, wherein the coded operations comprise a coded subtraction operation CSUB in which a difference between a first coded variable x.sub.c and a second coded variable y.sub.c is calculated utilizing a second parameter K.sub.2 to provide a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=(x.sub.c−y.sub.c+K.sub.2); and wherein the second parameter K.sub.2 is calculated by way of a signature B.sub.x specific to the first variable x, a signature B.sub.y specific to the second variable y and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.2=B.sub.z−B.sub.x+B.sub.y.
6. The method as claimed in claim 1, wherein the coded operations comprise a coded multiplication operation CMUL in which a first coded variable x.sub.c and a second coded variable y.sub.c are multiplied using a third parameter K.sub.3, the cycle-specific signature D and a multiplicative inverse INV(D) of the cycle-specific signature D to provide a third coded variable z.sub.c utilizing the relationship:
z.sub.c=INV(D).Math.(x.sub.c.Math.y.sub.c−B.sub.x.Math.y.sub.c−B.sub.y.Math.x.sub.c+B.sub.z.Math.D+K.sub.3); and wherein the third parameter K.sub.3 is calculated via of a signature B.sub.x specific to the first variable x and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.3=B.sub.y.Math.B.sub.z.
7. The method as claimed in claim 1, wherein the coded operations comprise a coded move operation CMOV for an assignment within a particular cycle in which one coded variable x.sub.c is assigned to another coded variable z.sub.c using a fourth parameter K.sub.4 in accordance with the following relationship:
z.sub.c=x.sub.c+K.sub.4; and wherein the fourth parameter K.sub.4 is calculated via a signature B.sub.x specific to the variable x and a signature B.sub.z specific to the other variable z utilizing the relationship:
K.sub.4=B.sub.z−B.sub.x(S2).
8. The method as claimed in claim 1, wherein the coded operations comprise a coded move operation CMOVD for an assignment of a first cycle to a second cycle in which one coded variable x.sub.c is assigned to another coded variable z.sub.c utilizing a fifth parameter K.sub.5 and a sixth parameter K.sub.6 in accordance with the following relationship:
z.sub.c=K.sub.5.Math.x.sub.c+K.sub.6; and wherein the fifth parameter K.sub.5 is calculated in accordance with the following relationship:
K.sub.5=D.sub.2.Math.INV(D.sub.1); wherein D.sub.2 denotes a signature specific to the second cycle and INV(D.sub.1) denotes a multiplicative inverse of a signature D.sub.1 specific to the first cycle; and wherein the sixth parameter K.sub.6 is calculated utilizing the fifth parameter K.sub.5, the signature B.sub.x specific to the variable x and the signature B.sub.z specific to the other variable z in accordance with the following relationship:
K.sub.6=B.sub.z−K.sub.5.Math.B.sub.x(S2).
9. The method as claimed in claim 8, wherein the fifth parameter K.sub.5 and the sixth parameter K.sub.6 are calculated before application of the coded operations and stored in a storage unit.
10. The method as claimed in claim 9, wherein the storage unit comprises a hash table.
11. The method as claimed in claim 1, wherein the uncoded variable x is coded during a compilation procedure to form the coded variable x.sub.c.
12. A non-transitory computer readable medium encoded with a computer program which, when executed by a coding unit included in a program-controlled apparatus, causes processing of data via coded operations during a plurality of processing cycles to reduce a required computational power of the coding unit, the computer program comprising: program code for acquiring the data; and program code for coding an uncoded variable x with a cycle-specific signature D and a variable-specific signature B.sub.x to form a coded variable x.sub.c to reduce the required computational power of the coding unit in accordance with the following relationship:
x.sub.c=D.Math.x+B.sub.x; program code for operating the program-controlled apparatus including the coding unit having the reduced required computational power.
13. A device for processing data via coded operations during a plurality of processing cycles to reduce a required computational power of the device, the device comprising: a coding unit configured so as to code an uncoded variable x with a cycle-specific signature D and a variable-specific signature B.sub.x to form a coded variable x.sub.c to reduce the required computational power of the device in accordance with the relationship:
x.sub.c=D.Math.x+B.sub.x; wherein the device is included in a program-controlled apparatus.
14. A functionally secure programmable controller having the device as claimed in claim 13.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further advantageous refinements and aspects of the invention are the subject matter of the dependent claims and of the exemplary embodiments, described below, of the invention. The invention is explained in more detail below on the basis of preferred embodiments with reference to the attached figures, in which:
(2)
(3)
(4)
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
(5) In the figures, identical or functionally identical elements have been provided with the same reference signs, unless indicated otherwise.
(6)
(7) The exemplary embodiment of
(8) In step S1, an uncoded variable x is coded to form a coded variable x.sub.c. In the present exemplary embodiment, by way of example, the three variables x, y and z are used.
(9) In detail, in step S1, the respective uncoded variable x, y and z is coded with a cycle-specific signature D and a respective variable-specific signature B.sub.x, B.sub.y and B.sub.z to form a coded variable x.sub.c, y.sub.c and z.sub.c in accordance with the following relationship:
x.sub.c=D.Math.x+B.sub.x
y.sub.c=D.Math.y+B.sub.y
z.sub.c=D.Math.z+B.sub.z Eq. (5)
(10) The respective uncoded variable x, y and z is preferably coded during a compilation procedure to form the respective coded variable x.sub.c, y.sub.c and z.sub.c.
(11) In step S2, at least one coded operation is applied to at least one of the coded variables x.sub.c, y.sub.c and z.sub.c.
(12) The coded operations particularly comprise logic coded operations and/or arithmetic coded operations. Here, the coded operations particularly comprise a coded addition operation CADD, a coded subtraction operation CSUB, a coded multiplication operation CMUL, a coded move operation CMOV for an assignment within a particular cycle, and a coded move operation CMOVD for an assignment from a first cycle to a second cycle. The coded operations may preferably be executed as follows.
(13) In the case of the coded addition operation CADD, a first coded variable x.sub.c and a second coded variable y.sub.c are added using a first parameter K.sub.1 to form a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=(x.sub.c+y.sub.c+K.sub.1), Eq. (6)
where the first parameter K.sub.1 is calculated via a signature B.sub.x specific to the first variable x, a signature B.sub.y specific to the second variable y and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.1=B.sub.z−B.sub.x−B.sub.y. Eq. (7)
(14) Furthermore, in the case of the coded subtraction operation CSUB, a difference between a first coded variable x.sub.c and a second coded variable y.sub.c is calculated using a second parameter K.sub.2 to provide a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=(x.sub.c−y.sub.c+K.sub.2), Eq. (8)
where the second parameter K.sub.2 is calculated via a signature B.sub.x specific to the first variable x, a signature B.sub.y specific to the second variable y and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.2=B.sub.z−B.sub.x+B.sub.y. Eq. (9)
(15) In the case of the coded multiplication operation CMUL, a first coded variable x.sub.c and a second coded variable y.sub.c are multiplied using a third parameter K.sub.3, the cycle-specific signature D and a multiplicative inverse INV(D) of the cycle-specific signature D to provide a third coded variable z.sub.c in accordance with the following relationship:
z.sub.c=INV(D).Math.(x.sub.c.Math.y.sub.c−B.sub.x.Math.y.sub.c−B.sub.y.Math.x.sub.c+B.sub.z.Math.D+K.sub.3), Eq. (10)
where the third parameter K.sub.3 is calculated via a signature B.sub.x specific to the first variable x and a signature B.sub.z specific to the third variable z in accordance with the following relationship:
K.sub.3=B.sub.y.Math.B.sub.z. Eq. (11)
(16) Then, in the case of the coded move operation CMOV, which is provided for an assignment within a particular cycle, one coded variable x.sub.c is assigned to another coded variable z.sub.c using a fourth parameter K.sub.4 in accordance with the following relationship:
z.sub.c=x.sub.c+K.sub.4, Eq. (12)
where the fourth parameter K.sub.4 is calculated by way of a signature B.sub.x specific to the variable x and a signature B.sub.z specific to the other variable z in accordance with the following relationship:
K.sub.4=B.sub.z−B.sub.x. Eq. (13)
(17) In the case of the coded move operation CMOVD, which is provided for an assignment of a first cycle to a second cycle, one coded variable x.sub.c is assigned to another coded variable z.sub.c using a fifth parameter K.sub.5 in accordance with the following relationship:
z.sub.c=K.sub.5.Math.x.sub.c+K.sub.6, Eq. (14)
where the fifth parameter K.sub.5 is calculated in accordance with the following relationship:
K.sub.5=D.sub.2.Math.INV(D.sub.1), Eq. (15)
where D.sub.2 denotes the signature specific to the second cycle and INV(D.sub.1) denotes the multiplicative inverse of the signature D.sub.1 specific to the first cycle, and where the sixth parameter K.sub.6 is calculated using the fifth parameter K.sub.5, the signature B.sub.x specific to the variable x and the signature B.sub.z specific to the other variable z in accordance with the following relationship:
K.sub.6=B.sub.z−K.sub.5.Math.B.sub.x. Eq. (16)
(18) The fifth parameter K.sub.5 and the sixth parameter K.sub.6 may preferably be calculated before application of the coded operations in step S2 and be stored in a storage unit 14 (see
(19) In step S3, the coded variables x.sub.c, y.sub.c, z.sub.c and/or results of the coded operations may be decoded or decompiled.
(20)
(21) The decoding unit 11 is configured so as to code an uncoded variable x with a cycle-specific signature D and a variable-specific signature B.sub.x to form a coded variable x.sub.c in accordance with the following relationship:
x.sub.c=D.Math.x+B.sub.x. Eq. (5)
(22) The coding unit 11 is in particular configured so as to execute method step S1 of
(23) The processing unit 12 is configured so as to apply coded operations, such as the abovementioned CADD, CSUB and the like, to the coded variables x.sub.c, y.sub.c and z.sub.c.
(24) In particular, when applying the coded move operation CMOVD, the processing unit 12 may access the abovementioned storage unit 14, which in particular stores the fifth parameter K.sub.5 and the sixth parameter K.sub.6. The storage unit 14 may furthermore also store further parameters or values that were calculated beforehand. The storage unit 14 is in particular formed as a hash table.
(25) The decoding unit 13 is in turn configured so as to decode or to decompile variables or operands that are present in coded form for further processing.
(26)
(27) The controller 1 is configured so as to drive a machine 2, such as a conveyor belt or a robotic arm. For this purpose, the controller 1 of
(28) Thus, while there have been shown, described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes in the form and details of the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements shown and/or described in connection with any disclosed form or embodiment of the invention may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.