IP Library Granted Patent US 7,886,090
Granted Patent B2
US 7,886,090 · App. 12/160,006 · Granted Feb 8, 2011

Method for managing under-runs and a device having under-run management capabilities

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 7,886,090
App. No.
12/160,006
Granted
Feb 8, 2011
Kind
B2
Abstract

A method for managing under-runs and a device having under-run management capabilities. The method includes retrieving packets from multiple buffers, monitoring a state of a multiple buffers, determining whether an under-run associated with a transmission attempt of a certain information frame from a certain buffer occurs; if an under-run occurs, requesting a certain information frame transmitter to transmit predefined packets while ignoring packets that are retrieved from the certain buffer, until a last packet of the information frame is retrieved from the certain buffer; and notifying a processor that an under-run occurred after at least one predefined packet was transmitted; wherein each buffer out of the multiple buffers is adapted to store a fraction of a maximal sized information frame.

Claims (18)

1. A device having under-run management capabilities, the device comprises: a processor; a memory unit; a direct memory access controller; multiple information frame transmitters; multiple buffers coupled to the multiple information frame transmitters and to multiple under-run logics; wherein each buffer is adapted to store a fraction of a maximal sized information frame; wherein a certain under-run logic out of the multiple under-run logics is coupled to a certain buffer out of the multiple buffers, and to a certain information frame transmitter out of the multiple information frame transmitters; and wherein the certain under-run logic is adapted to: (i) detect an occurrence of a buffer under-run associated with a transmission attempt of a certain information frame from the certain buffer, (ii) instruct the certain frame transmitter to transmit predefined packets until a last packet of the certain information frame is retrieved from the certain buffer and (iii) send to the processor an under-run indication after at least one predefined packet was transmitted; wherein the certain under-run logic is adapted to detect the occurrence of the buffer under-run if the last packet that belongs to the certain information frame was not retrieved from the certain buffer, if the certain frame transmitter expects to receive information from the certain buffer and if a buffer fullness level reaches a predefined minimal level.

2. The device according to claim 1 wherein the certain under-run logic is adapted to send an under-run indication to the processor when a transmission of the certain information frame ends or after an end of the transmission of that certain information frame.

3. The device according to claim 1 wherein the processor is adapted to instruct the direct memory access controller to initialize a transfer of the certain information frame from the memory unit to the certain buffer in response to a reception of the under-run indication.

4. A device having under-run management capabilities, the device comprises: a processor; a memory unit; a direct memory access controller; multiple information frame transmitters; multiple buffers coupled to the multiple information frame transmitters and to multiple under-run logics; wherein each buffer is adapted to store a fraction of a maximal sized information frame; wherein a certain under-run logic out of the multiple under-run logics is coupled to a certain buffer out of the multiple buffers, and to a certain information frame transmitter out of the multiple information frame transmitters; and wherein the certain under-run logic is adapted to: (i) detect an occurrence of a buffer under-run associated with a transmission attempt of a certain information frame from the certain buffer, (ii) instruct the certain frame transmitter to transmit predefined packets until a last packet of the certain information frame is retrieved from the certain buffer and (iii) send to the processor an under-run indication after at least one predefined packet was transmitted; wherein the memory unit comprises: a second level memory unit and a first level memory unit; wherein the direct memory access controller comprises a first level direct memory access controller and a second level direct memory access controller; wherein the first level memory unit is coupled to the first and second level direct memory access controllers; and wherein a transmission of the certain information frame comprises multiple information packet transfers from the second level memory unit to the first level memory unit and from the first level memory unit to the certain buffer.

5. The device according to claim 1 wherein each buffer out of the multiple buffers is coupled to one information frame transmitter out of the multiple information frame transmitters, and to one under-run logic out of the multiple under-run logics.

6. The device according to claim 1 wherein the multiple information frame transmitters are intermediate layer transmitters and wherein the multiple information frame transmitters are coupled to multiple communication lines via lower layer transmitters.

7. The device according to claim 1 wherein each buffer out of the multiple buffers can store less than ten percent of a maximal sized information frame.

8. The device according to claim 1 wherein the information frame transmitters are adapted to transmit information frames at a very high transmission rate.

9. The device according to claim 1 wherein the certain under-run logic is adapted to instruct the certain information frame transmitter to ignore information packets retrieved from the certain buffer.

10. A method for managing under-runs, the method comprises: retrieving packets from multiple buffers and monitoring a state of multiple buffers; determining whether an under-run associated with a transmission attempt of a certain information frame from a certain buffer occurs; if an under-run occurs, requesting a certain information frame transmitter to transmit predefined packets, until a last packet of the information frame is retrieved from the certain buffer; and notifying a processor that the under-run occurred after at least one predefined packet was transmitted; wherein each buffer out of the multiple buffers is adapted to store a fraction of a maximal sized information frame; wherein the determining comprises determining an occurrence of the under-run if the last packet that belongs to the certain information frame was not retrieved from the first buffer, if the certain frame transmitter expects to receive information from the first buffer and if a fullness level of the certain buffer reaches a predefined minimal level.

11. The method according to claim 10 wherein the stage of requesting is followed by transmitting the predefined packets by the information frame transmitter; and wherein the stage of notifying comprises notifying the processor when a transmission of the certain information frame ends or after the end of the transmission of that certain information frame.

12. The method according to claim 10 wherein the stage of notifying is followed by requesting, by the processor, a direct memory access controller to initialize a transfer of the certain information frame from a memory unit to the certain buffer.

13. A method for managing under-runs, the method comprises: retrieving packets from multiple buffers and monitoring a state of multiple buffers; determining whether an under-run associated with a transmission attempt of a certain information frame from a certain buffer occurs; if an under-run occurs, requesting a certain information frame transmitter to transmit predefined packets, until a last packet of the information frame is retrieved from the certain buffer; and notifying a processor that the under-run occurred after at least one predefined packet was transmitted; wherein each buffer out of the multiple buffers is adapted to store a fraction of a maximal sized information frame; wherein the retrieving is preceded by sending information packets from a second level memory unit to virtual buffers maintained by a first level memory unit.

14. The method according to claim 13 comprising sending information packets at least ten times in order to send a single information frame.

15. The method according to claim 10 wherein the transmitting comprises sending the predefined packets to lower layer transmitters and transmitting the information packets from the lower layer transmitters to communication lines.

16. The method according to claim 10 wherein the transmitting comprises transmitting information frames at a very high transmission rate.

17. The method according to claim 10 wherein the requesting further comprises requesting the certain information frame transmitter to ignore packets that are retrieved from the certain buffer.

18. The method according to claim 17 wherein the transmitting includes sending the predefined packets to the information frame transmitter.

Assignments (16)
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 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 →
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 037354/0757 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: ZENITH INVESTMENTS, LLC
To: APPLE INC.
Reel/Frame 034749/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: ZENITH INVESTMENTS, LLC
Reel/Frame 033687/0336 →
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: ALANKRY, YARON; GLICKMAN, ERAN; PARNES, EREZ
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 024019/0985 →
SECURITY AGREEMENT Recorded Dec 9, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 021936/0772 →