Communication device and communication method
US-2024267441-A1 · Aug 8, 2024 · US
US9800698B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9800698-B1 |
| Application number | US-201414327733-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jul 10, 2014 |
| Priority date | Jul 12, 2013 |
| Publication date | Oct 24, 2017 |
| Grant date | Oct 24, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems, methods, and other embodiments associated with ordering packets into a transmission order within a queue are described. According to one embodiment, an apparatus includes shaper logic configured to (i) respectively determine launch times for packets received from a host bus, and (ii) order the packets into a transmission order according to the launch times. The launch times are expected transmission times for the packets that are provided according to one or more attributes associated with each respective one of the packets. The apparatus includes a queue configured to store the packets in the transmission order for transmission onto a network in a single stream. The shaper logic is configured to merge the packets from multiple streams into the transmission order when providing the packets to the queue.
Opening claim text (preview).
What is claimed is: 1. An apparatus, comprising: a processor connected to memory; and shaper logic stored within the memory and executable by the processor, the shaper logic including a plurality of shapers where each shaper receives and stores a different packet stream of packets and where each of the shapers are configured to (i) respectively determine launch times for the packets received from a host bus, and (ii) order the packets into a transmission order according to the launch times, wherein the launch times are expected transmission times for the packets that are provided according to one or more attributes associated with each respective one of the packets; and a queue arbiter stored within the memory and executable by the processor, the queue arbiter including a multiplexer connected to each of the plurality of shapers, wherein the queue arbiter is configured to merge the packets from the plurality of shapers into a single queue and order the merged packets in the single queue based at least in part on the launch times of the packets; wherein the single queue includes a single buffer that is configured to store the packets from the queue arbiter in a merged transmission order; and a network arbiter stored within the memory and executable by the processor, the network arbiter being (i) connected to the single queue and (ii) configured to: release the packets from the single queue for transmission onto a network in a single combined stream in the merged transmission order; identify a conflict where a first packet of a first stream and a second packet of a second stream have a same launch time and, in response to identifying the conflict, set a toggle bit in the second packet; check that the launch time of the first packet matches a current time and transmit the first packet; and read the toggle bit set within the second packet, wherein based on the toggle bit, the second packet is transmitted immediately after transmission of the first packet from the first stream without checking a launch time of the second packet with the current time, wherein the second packet is assigned to the second stream different than the first stream. 2. The apparatus of claim 1 , further comprising: bus arbiter logic stored within the memory and executable by the processor, the bus arbiter logic configured to receive the packets from a host bus and provide the packets to the shaper logic, wherein the bus arbiter logic is configured to distribute the packets to the plurality of shapers within the shaper logic according to the one or more attributes of each packet, wherein the one or more attributes include a class of service, a priority or a bandwidth allocation, wherein the shapers are configured to calculate a launch time for one or more of the packets that are not time aware, and wherein packets that are not time aware are not sensitive to a delivery time at a client device. 3. The apparatus of claim 1 , wherein the toggle bit comprises a queue indicator indicative of a virtual queue associated with the second stream from which the second packet was received. 4. The apparatus of claim 1 , wherein a shaper is configured to: calculate a launch time for a not time aware packet according to an allocated bandwidth for the not time aware packet, a packet size of a previously transmitted packet with respect to the not time aware packet, and a launch time of the previously transmitted packet with respect to the not time aware packet. 5. The apparatus of claim 1 , wherein the single queue is a First-In First-out (FIFO) queue wherein the packets are input to the single queue based on the launch time of the packets, wherein the packets are assigned to virtual queues that are each associated with a different class of service, wherein the queue merges the packets together by combining the packets into the queue in the transmission order for being sent on the network. 6. The apparatus of claim 1 , wherein the shaper logic is configured to resolve a conflict between two of the packets with a launch time that is equal by selecting one of the two with a higher priority or class of service, and wherein the merged transmission order is a final order for providing the packets on the network in a single stream. 7. The apparatus of claim 1 , wherein the packets include multiple data streams received from a host bus, wherein each of the multiple data streams is assigned to one of a set of virtual queues that each have different transmission characteristics, wherein at least one of the multiple data streams includes packets for audio video bridging (AVB), and wherein packets for the set of virtual queues are stored in the queue in the transmission order before being released onto the network. 8. A method, comprising: distributing packets received from a host bus to a plurality of shapers according to one or more attributes of each of the packets for ordering; determining, in each of the plurality of shapers, launch times for the packets stored in the respective shaper; ordering the packets in each of the plurality of shapers into a transmission order according to the launch times of the packets in the respective shaper, wherein the launch times are expected transmission times for the packets, and wherein the launch times are provided according to the one or more attributes associated with each respective one of the packets; merging, by a queue arbiter connected to each of the plurality of shapers, the packets from each of the plurality of shapers into a single queue and ordering the merged packets in the single queue based at least in part on the launch times of the packets, wherein the single queue stores the packets from the queue arbiter in a merged transmission order; and releasing the packets from the single queue and transmitting the packets onto a network in a single combined stream in the merged transmission order; identifying a conflict where a first packet of a first stream and a second packet of a second stream have a same launch time and, in response to identifying the conflict, set a toggle bit in the second packet; checking that the launch time of the first packet matches a current time and transmit the first packet; and reading the toggle bit set within the second packet, wherein based on the toggle bit, the second packet is transmitted immediately after transmission of the first packet from the first stream without checking a launch time of the second packet with the current time, wherein the second packet is assigned to the second stream different than the first stream. 9. The method of claim 8 , wherein releasing the packets from the single queue includes releasing the packets on a first-in first-out basis, wherein releasing the packets includes releasing a packet of the packets from the queue when a launch time for the packet matches a current time and when the packet is next in the transmission order to be released. 10. The method of claim 9 , wherein releasing the packets includes releasing two consecutive packets in the transmission order that have a same launch time according to a toggle bit in a second of the two consecutive packets, and wherein the toggle bit indicates that the second packet has the same launch time as a previous packet that was already transmitted. 11. The method of claim 8 , further comprising: receiving the packets from the host bus, wherein the one or more attributes include a class of service, a priority or a bandwidth allocation, wherein storing the packets includes storing each whole packet of the packets in the single queue, wherein determining the launch times includes calculating a launch time for one or more of the packets that are not time aware, and wherein packe
Buffering arrangements · CPC title
in relation to timing considerations · CPC title
in the data link layer [OSI layer 2], e.g. HDLC · CPC title
at the source (reformatting of additional data in video distribution servers H04N21/2355) · CPC title
Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.