IP Library Granted Patent US 8,510,482
Granted Patent B2
US 8,510,482 · App. 12/768,391 · Granted Aug 13, 2013

Data processing system having peripheral-paced DMA transfer and method therefor

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 8,510,482
App. No.
12/768,391
Granted
Aug 13, 2013
Kind
B2
Abstract

In a data processing system having a processor, a DMA controller, a peripheral, and a memory, a method includes initiating a DMA transfer between the peripheral and the memory, wherein the DMA transfer comprises N subsets of data to be transferred between the peripheral and the memory, N having a value of two or more; asserting, by the peripheral, an event status indicator each time an event is completed by the peripheral; in response to each assertion of the event status indicator, the peripheral, based on a data request enable signal from the DMA controller, performing one of asserting a data request signal provided to the DMA controller or providing an interrupt request to the processor; and in response to each assertion of the data request signal, the DMA controller initiating transfer of a next subset of data of the N subsets of data between the memory and the peripheral.

Claims (45)

1. In a data processing system having a processor, a direct memory access (DMA) controller, a peripheral that is distinct from the DMA controller, and a memory, a method comprising:

asserting a request enable signal, by the DMA controller, which initiates a data transfer between the peripheral and the memory, wherein the data transfer comprises N subsets of data to be transferred between the peripheral and the memory, N having a value of two or more;

while the request enable signal is asserted, the peripheral asserting a data request signal to request transfer of a next subset of data within the N subsets of data;

in response to the asserting of the data request signal, the DMA controller initiating the transfer of the next subset of data between the memory and the peripheral;

after completion of the transfer of the next subset of data between the memory and the peripheral, the peripheral again asserting the data request signal to request transfer of a last subset of data within the N subsets of data;

in response to the again asserting the data request signal, the DMA controller initiating the transfer of the last subset of data between the memory and the peripheral, wherein the transfer of the last subset of data between the memory and the peripheral completes the data transfer;

deasserting the request enable signal, by the DMA controller, which provides an indication to the peripheral of the completion of the transfer of the last subset of data between the memory and the peripheral; and

after the peripheral receives the indication of the completion of the transfer of the last subset of data between the memory and the peripheral, the peripheral asserting an interrupt request that is provided to the processor to indicate the completion of the data transfer, whereas the interrupt request is not asserted by the peripheral prior to completion of the transfer.

2. The method of claim 1 , wherein the step of asserting the data request signal to request transfer of the next subset of data is performed in response to the request enable signal being asserted.

3. The method of claim 2 , wherein the step of again asserting the data request signal to request transfer of the last subset of data is performed in response to the request enable signal being asserted.

4. The method of claim 1 , wherein after the completion of the transfer of the next subset of data and prior to the again asserting the data request signal to request transfer of the last subset of data, the method further comprising:

performing, by the peripheral, a peripheral function; and

indicating, by the peripheral, completion of the peripheral function.

5. The method of claim 4 , wherein the completion of the peripheral function is indicated by asserting an event status bit within the peripheral.

6. The method of claim 5 , wherein the step of again asserting the data request signal to request transfer of the last subset of data is performed in response to assertion of the event status bit.

7. The method of claim 4 , wherein the peripheral function comprises receiving the next subset from a source external to the peripheral or transmitting a previous subset of data from the N subsets of data external to the peripheral, wherein the previous subset of data is transferred from the memory to the peripheral prior to the transfer of the next subset of data.

8. The method of claim 1 , wherein the data processing system further includes an interrupt controller, and the method further comprises:

the interrupt controller receiving the interrupt request directly from the peripheral without involvement of the DMA controller, and the interrupt controller providing the interrupt request to the processor to indicate the completion of the data transfer.

9. In a data processing system having a processor, a direct memory access (DMA) controller, a peripheral that is distinct from the DMA controller, and a memory, wherein the peripheral provides a data request signal to the DMA controller and the DMA controller provides a data request enable signal to the peripheral, a method comprising:

asserting the data request enable signal, by the DMA controller, which initiates a data transfer between the peripheral and the memory, wherein the data transfer comprises N subsets of data to be transferred between the peripheral and the memory, N having a value of two or more;

asserting, by the peripheral, an event status indicator each time an event is completed by the peripheral;

in response to each assertion of the event status indicator and while the request enable signal is asserted, the peripheral asserting the data request signal provided to the DMA controller;

in response to an assertion of the event status indicator and a deassertion of the data request enable signal, the peripheral asserting an interrupt request that is provided to the processor without involvement of the DMA controller to indicate completion of the data transfer, whereas the interrupt request is not asserted by the peripheral prior to completion of the transfer;

in response to each assertion of the data request signal, the DMA controller initiating transfer of a next subset of data of the N subsets of data between the memory and the peripheral; and

in response to the DMA controller determining that the next subset of data is a last subset of data to be transferred between the memory and the peripheral, the DMA controller deasserting the data request enable signal.

10. The method of claim 9 , wherein the step of the DMA controller asserting the data request enable signal is performed in response to a configuration register bit.

11. The method of claim 10 , wherein the DMA controller deasserts the data request enable signal after initiating transfer of the last subset of data of the N subsets of data between the memory and the peripheral, wherein the transfer of the last subset of data between the memory and the peripheral completes the data transfer.

12. The method of claim 9 , wherein the interrupt request provided to the processor indicates completion of the data transfer.

13. The method of claim 9 , wherein the peripheral completing the event comprises receiving a subset of data of the N subsets of data from a source external to the peripheral or transmitting a subset of data of the N subsets of data external to the peripheral.

14. The method of claim 9 , wherein the data processing system further includes an interrupt controller, and the method further comprises:

the interrupt controller receiving the interrupt request directly from the peripheral without involvement of the DMA controller, and the interrupt controller providing the interrupt request to the processor to indicate the completion of the data transfer.

15. A data processing system, comprising:

a processor coupled to a system interconnect;

a memory coupled to the system interconnect;

a peripheral coupled to the system interconnect, the peripheral comprising a status indicator which is asserted each time a peripheral function is completed by the peripheral; and

a DMA controller coupled to the system interconnect and distinct from the peripheral, wherein the DMA controller asserts a data request enable signal which initiates a data transfer between the peripheral and the memory, wherein the data transfer comprises N subsets of data to be transferred between the peripheral and the memory, N having a value of two or more, and wherein the DMA controller deasserts the data request enable signal in response to determining that a next subset of data to be transferred is a last subset of data to be transferred;

wherein, in response to each assertion of the status indicator, the peripheral, based on the data request enable signal received from the DMA controller, performs one of:

asserting a data request signal which is provided to the DMA controller when the data request enable signal is asserted, wherein, in response to each assertion of the data request signal by the peripheral, the DMA controller initiates transfer of a next subset of data of the N subsets of data between the memory and the peripheral, or

when the data request enable signal is deasserted, asserting an interrupt request that is provided to the processor without involvement of the DMA controller to indicate completion of the data transfer, whereas the interrupt request is not asserted by the peripheral prior to completion of the transfer.

16. The data processing system of claim 15 , wherein the DMA controller asserts the data request enable signal in response to a configuration register bit.

17. The data processing system of claim 16 , wherein the DMA controller deasserts the data request enable signal after initiating transfer of the last subset of data of the N subsets of data between the memory and the peripheral, wherein the transfer of the last subset of data between the memory and the peripheral completes the data transfer.

18. The data processing system of claim 15 , wherein the peripheral comprises an external port, and wherein the peripheral performs the peripheral function by receiving a subset of data of the N subsets of data via the external port or by transmitting a subset of data of the N subsets of data via the external port.

19. The data processing system of claim 15 , wherein the peripheral comprises control storage circuitry which stores a current value of the data request enable signal and status storage circuitry which stores a current value of the status indicator.

20. The data processing system of claim 15 , further comprising:

an interrupt controller, which receives the interrupt request directly from the peripheral without involvement of the DMA controller, and which provides the interrupt request to the processor to indicate the completion of the data transfer.

Assignments (21)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
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 TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
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 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2010
From: CIRCELLO, JOSEPH C.; MITCHELL, JOHN D.; PHAN, SHEILAH C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 024296/0865 →