IP Library Granted Patent US 11,277,455
Granted Patent B2
US 11,277,455 · App. 16/430,457 · Granted Mar 15, 2022

Streaming system

Inventors: Dotan David Levi (Kiryat Motzkin, IL); Alex Vainman (Modiin, IL); Natan Manevich (Ramat Hasharon, IL); Nir Nitzani (Tel Aviv, IL); Ilan Smith (Kfar Ben Nun, IL); Richard Hastie (Nantwich, GB); Noam Bloch (Bat Shlomo, IL); Lior Narkis (Petah-Tikva, IL); Rafi Weiner (Kiryat Netafim, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L65/4092H04L47/2441H04L47/28H04L47/32H04L47/34H04L49/90H04L65/80H04L67/42H04L67/06
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 11,277,455
App. No.
16/430,457
Granted
Mar 15, 2022
Kind
B2
Abstract

A method including configuring a transmit process to store information including a queue of packets to be transmitted, the queue defining transmit process packets to be transmitted, each packet associated with a transmission time, and configuring a synchronization process to receive from the transmit process at least some of the information. The synchronization process performs one of: A) accessing a dummy send queue and a completion queue, and transmitting one or more of the transmit process packets in accordance with a completion queue entry in the completion queue, and B) sends a doorbell to transmission hardware at a time when at least one of the transmit process packets is to be transmitted, the synchronization process including a master queue configured to store transmission entries, each transmission entry including a transmit process indicator and an indication of transmit process packets to be transmitted. Related apparatus and methods are also described.

Claims (34)

1. A system comprising:

a processor comprising:

a transmit process configured to store information comprising a queue of packets to be transmitted, the queue of packets to be transmitted defining a plurality of transmit process packets to be transmitted, each of said plurality of transmit process packets to be transmitted being associated with a transmission time; and

a synchronization process being a distinct process from said transmit process and being configured to receive from said transmit process at least a portion of said information,

wherein the synchronization process is further configured to hold:

a plurality of null operation (NOP) work requests each operative to cause a fixed delay when processed;

at least one cross-process send enable work request operative, when processed, to send a doorbell to transmission hardware at a time when at least one of said plurality of transmit process packets is to be transmitted; and

a plurality of transmission entries, each transmission entry comprising: a transmit process indicator; and an indication of transmit process packets to be transmitted.

2. The system according to claim 1 and wherein the synchronization process is configured to perform the following: to access a dummy send queue and a completion queue, and to transmit one or more of the plurality of packets to be transmitted in accordance with a completion queue entry in the completion queue.

3. The system according to claim 1 and wherein the transmit process comprises a plurality of transmit processes, each of said plurality of transmit processes being configured to store information comprising a queue of packets to be transmitted, each said queue of packets to be transmitted defining a plurality of transmit process packets to be transmitted, each of said plurality of transmit process packets to be transmitted being associated with a transmission time.

4. The system according to claim 1 and wherein each transmission entry also comprises a time for transmission of said transmit process packets to be transmitted.

5. The system according to claim 4 and wherein the packets comprise video packets, and

each transmission entry also comprises a number of packets per frame and a number of frames per second.

6. The system according to claim 1 and also comprising a co-processor, wherein the synchronization process is instantiated in the co-processor.

7. The system according to claim 6 and wherein the co-processor includes an FTP or PTP client.

8. The system according to claim 6 and wherein the co-processor comprises a network interface card.

9. The system according to claim 8 and wherein the network interface card comprises the transmission hardware.

10. The system according to claim 6 and wherein the co-processor comprises an FPGA.

11. A method comprising:

configuring a transmit process to store information comprising a queue of packets to be transmitted, the queue of packets to be transmitted defining a plurality of transmit process packets to be transmitted, each of said plurality of transmit process packets to be transmitted being associated with a transmission time; and

configuring a synchronization process distinct from the transmit process to receive from said transmit process at least a portion of said information,

wherein the transmit process and the synchronization process are comprised in a processor, and

the synchronization process is further configured to hold:

a plurality of null operation (NOP) work requests each operative to cause a fixed delay when processed;

at least one cross-process send enable work request operative, when processed, to send a doorbell to transmission hardware at a time when at least one of said plurality of transmit process packets is to be transmitted; and

send a doorbell to transmission hardware at a time when at least one of said plurality of transmit process packets is to be transmitted, the synchronization process comprising a plurality of transmission entries, each transmission entry comprising: a transmit process indicator; and an indication of transmit process packets to be transmitted.

12. The method according to claim 11 and wherein the synchronization process accesses a dummy send queue and a completion queue, and transmits one or more of the plurality of packets to be transmitted in accordance with a completion queue entry in the completion queue.

13. The method according to claim 11 and wherein the transmit process comprises a plurality of transmit processes, each of said plurality of transmit processes storing information comprising a queue of packets to be transmitted, each said queue of packets to be transmitted defining a plurality of transmit process packets to be transmitted, each of said plurality of transmit process packets to be transmitted being associated with a transmission time.

14. The method according to claim 11 and wherein each transmission entry also comprises a time for transmission of said transmit process packets to be transmitted.

15. The method according to claim 14 and wherein the packets comprise video packets, and

each transmission entry also comprises a number of packets per frame and a number of frames per second.

16. The method according to claim 11 and wherein the synchronization process is instantiated in a co-processor.

17. The method according to claim 11 and wherein the co-processor comprises a network interface card.

18. The method according to claim 16 and wherein the co-processor comprises an FPGA.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2019
From: HASTIE, RICHARD; BLOCH, NOAM; NARKIS, LIOR; WEINER, RAFI
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 049682/0278 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2019
From: LEVI, DOTAN DAVID; VAINMAN, ALEX; MANEVICH, NATAN; NITZANI, NIR; SMITH, ILAN
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 049355/0151 →
Continuity (3)
Provisional Application 62793401 · Jan 17, 2019
Provisional Application 62681708 · Jun 7, 2018
Related Publication 20190379714A1 · Dec 12, 2019
Cited By (1)
US 12,379,742