IP Library Granted Patent US 8,914,550
Granted Patent B2
US 8,914,550 · App. 13/841,916 · Granted Dec 16, 2014

System and method for transferring data between components of a data processor

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,914,550
App. No.
13/841,916
Granted
Dec 16, 2014
Kind
B2
Abstract

A data processing device includes a plurality of devices, a processor core, a memory, and a queue manager. The processor core stores one or more commands in a command queue of the memory to be executed by the plurality of devices to implement a data transfer path. The queue manager stores a frame queue for each of the plurality of devices. Each frame queue includes a first field having a pointer to an address of the command queue, and a second field to identify a next-in-sequence frame queue. A first device stores a data descriptor in the frame queue of the second device to initiate a data transfer from the first device to the second device. The data descriptor includes a field to indicate an offset value from the address of the command queue to a location of a command to be executed by the second device.

Claims (48)

1. A method comprising:

determining, by a processor core, a sequence of a first plurality of devices as a first data transfer path;

storing a plurality of commands in a first command queue to be executed by the first plurality of devices during a traverse of the first data transfer path; and

assigning, by the processor core, a frame queue to each corresponding device of the first plurality of devices, wherein each frame queue includes a first field identifying an address of the first command queue, and a second field identifying a frame queue location corresponding to a next-in-sequence device of the first data transfer path.

2. The method of claim 1 , further comprising:

defining, by the processor core, a sequence of a second plurality of devices as a second data transfer path;

storing a plurality of commands in a second command queue to be executed by the second plurality of devices during a traverse of the second data transfer path; and

assigning, by the processor core, a frame queue for each of the second plurality of devices, wherein the each frame queue for each of the second plurality of devices includes a first field identifying an address of the second command queue, and a second field identifying a frame queue location corresponding to a next-in-sequence device of the second data path.

3. The method of claim 1 , further comprising:

storing, in a memory coupled to each of the first plurality of devices and the processor core, a data descriptor in a first-in-sequence frame queue of the first data path to initiate a data transfer along the first data transfer path, wherein the data descriptor comprises a field providing an offset value from the address of the first command queue to a location of a first-in-sequence command for a device of the first plurality of devices corresponding to the first-in-sequence frame queue.

4. The method of claim 3 , further comprising:

executing one or more commands in the first command queue by a device of the first plurality of devices;

updating the offset value in the second field of the data descriptor in response to executing the command; and

storing the data descriptor having the updated offset value in a next-in-sequence frame queue.

5. The method of claim 4 , wherein updating the offset value is based on a number of bytes corresponding to a length of the one or more commands.

6. The method of claim 1 , wherein the plurality of commands comprises: a first one or more commands for a first device of the first plurality of devices, and a second one or more commands for a second device of the first plurality of devices.

7. The method of claim 1 , wherein the plurality of commands comprises: a first command set for a first device of the first plurality of devices; and a second command set for a second device of the first plurality of devices.

8. The method of claim 7 , wherein the first command set and the second command set comprise commands having different lengths.

9. The method of claim 1 , wherein a next-in-sequence frame queue identified in the second field is different for each of the frame queues of each of the first plurality of devices.

10. The method of claim 1 , wherein a next-in-sequence frame queue identified in the second field is the same for two frame queues of the first plurality of devices.

11. A method comprising:

storing, by a processor core, a plurality of commands for a first plurality of devices of a first data transfer path, wherein the plurality of commands are stored in a first command queue, and the plurality of commands comprise at least one command for a first device and at least one command for a second device;

associating a frame queue for each of the first plurality of devices, wherein each frame queue comprises a first field having a pointer to a start address of the first command queue, and a second field identifying the frame queue corresponding to a next-in-sequence device of the first data transfer path; and

storing, in a memory coupled to the first device, the second device, and the processor core, a data descriptor in the frame queue of the second device to transfer data from the first device to the second device, wherein the data descriptor comprises a field providing an offset value from the start address of the first command queue to a location of a command to be executed by the second device.

12. The method of claim 11 , further comprising:

storing a plurality of commands in a second command queue to be executed by a second plurality of devices during a traverse of a second data transfer path; and

associating a frame queue for each of the second plurality of devices, wherein each frame queue includes a first field having a pointer to a start address of the second command queue, and a second field identifying a frame queue corresponding to a next-in-sequence device of the second data transfer path.

13. The method of claim 11 , further comprising:

executing one or more commands in the first command queue by the first device of the first plurality of devices;

updating the offset value in the second field of the data descriptor in response to executing the command; and

storing the data descriptor having the updated offset value in a next-in-sequence frame queue.

14. The method of claim 13 , wherein updating the offset value is based on a number of bytes corresponding to a length of the one or more commands.

15. The method of claim 11 , wherein a next-in-sequence frame queue identified in the second field is different for each of the frame queues of each of the first plurality of devices.

16. A data processing device comprising:

a plurality of devices each configured to execute one or more commands during a traverse of a data transfer path, wherein the data transfer path comprises the plurality of devices;

a processor core, coupled to the plurality of devices, and configured to define the plurality of devices as the data transfer path of the data processing device, and to define the one or more commands to be executed by each of the plurality of devices, wherein the one or more commands comprise at least one command for a first device of the plurality of devices and at least one command for a second device of the plurality of devices;

a memory, communicatively coupled to the processor core and each of the plurality of devices, and configured to store the one or more commands in a command queue; and

a queue manager, communicatively coupled to the processor core and each of the plurality of devices, and configured to store a frame queue for each of the plurality of devices of the data transfer path, wherein

each frame queue comprises a first field having a pointer to an address of the command queue and a second field to identify a next-in-sequence frame queue,

the first device of the plurality of devices is configured to store a data descriptor in the frame queue of the second device to initiate a data transfer from the first device to the second device of the plurality of devices, and

the data descriptor includes a field to indicate an offset value from the address of the command queue to a location of a command to be executed by the second device.

17. The data processor device of claim 16 , wherein the processor core is further configured to set the data transfer path for a first data type.

18. The data processor device of claim 17 , wherein the processor core is further configured to set a second data transfer path for a second data type.

19. The data processor device of claim 16 , wherein the first device of the plurality of devices is configured to:

execute one or more commands in the command queue and in response update the offset value in the second field of the data descriptor; and

store the data descriptor having the updated offset value in a next-in-sequence frame queue.

20. The data processor device of claim 19 , wherein a last device of the plurality of devices along the data transfer path is configured to:

execute a last command of the one or more commands in response to the data descriptor in a frame queue associated with the last device indicating that an error was detected in the data transfer path.

Assignments (22)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
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/0704 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0744 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0725 →
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 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030445/0737 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0709 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2013
From: JOKINEN, TOMMI M.; KRAMER, DAVID B.; XU, KUN
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 030222/0397 →