Advanced priority statistical multiplexer
First Claim
1. A method for transmitting information, comprising the steps of:
- if there is pending high priority data and pending low priority data to be transferred, then sending a hybrid frame by the steps including;
(1) transmitting the pending high priority data;
(2) transmitting up to K bytes of the pending low priority data, K not to exceed an interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and
(3) transmitting further high priority data and low priority data by the steps including;
(i) if there is high priority data to be transferred, transmitting the high priority data, the high priority data preceded by a high priority data identifier; and
(ii) if there is low priority data to be transferred, transmitting up to K bytes of low priority data.
0 Assignments
0 Petitions
Accused Products
Abstract
A data multiplexing network is described which multiplexes a plurality of asynchronous data channels with an asynchronous data stream representing compressed voice signals and/or facsimile signals onto a single synchronous data packet stream. The single synchronous data packet stream is then transmitted by a high speed statistical multiplexer over a composite link to a second site using a modified high-level synchronous data link control protocol with an overlay of an advanced priority statistical multiplexing algorithm. The asynchronous data channels and the compressed voice channel and/or facsimile signals are demultiplexed and reconstructed for sending to other asynchronous computer terminals and to a standard telephone or facsimile analog port at the second site, respectively. PBX trunk interfaces are also provided to allow PBX'"'"'s to share the composite link between sites. Communication between the first site by voice or facsimile and the second site is transparent to the users. The multiplexer efficiently allocated the bandwidth of the composite link by detecting silence periods in the voice signals and suppressing the sending of the voice information to preserve bandwidth. An advanced priority statistical multiplexer is also described which dynamically allocates composite link bandwidth to both time-sensitive and non-time-sensitive data to maximize data throughout efficiency and quality while simultaneously reducing multiplexer processing overhead.
-
Citations
41 Claims
-
1. A method for transmitting information, comprising the steps of:
-
if there is pending high priority data and pending low priority data to be transferred, then sending a hybrid frame by the steps including;
(1) transmitting the pending high priority data;
(2) transmitting up to K bytes of the pending low priority data, K not to exceed an interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and
(3) transmitting further high priority data and low priority data by the steps including;
(i) if there is high priority data to be transferred, transmitting the high priority data, the high priority data preceded by a high priority data identifier; and
(ii) if there is low priority data to be transferred, transmitting up to K bytes of low priority data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
checking a memory for pending high priority data and pending low priority data to be transferred over a link.
-
-
3. The method of claim 1, further comprising the steps of:
-
if there is pending high priority data and no pending low priority data, then sending a high priority packet; and
if there is pending low priority data and no pending high priority data, then sending a low priority packet.
-
-
4. The method of claim 1, further comprising the step of transmitting a hybrid frame header.
-
5. The method of claim 1, further comprising the step of inserting a high priority data identifier preceding the high priority data.
-
6. The method of claim 1, wherein the step (3) of transmitting further high priority data and low priority data further comprises the step of:
(iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes.
-
7. The method of claim 1, wherein the step (3) of transmitting further high priority data and low priority data further comprises the step of:
(iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier.
-
8. The method of claim 1, wherein the step (3) of transmitting further high priority data and low priority data further comprises the step of:
(iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier, and (C) there is no pending low priority data for a set time interval.
-
9. The method of claim 1, wherein the high priority data includes voice data.
-
10. The method of claim 1, wherein the high priority data includes facsimile data.
-
11. The method of claim 1, wherein the high priority data includes video data.
-
12. The method of claim 1, wherein the step of (1) of transmitting the high priority data comprises the step of placing a byte count identifier preceding the high priority data.
-
13. The method of claim 1, further comprising the step of placing a frame identifier prior to any data.
-
14. The method of claim 1, further comprising the step of placing an error correction code in the hybrid frame.
-
15. The method of claim 1, wherein the interrupt boundary byte count is calculated by:
-
determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and
subtracting M from B to obtain an interrupt boundary byte count.
-
-
16. The method of claim 1, wherein the maximum number of high priority bytes generated per the high priority packet time is calculated by including a maximum number of high priority bytes generated for each channel passing through.
-
17. A method for transmitting information, comprising the steps of:
-
(a) checking a memory for pending high priority data and pending low priority data to be transferred over a link;
(b) if there is pending high priority data and no pending low priority data, then sending a high priority packet;
(c) if there is pending low priority data and no pending high priority data, then sending a low priority packet; and
(d) if there is pending high priority data and pending low priority data to be transferred, then sending a hybrid frame by the steps including;
(1) transmitting a hybrid frame header;
(2) transmitting the pending high priority data, the pending high priority data preceded by a high priority data identifier;
(3) transmitting up to K bytes of the pending low priority data, K not to exceed an interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and
(4) transmitting further high priority data and low priority data by the steps including;
(i) if there is high priority data to be transferred, transmitting the high priority data, the high priority data preceded by a high priority data identifier;
(ii) if there is low priority data to be transferred, transmitting up to K bytes of low priority data; and
(iii) repeating steps (i) and (ii) until one or more conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier, and (C) there is no pending low priority data for a set time interval. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and
subtracting M from B to obtain an interrupt boundary byte count.
-
-
25. A method for receiving information, comprising the steps of:
-
(1) detecting a hybrid frame;
(2) receiving a next byte in the hybrid frame;
(3) if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame;
(4) if the next byte in the hybrid frame is not a high priority identifier, receiving one or more bytes of low priority data, the number of low priority bytes not to exceed the interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and
(5) returning to step (2) until a last data byte of the hybrid frame is received. - View Dependent Claims (26, 27, 28, 29, 30, 31)
determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and
subtracting M from B to obtain the interrupt boundary byte count.
-
-
29. The method of claim 25, further comprising the step of decoding an error correction code to determine whether an error occurred.
-
30. The method of claim 25, wherein the step (3) of if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame, comprises the step of processing the one or more high priority data bytes.
-
31. The method of claim 25, wherein the step (4) of if the next byte in the hybrid frame is not a low priority identifier, receiving one or more bytes of low priority data, comprises the step of storing the one or more bytes of low priority data in a memory.
-
32. A method for receiving information, comprising the steps of:
-
(a) detecting an identifier to determine a type of packet being received;
(b) if a high priority packet is detected, receiving high priority data;
(c) if a low priority packet is detected, receiving low priority data; and
(d) if a hybrid frame is detected, receiving low priority data and high priority data by the steps including;
(1) receiving a next byte in the hybrid frame;
(2) if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame;
(3) if the next byte in the hybrid frame is not a high priority identifier, receiving one or more bytes of low priority data, the number of low priority bytes not to exceed the interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes;
(4) returning to step (1) until a last data byte of the hybrid frame is received; and
(5) error checking the low priority data using an error correction code from the hybrid frame;
wherein the high priority data is processed with a higher priority than the low priority data. - View Dependent Claims (33, 34, 35, 36)
determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and
subtracting M from B to obtain the interrupt boundary byte count.
-
-
35. The method of claim 32, wherein the step (3) of if the next byte in the hybrid frame is not a low priority identifier, receiving one or more bytes of low priority data, comprises the step of storing the one or more bytes of low priority data in a memory.
-
36. The method of claim 32, wherein the high priority data is processed as received and the low priority data is stored.
-
37. A method for multiplexing high priority data, intermediate priority data, and low priority data for transmission across a communications link, the link having a maximum bandwidth with a byte transfer period equal to an amount of time needed to transfer one byte of data over the communications link, the method comprising the steps of:
-
a. determining a high priority packet time;
b. determining a maximum number of bytes transferred in one high priority packet time;
c. determining a maximum number of high priority data bytes transferred in one high priority packet time;
d. subtracting the maximum number of high priority bytes from the maximum number of bytes to obtain an interrupt boundary byte count;
e. multiplexing high priority data, intermediate priority data, and low priority data, wherein the step of multiplexing includes the steps of;
1. if there is high priority data, transmitting the high priority data;
2. transmitting J bytes of intermediate priority data and low priority data, wherein J is not greater than the interrupt boundary byte count; and
3. returning to step 1. - View Dependent Claims (38, 39)
-
-
40. A method for demultiplexing, comprising the steps of:
-
if high priority data is detected, receiving the high priority data;
if intermediate or low priority data is detected, checking one byte after a number of intermediate or low priority data bytes to determine if following data is high priority data, the number equal to an interrupt boundary byte count; and
repeating the above steps until all data is demultiplexed, further wherein the interrupt boundary byte count is calculated, comprising the steps of;
determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and
subtracting M from B to obtain the interrupt boundary byte count.
-
-
41. A method for demultiplexing, comprising the steps of:
-
if high priority data is detected, receiving the high priority data;
if intermediate or low priority data is detected, checking one byte after a number of intermediate or low priority data bytes to determine if following data is high priority data, the number equal to an interrupt boundary byte count; and
repeating the above steps until all data is demultiplexed, further comprising the steps of;
setting a intermediate or low priority byte count;
terminating the demultiplexing of a particular frame of data once a number of intermediate or low priority packets equal to the intermediate or low priority byte count are demultiplexed from the particular frame.
-
Specification