Methods and apparatus for isochronous data delivery within a network
Abstract
Methods and apparatus for efficiently servicing isochronous streams (such as media data streams) associated with a network. In one embodiment, an Isochronous Cycle Manager (ICM), receives multiple independent streams of packets that include isochronous packets arriving according to different time bases (e.g., where each stream has a different time base). The packets are sorted by the ICM into a buffering mechanism according to their required presentation time. Additionally the ICM calculates a launch time for each packet. The NIC transmits the packets from the queue according to an access scheme, such as a time division multiplexed (TDM) scheme where each of a plurality of cycles is subdivided into time slots. During appropriate time slots, the NIC transmits the packets in chronological order, as read out of the buffering mechanism.
Claims
exact text as granted — not AI-modified1 . A method of managing a plurality of isochronous processes, the method comprising:
receiving multiple isochronous data streams, each isochronous data stream comprising a plurality of isochronous data packets, each packet having a presentation time associated therewith; sorting each isochronous data packet according to the presentation time; calculating a launch time for each isochronous data packet of the multiple isochronous data streams; and transmitting the isochronous data packets according to the launch time.
2 . The method of claim 1 , additionally comprising:
receiving asynchronous data packets; and transmitting the asynchronous data packets.
3 . The method of claim 2 , additionally comprising sorting the asynchronous data packets with the isochronous data packets.
4 . The method of claim 2 , wherein a first portion of transmission bandwidth is reserved for isochronous data packets, and a second portion of transmission bandwidth is reserved for asynchronous data packets.
5 . The method of claim 1 , wherein the act of sorting comprises storing the isochronous data packets in a ring buffer according to presentation time.
6 . The method of claim 1 , wherein at least one of the multiple isochronous data streams comprises video data.
7 . The method of claim 6 , wherein at least one of the multiple isochronous data streams comprises audio data.
8 . The method of claim 1 , wherein at least one of the multiple isochronous data streams has a time base that differs from a master time base.
9 . The method of claim 8 , wherein the act of calculating comprises adjusting the launch time of the isochronous data packets according to the master time base.
10 . A method of reconstructing a plurality of isochronous processes, the method comprising:
receiving one or more unreserved time slots of packet data, the one or more unreserved time slots comprising a plurality of packets transmitted in chronological order, at least one of the plurality of packets having a presentation time associated therewith; extracting the at least one packet; and presenting the at least one packet at the associated presentation time.
11 . The method of claim 10 , wherein the at least one packet comprises an isochronous data packet.
12 . The method of claim 10 , where at least one other packet of the plurality of packets comprises an asynchronous data packet.
13 . The method of claim 10 , wherein only a subset of the plurality of packets have a presentation time associated therewith.
14 . The method of claim 13 , additionally comprising storing the subset of the plurality of packets in order of arrival into a First-In-First-Out buffer.
15 . The method of claim 10 , wherein the at least one packet comprises video data.
16 . The method of claim 10 , wherein the at least one packet comprises one or more subpackets of data.
17 . The method of claim 16 , wherein the one or more subpackets of data comprise a video subpacket and an audio subpacket.
18 . A network interface apparatus, comprising:
a transmission queue configured to transmit a plurality of slots of data at a designated time; a data interface configured to receive a plurality of isochronous data streams, the plurality of isochronous data streams comprising one or more different time references; a network interface clock, the network interface clock configured to generate a designated time reference; and at least one controller configured to:
extract one or more data packets from the plurality of isochronous data streams;
sort the one or more data packets based at least in part on a presentation time;
calculate a launch time for each of the one or more data packets; and
transmit the slots of data at the calculated launch time.
19 . The network interface apparatus of claim 18 , wherein the determined launch time is based at least in part on a difference between the one or more different time references and the designated time reference.
20 . The network interface apparatus of claim 18 , additionally comprising assigning the sorted one or more data packets to a slot of data.
21 . A method of processing isochronous data streams, the method comprising:
receiving multiple isochronous data streams, each isochronous data stream comprising a plurality of isochronous data packets; determining a sorting criterion for the multiple isochronous data streams; sorting at least a portion of the isochronous data packets in each stream according to the determined sorting criterion to produce a sorted order of data packets; and transmitting the isochronous data packets according to the sorted order.
22 . The method of claim 21 , additionally comprising:
receiving asynchronous data packets; sorting the asynchronous data packets with the isochronous data packets according to at least one of (i) the sorting criterion; and/or (ii) a second sorting criterion, to produce a sorted order of asynchronous packets; and transmitting the sorted order of asynchronous data packets.
23 . The method of claim 21 , wherein the sorting criterion is at least temporally based.
24 . The method of claim 21 , wherein the sorting criterion is based at least in part on a priority.
25 . The method of claim 21 , wherein at least one of the multiple isochronous data streams comprises both video and audio data.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.