Method for checking data consistency in a system on chip (SoC) comprising a core including at least two processors (CPU1, CPU2), registers (RG1, RG2), and a data consistency check module linking the two processors (CPU1, CPU2), the data consistency check module performing tests to determine if data produced by the processors (CPU1, CPU2) at execution of program instructions satisfy predefined comparison criteria or pass consistency tests or other error detecting processes, the core being connected to at least one set of memories containing zones for instructions of a first program and zones for instructions of a second program, each program (P1, P2) accessing to data (D1, D2), said instructions being to be executed respectively by the first and second processor (CPU1, CPU2), which respectively produce and store result data (R1n, R2n) into the registers (RG1, RG2) or the memories, the method comprising steps of: - executing at least one instruction (IN1n) of the first program by the first processor, producing first result data (R1n), storing said first result data (R1n) at predefined addresses of said at least one set of memories or registers - executing at least one instruction (IN2n) of the second program by the second processor, producing second result data (R2n) distinct from the first result data (R1n); - storing said second result data (R2n) at addresses of said at least one set of memories or registers defined by a predetermined mapping applied by a memory mapping module (Mmap) on each memory or register address where are stored the corresponding first result data (R1n), the predetermined mapping comprising a predetermined shift or a function G relating the addresses where are stored the first result data (R1n) and the addresses where are stored the second result data (R2n); - determining by the data consistency check module the memory or register addresses of the result data (R1n, R2n) with the memory mapping module (Mmap) and localizing suitable result data (R1n, R2n) to verify, - applying, by the data consistency check module, a predetermined function either over the first result data (R1n) or the second result data (R2n) to obtain a test result (F(R1n), F(R2n)) - comparing by the data consistency check module, the test result F(R1n) or F(R2n) previously obtained either with the corresponding second result data (R2n) or first result data (R1n), - continuing execution of instructions of each program (P1, P2) by respectively the first and second processor (CPU1, CPU2) when the comparison between the test result (F(R1n), F(R2n)) and the corresponding result data (R2n, R1n) is successful, - stopping execution of instructions of each program (P1, P2) by respectively the first and second processor (CPU1, CPU2) when the comparison shows an error. - executing at least one instruction (IN1n) of the first program by the first processor, producing first result data (R1n), storing said first result data (R1n) at predefined addresses of said at least one set of memories or registers - executing at least one instruction (IN2n) of the second program by the second processor, producing second result data (R2n) distinct from the first result data (R1n); - storing said second result data (R2n) at addresses of said at least one set of memories or registers defined by a predetermined mapping applied by a memory mapping module (Mmap) on each memory or register address where are stored the corresponding first result data (R1n), the predetermined mapping comprising a predetermined shift or a function G relating the addresses where are stored the first result data (R1n) and the addresses where are stored the second result data (R2n); - determining by the data consistency check module the memory or register addresses of the result data (R1n, R2n) with the memory mapping module (Mmap) and localizing suitable result data (R1n, R2n) to verify, - applying, by the data consistency check module, a predetermined function either over the first result data (R1n) or the second result data (R2n) to obtain a test result (F(R1n), F(R2n)) - comparing by the data consistency check module, the test result F(R1n) or F(R2n) previously obtained either with the corresponding second result data (R2n) or first result data (R1n), - continuing execution of instructions of each program (P1, P2) by respectively the first and second processor (CPU1, CPU2) when the comparison between the test result (F(R1n), F(R2n)) and the corresponding result data (R2n, R1n) is successful, - stopping execution of instructions of each program (P1, P2) by respectively the first and second processor (CPU1, CPU2) when the comparison shows an error.