IP Library Granted Patent US 10,761,925
Granted Patent B2
US 10,761,925 · App. 14/666,733 · Granted Sep 1, 2020

Multi-channel network-on-a-chip

Inventors: Manfred P. Thanner (Neubiberg, DE); Stephan G. Mueller (Taunusstein, DE); Alexandre P. Palus (Austin, TX); Anthony M. Reipold (Austin, TX)
Assignee: NXP USA, Inc.
G06F11/0793G06F11/073G06F11/0796G06F11/165G06F11/1625G06F11/1629G06F11/1641G06F11/1695G06F2201/845
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,761,925
App. No.
14/666,733
Granted
Sep 1, 2020
Kind
B2
Abstract

In at least one embodiment of the disclosure, a method includes detecting an error in a local memory shared by redundant computing modules executing in delayed lockstep. The method includes pausing execution in the redundant computing modules and handling the error of the local memory. The method includes resuming execution in delayed lockstep of the redundant computing modules in response to the handling of the error.

Claims (60)

1. A method comprising:

detecting an error in program execution by redundant computing modules executing a program in delayed lockstep;

pausing program execution in the redundant computing modules in response to detecting the error;

during paused program execution, handling the error according to a determination of whether the error is a soft error in a local memory shared by the redundant computing modules;

in response to the determination indicating that the error is a soft error, resuming program execution in delayed lockstep of the redundant computing modules after the handling of the error; and

in response to the determination indicating that the error is not a soft error, identifying a faulty computing module of the redundant computing modules, disabling the faulty computing module, and resuming program execution in another computing module of the redundant computing modules.

2. The method, as recited in claim 1 , wherein the error is a soft error and handling the error comprises:

invalidating a line in the local memory corresponding to the soft error.

3. The method, as recited in claim 1 , wherein the error is a soft error and handling the error comprises:

correcting the soft error by changing a bit in the local memory corresponding to the soft error.

4. The method, as recited in claim 1 , wherein detecting the error comprises:

executing a built-in self-test (BIST) and generating an indicator thereof.

5. The method, as recited in claim 1 , further comprising:

communicating a memory request between a first computing module of the redundant computing modules and main memory; and

communicating the memory request between a second computing module of the redundant computing modules and the main memory.

6. The method, as recited in claim 1 , further comprising:

communicating between a first computing module of the redundant computing modules and a first peripheral; and

communicating between a second computing module of the redundant computing modules and a second peripheral, redundant to the first peripheral, the second peripheral executing in delayed lockstep with the first peripheral.

7. The method, as recited in claim 6 , further comprising:

detecting a second error in the communications between the redundant computing modules and the first and second peripherals; and

disabling the communications between one of first and second computing modules of the redundant computing modules and a corresponding one of the first and second peripherals in response to detecting the second error.

8. The method, as recited in claim 1 , further comprising:

providing data from a computing module of the redundant computing modules to a leading channel of a redundant network;

providing a delayed version of the data from the computing module to a following channel of the redundant network; and

communicating the data and the delayed version of the data to a target module.

9. An apparatus comprising:

a first computing module comprising a first local memory controller;

a second computing module redundant to the first computing module and configured to execute a program in delayed lockstep with the first computing module, the second computing module comprising a second local memory controller; and

a local memory coupled to the first and second local memory controllers,

wherein the first and second local memory controllers are configured to detect an error in program execution, the first and second computing modules are configured to pause delayed lockstep program execution in response to detection of the error, the first and second computing modules are configured to handle the error according to a determination of whether the error is a soft error in the local memory, the first and second computing modules are configured to resume program execution in delayed lockstep after the handling of the error in response to the determination indicating that the error is a soft error, and the first and second computing modules are configured to identify a faulty computing module of the redundant computing modules, disable the faulty computing module, and resume program execution in another computing module of the redundant computing modules in response to the determination indicating that the error is not a soft error.

10. The apparatus, as recited in claim 9 , further comprising:

a validation module configured to provide a validation error indicator to at least one of the first and second computing modules in response to a comparison error based on delayed lockstep outputs of the first and second computing modules and a faulty one of the first computing module and the second computing module is isolated from the local memory in response to the validation error indicator.

11. The apparatus, as recited in claim 9 , further comprising:

an error handler in one of the first and second computing modules configured to handle the error by invalidating a line in the local memory in response to the determination indicating the error is a soft error.

12. The apparatus, as recited in claim 9 , further comprising:

an error handler in one of the first and second computing modules configured to handle the error by changing a bit in the local memory to correct the error in response to the determination indicating the error is a soft error.

13. The apparatus, as recited in claim 9 , wherein the local memory is configured to execute a built-in self-test (BIST) and generate an indicator thereof, the error being detected based on the indicator.

14. The apparatus, as recited in claim 9 , further comprising:

a network-on-a-chip comprising:

a leading channel coupled between the first computing module and main memory;

a following channel redundant to the leading channel, the following channel being coupled between the second computing module and main memory; and

a network validation module configured to detect a discrepancy between data in the leading channel and the following channel.

15. The apparatus, as recited in claim 14 , wherein the network validation module is configured to disable at least a portion of a failing one of the leading channel and the following channel in response to detecting the discrepancy.

16. The apparatus, as recited in claim 14 , wherein the network-on-a-chip further comprises:

a first port coupled to the leading channel; and

a second port coupled to the following channel,

wherein the first port and the second port are configured to provide redundant, synchronized signals from a non-redundant module to the leading and following channels.

17. The apparatus, as recited in claim 9 , further comprising:

a network-on-a-chip comprising:

a leading channel coupled between the first computing module and a first peripheral;

a following channel redundant to the leading channel, the following channel being coupled between the second computing module and a second peripheral redundant to the first peripheral configured for delayed lockstep execution; and

a network validation module configured to detect a discrepancy between data in the leading channel and the following channel and generate an indicator thereof.

18. An apparatus comprising:

redundant computing modules configured to execute a program in delayed lockstep;

a local memory shared by the redundant computing modules; and

means for detecting an error in the local memory, pausing program execution in the redundant computing modules in response to detecting the error, handling the error during paused program execution according to a determination of whether the error is a soft error in the local memory, in response to the determination indicating that the error is a soft error, resuming program execution in delayed lockstep of the redundant computing modules after the handling of the error, and in response to the determination indicating that the error is not a soft error, identifying a faulty computing module of the redundant computing modules, disabling the faulty computing module, and resuming program execution in another computing module of the redundant computing modules.

19. The apparatus, as recited in claim 18 , further comprising:

means for communicating redundant information between the redundant computing modules and another computing device.

20. The method, as recited in claim 1 , wherein the local memory is responsive to redundant cache controllers of the redundant computing modules and the local memory is configured as a first-level cache in a memory system shared by the redundant computing modules.

21. The apparatus, as recited in claim 9 , wherein the local memory is configured as a first-level cache in a memory system shared by the first and second computing modules and the first and second local memory controllers include a first cache controller and a second cache controller, respectively.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0341 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0359 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0974 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0080 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0112 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2015
From: THANNER, MANFRED P.; MUELLER, STEPHAN G.; PALUS, ALEXANDRE P.; REIPOLD, ANTHONY M.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 035242/0320 →