IP Library Granted Patent US 10,496,301
Granted Patent B2
US 10,496,301 · App. 15/784,007 · Granted Dec 3, 2019

Sharing a memory between at least two functional entities

Inventors: Vincent Dupaquis (Biver, FR); Stéphane Godzinski (Peynier, FR)
Assignee: INSIDE SECURE
G06F3/0622G06F3/0637G06F3/0644G06F3/0659G06F3/0673G06F12/145G06F12/1441G06F12/1491G06F21/64G06F21/74G06F21/79
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,496,301
App. No.
15/784,007
Granted
Dec 3, 2019
Kind
B2
Abstract

In a general aspect, a method for sharing a memory between two functional entities can include assigning, to the first functional entity, a first data transformation function and a first inverse transformation function, and assigning, to the second functional entity a second data transformation function and a second inverse transformation function. The second inverse data transformation function can be incompatible with the first data transformation function and the first inverse data transformation function can be incompatible with the second data transformation function.

Claims (61)

1. A method for sharing a memory in a device, the device including the memory and a plurality of functional entities arranged on a same support or in a same housing, the method comprising:

configuring a first functional entity of the plurality of functional entities such that the first functional entity writes data into, and reads data from a first area of the memory,

configuring a second functional entity of the plurality of functional entities such that the second functional entity writes data into, and reads data from a second area of the memory, the second area of the memory being disjoint from the first area of the memory,

assigning, to the first functional entity, a first data transformation function and a first inverse data transformation function, the first inverse data transformation function being configured to, at least one of, restore or verify validity of data transformed by the first data transformation function,

assigning, to the second functional entity, a second data transformation function and a second inverse data transformation function, the second inverse data transformation function being configured to, at least one of, restore or verify validity of data transformed by the second data transformation function, wherein the second inverse data transformation function is incompatible with the first data transformation function, and the first inverse data transformation function is incompatible with the second data transformation function,

configuring the first functional entity such that it applies the first data transformation function to data written, by the first functional entity, into the first area of the memory, and applies the first inverse data transformation function to data read, by the first functional entity, from the first area of the memory, and

configuring the second functional entity such that it applies the second data transformation function to data written, by the second functional entity, into the second area of the memory, and applies the second inverse data transformation function to data read, by the second functional entity, from the second area of the memory.

2. The method of claim 1 , further comprising configuring the second inverse data transformation function to provide an error status when it is applied to data transformed using the first data transformation function.

3. The method of claim 2 , further comprising performing, in response to the error status, a protection action against an attempt to read data from the first area of the memory by the second functional entity, the second inverse data transformation function providing the error status.

4. The method of claim 1 , further comprising:

configuring the first functional entity such that it writes data to a third area of the memory,

configuring the second functional entity such that it reads data from the third area of the memory,

assigning the second data transformation function to the first functional entity without assigning the second inverse data transformation function to the first functional entity, and

configuring the first functional entity to apply the second data transformation function to data written, by the first functional entity, into the third area of the memory that is to be read by the second functional entity.

5. The method of claim 4 , further comprising:

configuring the first functional entity such that it reads data from the third area of the memory,

configuring the second functional entity such that it writes data to the third area of the memory,

assigning the first data transformation function to the second functional entity without assigning the first inverse data transformation function to the second functional entity, and

configuring the second functional entity such that it applies the first data transformation function to data written in the third area of the memory that is to be read by the first functional entity.

6. The method of claim 1 , further comprising:

configuring the first functional entity and the second functional entity to write data to, and read data from a third area of the memory,

assigning, to the first functional entity, the second data transformation function and the second inverse data transformation function without assigning, to the second functional entity, the first data transformation function or the first inverse data transformation function, and

configuring the first functional entity such that it applies the second data transformation function to data written, by the first functional entity, into the third area of the memory that is to be read by the second functional entity.

7. The method of claim 1 , further comprising:

configuring the first functional entity such that applying the first data transformation function includes adding a parity bit to data to be written into the memory, and applying the first inverse data transformation function includes verifying that data read from the memory has a valid parity bit, and

configuring the second functional entity such that applying the second data transformation function includes adding an inverse parity bit to data to be written into the memory, and applying the second inverse data transformation function includes verifying that data read from the memory has a valid inverse parity bit.

8. The method of claim 1 , further comprising configuring the first functional entity such that the first data transformation function includes a data encoding function.

9. The method of claim 8 , wherein the data encoding function uses an address used for writing data into the memory as a data encoding variable.

10. The method of claim 1 , further comprising configuring the first functional entity such that the first data transformation function includes a data signature function and the first inverse data transformation function includes a signature verification function that provides an error status in response to the first functional entity reading data from the memory that has not been transformed using the data signature function.

11. The method of claim 1 , wherein at least one of the first functional entity or the second functional entity is selected from a group including direct memory access controllers, signal processors, and software functions executed by one or more processors.

12. A device comprising:

a memory;

a first functional entity that is configured to write data into, and to read data from a first area of the memory, and

a second functional entity that is configured to write data into, and to read data from a second area of the memory, the second area of the memory being disjoint from the first area of the memory, the first functional entity and the second functional entity being arranged on a same support or in a same housing,

the first functional entity including a first data transformation function and a first inverse data transformation function, the first inverse data transformation function being configured to, at least one of, restore or verify validity of data transformed by the first data transformation function,

the second functional entity including a second data transformation function and a second inverse data transformation function, the second inverse data transformation function being configured to, at least one of, restore or verify validity of data transformed by the second data transformation function, the second inverse data transformation function being incompatible with the first data transformation function, and the first inverse data transformation function being incompatible with the second data transformation function,

the first functional entity being further configured to apply the first data transformation function to data written, by the first functional entity, into the first area of the memory, and to apply the first inverse data transformation function to data read, by the first functional entity, from the first area of the memory, and

the second functional entity being further configured to apply the second data transformation function to data written, by the second functional entity, into the second area of the memory, and to apply the second inverse data transformation function to data read, by the second functional entity, from the second area of the memory.

13. The device of claim 12 , wherein the second inverse data transformation function is configured to provide an error status in response to applying the second inverse data transformation function to data transformed by the first data transformation function.

14. The device of claim 13 , wherein the second functional entity is further configured to perform, in response to the second inverse data transformation function providing the error status, a protection action against an attempt to read data from the first area of the memory by the second functional entity.

15. The device of claim 12 , wherein:

the first functional entity is further configured to write data into a third area of the memory,

the second functional entity is further configured to read data from the third area of the memory,

the first functional entity further includes the second data transformation function, but excludes the second inverse data transformation function, and

the first functional entity is further configured to apply the second data transformation function to data written, by the first functional entity, into the third area of the memory that is to be read by the second functional entity.

16. The device of claim 15 , wherein:

the first functional entity is further configured to read data from the third area of the memory,

the second functional entity is further configured to write data into the third area of the memory,

the second functional entity further includes the first data transformation function, but excludes the first inverse data transformation function, and

the second functional entity is further configured to apply the first data transformation function to data written, by the second functional entity, into the third area of the memory that is to be read by the first functional entity.

17. The device of claim 12 , wherein:

the first functional entity and the second functional entity are further configured to write data into, and read data from a third area of the memory,

the first functional entity further includes the second data transformation function and the second inverse data transformation function, and

the first functional entity is configured to apply the second data transformation function to data written, by the first functional entity, into the third area of the memory that is to be read by the second functional entity.

18. The device of claim 12 , wherein:

applying the first data transformation function includes adding a parity bit to data to be written to the memory, and applying the first inverse data transformation function includes verifying that data read from the memory has a valid parity bit, and

applying the second data transformation function includes adding an inverse parity bit to data to be written to the memory, and applying the second inverse data transformation function includes verifying that data read from the memory has a valid inverse parity bit.

19. The device of claim 12 , wherein the first data transformation function includes a data encoding function.

20. The device of claim 19 , wherein the data encoding function uses an address for writing data into the memory as a data encoding variable.

21. The device of claim 12 , wherein the first data transformation function includes a data signature function and the first inverse data transformation function includes a signature verification function that provides an error status in response to the first functional entity reading data from the memory that has not been transformed by the data signature function.

22. The device of claim 12 , wherein at least one of the first functional entity or the second functional entity is selected from a group including direct memory access controllers, signal processors, and software functions executed by one or more processors.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 21, 2019
From: GLAS SAS, AS AGENT
To: INSIDE SECURE
Reel/Frame 051076/0306 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
SECURITY INTEREST Recorded Feb 27, 2019
From: INSIDE SECURE
To: GLAS SAS, AS SECURITY AGENT
Reel/Frame 048449/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: DUPAQUIS, VINCENT; GODZINSKI, STÈPHANE
To: INSIDE SECURE
Reel/Frame 048100/0431 →
Priority Claims (1)
FR 15 53369 · Apr 16, 2015 · national
Continuity (2)
Continuation PCTFR2016050801 · Apr 7, 2016
Related Publication 20180039438A1 · Feb 8, 2018