IP Library Patent Application 12279952
Patent Application
App. No. 12/279,952

Method and Device for Exchanging Data Using a Virtual Fifo Data Structure

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 None
App. No.
12/279,952
Abstract

A method and a device for exchanging data. The method includes: requesting the processor, by the data transfer controller, to initiate a transfer of multiple data chunks from the second memory unit to the Virtual FIFO data structure, in response to a status of the virtual FIFO data structure; sending the data transfer controller, by the processor a request acknowledgment and an indication about a size of a group of data chunks to be transferred to the virtual FIFO data structure; updating the state of the virtual FIFO data structure; transferring, by the second level DMA controller, the group of data chunks from the second memory unit to the virtual FIFO data structure; sending, by the processor a DMA completion acknowledgment indicating that the group of data chunks was written to the virtual FIFO data structure; and transferring, by a first level DMA controller, a data chunk from the virtual FIFO data structure to the hardware FIFO memory unit.

Claims (40)

1 . A device, comprising

a processor;

a hardware FIFO memory unit;

a first level DMA controller, a second level DMA controller, an first memory unit that stores at least one virtual FIFO data structure, wherein the first level DMA controller is coupled to the hardware FIFO memory unit and to the first memory unit and wherein the second level DMA controller is coupled to the first memory unit and to a second memory unit;

a data transfer controller, coupled to processor and to the first level DMA controller, wherein the data transfer controller initiates transfer of data chunks between the hardware FIFO memory unit and the virtual FIFO data structure and initiates transfers of multiple data chunks between the second memory unit and the virtual FIFO data structure;

wherein the processor is adapted to determine a size of a data block.

2 . The device according to claim 1 wherein the multiple data chunks comprise a data block.

3 . The device, according to claim 1 wherein the data transfer controller is adapted to request from the processor to manage a data transfer of multiple data chunks between the second memory unit and the virtual FIFO data structure, to receive an indication from the processor that the request was accepted as well as a indication of a size of a group of data chunks to be handled, and, in response to a state of at least the virtual FIFO data structure, request from the processor to manage a data transfer of other data chunks between the second memory unit and the virtual FIFO data structure.

4 . The device according to claim 3 wherein the processor is further adapted to send to the data transfer controller a group of data chunks transfer indication indicative that the group of data chunks was transferred between the second memory unit and the virtual FIFO data structure, wherein the processor is further adapted to send to the data transfer controller another group of data chunks transfer indication indicative that another group of data chunks was transferred between the second memory unit and the virtual FIFO data structure.

5 . The device according to claim 1 wherein the processor is adapted to receive requests to manage data transfers of multiple data chunks from multiple data transfer controllers.

6 . The device according to claim 5 wherein the processor is adapted to send multiple reception indications in an order that corresponds to an order of reception of the requests to manage data transfers of multiple data chunks.

7 . The device according to claim 1 wherein processor is adapted to indicate a size of the group of data chunks to be handled by the processor.

8 . The device according to claim 1 wherein the data transfer controller is adapted to look for a last data chunk indication within metadata associated with a data chunk and in response to determine that a data block was transferred.

9 . The device according to claim 1 wherein the first level DMA controller transfers data and metadata associated to the data over substantially the same lines.

10 . A method comprising:

transferring, by a first level DMA controller, a data chunk from a hardware FIFO memory unit to a virtual FIFO data structure;

transferring, by a second level DMA controller, a data block from the virtual FIFO data structure to a second memory unit;

wherein a data block comprises multiple data chunks;

determining, by a processor, a size of a data block;

instructing, by a data transfer controller, a first level DMA controller to initiate a transfer of the data chunk from the hardware FIFO memory unit to the virtual FIFO data structure in response to a state of the virtual FIFO data structure and to a state of the hardware FIFO memory unit;

requesting, by the data transfer controller, the processor to initiate a transfer of multiple data chunks from the virtual FIFO data structure to the second memory unit, in response to a status of the virtual FIFO data structure.

11 . The method according to claim 10 wherein the multiple data chunks comprise a data block.

12 . The method according to claim 10 further comprising monitoring the status of the virtual FIFO data structure, by the data transfer controller.

13 . The method according to claim 10 wherein the monitoring comprises looking for a last data chunk indication within metadata associated with a data chunk and in response determining that a data block was transferred.

14 . The method according to claim 10 wherein the transferring, by a first level DMA controller, data chunks comprises providing data and data chunks over substantially the same lines.

15 . The method according to claim 10 , wherein the method further comprises:

sending, by the processor a request acknowledgment and an indication about a size of a group of data chunks to be transferred from the virtual FIFO data structure;

updating the state of the virtual FIFO data structure and transferring, by the second level DMA controller, a group of data chunks from the virtual FIFO data structure to the second memory unit.

16 . The method according to claim 10 , further comprising looking for a last data chunk indication within metadata associated with a data chunk and in response determining that a data block was transferred.

17 . The method according to claim 10 , wherein the method comprises instructing, by multiple data transfer controllers, multiple first level DMA controllers to initiate multiple provisions of multiple data chunks from multiple hardware FIFO memory units in response to a state of at least one virtual FIFO data structure.

18 . A method comprising:

transferring, by the second level DMA controller, multiple data chunks from the second memory unit to the virtual FIFO data structure;

transferring, by a first level DMA controller, a data chunk from the virtual FIFO data structure to the hardware FIFO memory unit;

requesting, by the data transfer controller, the processor to initiate a transfer of multiple data chunks from the second memory unit to the Virtual FIFO data structure, in response to a status of the virtual FIFO data structure and instructing, by a data transfer controller, a first level DMA controller to initiate a transfer of a data chunk from the virtual FIFO data structure to the hardware FIFO memory unit in response to a state of the hardware FIFO memory unit.

19 . The method according to claim 18 further comprising:

sending, by the processor, a request acknowledgment and an indication about a size of a group of data chunks to be transferred to the virtual FIFO data structure;

updating the state of the virtual FIFO data structure; and

sending, by the processor a DMA completion acknowledgment indicating that the group of data chunks was written to the virtual FIFO data structure.

20 . The method according to claim 18 further comprising looking for a last data chunk indication within metadata associated with a data chunk and in response determining that a data block was transferred.

21 . The method according to claim 18 wherein the multiple data chunks comprise a data block.

Assignments (27)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
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 APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
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 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0757 →
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 May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2010
From: GRANIT, YORAM; KATZ, ADI; LIDJI, GIL
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 024019/0705 →
SECURITY AGREEMENT Recorded Dec 9, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 021936/0772 →