IP Library Granted Patent US 12,705,028
Granted Patent B2
US 12,705,028 · App. 18/597,822 · Granted Aug 11, 2026

Method for automatically generating a sequence of Nmax instructions in assembly language, the sequence being executable error-free by a multi-core processor

Inventors: Florent Chenevier (Toulouse, FR); Florence De Grancey (Toulouse, FR); Joshua Salort (Toulouse, FR)
Assignee: THALES
G06F8/31
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 12,705,028
App. No.
18/597,822
Filed
Mar 6, 2024
Granted
Aug 11, 2026
Kind
B2
Examiner
LEE, MARINA
Art Unit
2192
USPC
717/114
Abstract

A method for automatically generating a sequence of Nmax instructions in assembly language, the sequence being executable error-free by a multi-core processor, the method comprising steps of: initializing registers of the processor, then selecting a first instruction of the predetermined sequence, optionally at random; and selecting an N+1 th instruction among an instruction to read from a memory connected to the cores of the processor by a memory bus, an instruction to write to said memory, and a local instruction using only the registers of the processors, according to rules and to priorities between the rules, the rules using respective differences between statistical-metric values of statistical metrics of a memory access pattern of the sequence of N previous instructions having statistical-metric values, and setpoint values.

Claims (19)

1 . A method for iteratively generating automatically a sequence of Nmax instructions in assembly language, the sequence of Nmax instructions being executable error-free by a multi-core processor, the method comprising steps of:

initializing registers of a multi-core processor, then selecting a first instruction of a predetermined sequence or at random;

selecting after the first instruction, provided that N<Nmax, an N+1th instruction among instructions to read from a memory connected to cores of the multi-core processor by a memory bus, an instruction to write to said memory, and a local instruction using only the registers of the multi-core processor and the selecting being according to rules and to priorities between said rules; and

integrating the N+1 th instruction in the sequence of Nmax instructions in assembly language into an execution loop to generate executable software or a stub,

wherein said rules using respective differences between statistical-metric values of statistical metrics of a memory access pattern (P) of a sequence of N previous instructions having statistical-metric values, and setpoint values; and

wherein the rules comprising a first test rule, if a memory intensity (Im) is greater than a memory-intensity setpoint (Im_c), then the N+1 th instruction selected is a local instruction, and otherwise, the N+1 th instruction selected is a read access instruction (R) or a write access instruction (W).

2 . The method according to claim 1 , wherein the statistical metrics of the memory access pattern of the sequence of N previous instructions comprise:

a memory intensity (Im) corresponding to a ratio of a number of read access instructions (R) or write access instructions (W) to a total number of instructions N;

a read/memory ratio (Rwr) corresponding to the ratio of the read access instructions (R) to memory access instructions (R, W); and

an access Shannon entropy (E) of the memory access pattern (P), representative of a random aspect of memory addresses accessed.

3 . The method according to claim 2 , wherein the statistical metrics of the memory access pattern of the sequence of N previous instructions further comprise an interleaving (Iv) of the read access instructions (R) and of the write access instructions (W).

4 . The method according to claim 1 , wherein the rules comprise rules applied after the first test rule, in any order:

a second test rule, if a read/memory ratio (Rwr) is greater than a read/memory-ratio setpoint (Rwr_c), then the N+1 th instruction selected is a read access instruction (R), and otherwise, the N+1 th instruction selected is a write access instruction (W);

a third test rule, if a Shannon entropy (Ep) of the memory access pattern (P) is greater than a Shannon-entropy setpoint (Ep_c), then a memory address of the N+1 th instruction is selected so as to reduce an entropy E, through an address already in use or an address that is already known, and otherwise, the memory address of the N+1 th instruction is selected at random; and

a fourth test rule, if an interleaving (Iv) is greater than an interleaving setpoint (Iv_c), then the N+1 th instruction selected is a read access instruction (R) or a write access instruction (W) of a same access type as the N th instruction, and otherwise, the N+1 th instruction selected is a read access instruction (R) or a write access instruction (W) opposite to an access type of the N th instruction.

5 . The method according to claim 1 wherein selection of the N+1 th instruction is performed based on current contents of processor registers and memory content updated after execution of the N th instruction.

6 . The method according to claim 1 wherein the rules are configured to prevent execution exceptions arising from invalid register usage or invalid memory addressing.

7 . The method according to claim 1 further comprising integrating a generated instruction sequence into an execution loop executed on the multi-core processor to evaluate memory bus contention behavior.

8 . The method according to claim 1 wherein the statistical metrics correspond to contention behavior on a shared memory bus arbitrated among processor cores.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2024
From: CHENEVIER, FLORENT; DE GRANCEY, FLORENCE; SALORT, JOSHUA
To: THALES
Reel/Frame 066962/0102 →
Priority Claims (1)
FR 2302516 · Mar 17, 2023 · national
Continuity (1)
Related Publication 20240311091A1 · Sep 19, 2024
References Cited (7)
US 9696966B2 · Edwards · 2017 [cited by examiner]
US 9710366B2 · Luan · 2017 [cited by examiner]
US 11726671B2 · Hu · 2023 [cited by examiner]
US 20020089882A1 · Chen · 2002 [cited by examiner]
US 20160239212A1 · Solihin et al. · 2016 [cited by applicant]
Courtaud, et al., “Improving Prediction Accuracy of Memory Interferences for Multicore Platforms”, 2019 IEEE Real-Time Systems Symposium (RTSS), pp. 246-259, 2019. [cited by applicant]
Iorga, et al., “Slow and Steady: Measuring and Tuning Multicore Interference”, 2020 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), pp. 200-212, 2020. [cited by applicant]