IP Library Granted Patent US 9,417,952
Granted Patent B2
US 9,417,952 · App. 14/574,777 · Granted Aug 16, 2016

Direct memory access (DMA) unit with error detection

Inventors: Tommi M. Jokinen (Austin, TX); Nikhil Jain (Noida, IN); Stephen G. Kalthoff (Austin, TX)
Assignee: FREESCALE SEMICONDUCTOR, INC.
G06F11/1004G06F13/28G06F13/4022
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 9,417,952
App. No.
14/574,777
Granted
Aug 16, 2016
Kind
B2
Abstract

Systems and methods for self-checking a direct memory access system are disclosed. These may include generating a check sum value associated with a first job of the plurality of jobs, the first job comprising a read job; if a first predetermined check value is available, comparing the first check sum value with the first predetermined check value; generating a second check sum value associated with a last job of the plurality of jobs, the last job comprising a write job; if a second predetermined check value is available, comparing the second check sum value with the second predetermined check value; and if the second predetermined check value is not available, comparing the first check sum value with the second check sum value.

Claims (51)

1. A method for self-checking within direct memory access (DMA) system, the method comprising:

for a job chain comprising a plurality of jobs, wherein each of the plurality of jobs comprises a source memory address, a destination memory address, an effective data length, a job chain identifier, and a mode identifier:

generating a first check sum value for read data associated with a first job of the plurality of jobs, the first job comprising a read operation by a read data engine of the DMA to obtain the read data from a source memory address associated with the first job;

if the mode identifier associated with the first job indicates that a first predetermined check value is available, comparing the first check sum value with the first predetermined check value;

generating a second check sum value for write data associated with a last job of the plurality of jobs, the last job comprising a write operation of the write data by a write data engine of the DMA to a destination memory address associated with the last job;

if the mode identifier associated with the last job indicates that a second predetermined check value is available, comparing the second check sum value with the second predetermined check value; and

if the mode identifier associated with the last job does not indicate that the second predetermined check value is available, comparing the first check sum value with the second check sum value.

2. The method of claim 1 , further comprising checking an effective read data length for the first job to ensure that it is the same as an effective write data length for the last job.

3. The method of claim 1 , further comprising setting an error bit if the first check sum value is different from the second check sum value.

4. The method of claim 1 , further comprising setting an error bit if the first check sum value is different from the first predetermined check value.

5. The method of claim 1 , further comprising setting an error bit if the second check sum value is different from the second predetermined check value.

6. The method of claim 1 , wherein at least one of the job chains in the plurality of job chains further comprises an intermediate job, the intermediate job executed between the first job and the last job.

7. The method of claim 6 , wherein the source address associated with the intermediate job is associated with data stored in a plurality of nonconsecutive memory locations.

8. The method of claim 6 , wherein the destination address associated with the intermediate job is associated with data stored in a plurality of nonconsecutive memory locations.

9. The method of claim 1 , further comprising, for each job chain in the plurality of job chains:

checking an address alignment for the first job in the job chain to ensure that it is the same as an address alignment for the last job in the job chain;

generating a third check sum value associated with a first address associated with the first job;

generating a fourth check sum value associated with a second address associated with the last job; and

comparing the third check sum value with the fourth check sum value.

10. A method for self-checking a direct memory access (DMA) system, the method comprising:

for a job chain comprising a plurality of jobs, wherein each of the plurality of jobs comprises a source memory address, a destination memory address, an effective data length, a job chain identifier, and a mode identifier:

generating a first check sum value associated with a first address associated with a first job of the plurality of jobs, the first job comprising a read operation from the first address by a read data engine of the DMA;

if the mode identifier associated with the first job indicates that a first predetermined check value is available, comparing the first check sum value with the first predetermined check value;

generating a second check sum value associated with a second address associated with a last job of the plurality of jobs, the last job comprising a write operation to the second address by a write data engine of the DMA;

if the mode identifier associated with the last job indicates that a second predetermined check value is available, comparing the second check sum value with the second predetermined check value; and

if the mode identifier associated with the last job does not indicate that the second predetermined check value is available, comparing the first check sum value with the second check sum value.

11. The method of claim 10 , further comprising checking an address alignment for the first job to ensure that it is the same as an address alignment for the last job.

12. The method of claim 10 , further comprising setting an error bit if the first check sum value is different from the second check sum value.

13. The method of claim 10 , further comprising setting an error bit if the first check sum value is different from the first predetermined check value.

14. The method of claim 10 , further comprising setting an error bit if the second check sum value is different from the second predetermined check value.

15. A system for self-checking within a direct memory access (DMA) system, the system comprising:

a transaction scheduler operable to schedule a job chain comprising a plurality of jobs, wherein each of the plurality of jobs comprises a source memory address, a destination memory address, an effective data length, a job chain identifier, and a mode identifier;

a read data engine operable to perform read operations;

a write data engine operable to perform write operations;

a read data check unit communicatively coupled to the transaction scheduler, the read data check unit operable to:

generate a first check sum value associated with data associated with a first job of the plurality of jobs, the first job comprising a read operation; and

if the mode identifier associated with the first job indicates that a first predetermined check value is available, comparing the first check sum value with the first predetermined check value; and

a write data check unit communicatively coupled to the transaction scheduler, the write data check unit operable to:

generate a second check sum value associated with data associated with a last job of the plurality of jobs, the last job comprising a write operation;

if the mode identifier associated with the last job indicates that a second predetermined check value is available, comparing the second check sum value with the second predetermined check value; and

if the mode identifier associated with the last job does not indicate that the second predetermined check value is available, comparing the first check sum value with the second check sum value.

16. The system of claim 15 , wherein the write data check unit is further operable to set an error bit if the first check sum value is different from the second check sum value.

17. The system of claim 15 , wherein the read data check unit is further operable to set an error bit if the first check sum value is different from the first predetermined check value.

18. The system of claim 15 , wherein the write data check unit is further operable to set an error bit if the second check sum value is different from the second predetermined check value.

19. The system of claim 15 , wherein the source address associated with at least one of the plurality of jobs is associated with data stored in a plurality of nonconsecutive memory locations.

20. The system of claim 15 , further comprising:

a read address check unit operable to:

generate a third check sum value associated with a first address associated with the first job; and

a write address check unit operable to:

generate a fourth check sum value associated with a second address associated with the last job; and

compare the third check sum value with the fourth check sum value.

Assignments (14)
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 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
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 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0444 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0535 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037358/0001 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035033/0001 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035034/0019 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035033/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2014
From: JOKINEN, TOMMI M.; JAIN, NIKHIL; KALTHOFF, STEPHEN G.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034545/0690 →
Continuity (1)
Related Publication 20160179612A1 · Jun 23, 2016