Framing algorithm for bit interleaved time division multiplexer

Abstract: Methods are provided for multiplexing a plurality of channels onto a sub-aggregate of and aggregate line so as to substantially minimize total frame length. In a preferred method, channel data rates are expressed as a sum of a plurality of predetermined subchannel data rates, and the number of times each predetermined subchannel data rate is used to express a channel data rate of a channel to be multiplexed is accumulated. Given a predetermined primary frame rate (P) such as 8Khz for a DACS compatible multiplexer, and a tertiary frame rate (T) chosen as the greatest common denominator of the subchannel data rates, an optimal secondary frame rate (S) may be found by minimizing for a plurality of different secondary frame rates the sum of (P/S)F1 plus (S/T)F2, where F1 represents the number of calls of the primary frame to the secondary frame, and F2 represents the number of calls of the secondary frame to the tertiary frame. Where different primary frame rates may be used, the sum of (A/P) plus (P/S)F1 plus (S/T)F2 is minimized to find primary and secondary frame rates which will permit an optimally small total frame length, given the sub-aggregate rate A.

Description: BACKGROUND This invention generally relates to a multiplexing method for a bit interleaved time division multiplexer (TDM), and more particularly to an efficiency maximizing framing algorithm for a bit interleaved TDM which is compatible with a digital access cross-connect system (DACS). The process of "framing", as known to those skilled in the art, is the process or mechanism of multiplexing a number of channels of varied rates onto a single aggregate line with proportional time allocation, The task undertaken by the framing mechanism is the time division and programming of a "framing RAM" hardware such that the hardware can continuously and periodically repeat a set of instructions. For example, if three channels having rates of 12⊘⊘, 24⊘⊘, and 48⊘⊘ baud are to be multiplexed onto an aggregate line of 96⊘⊘ baud, in accord with techniques known in the art, a common factor between the channel rates (the least common denominator) may be found, and this common factor will determine the length of the frame (or "frame length"). In the provided example, the common factor would be 12⊘⊘, as each channel is divisible by that number. Thus, the 96⊘⊘ aggregate line would have eight slots (96⊘⊘/12⊘⊘): one slot (12⊘⊘/12⊘⊘) being occupied by the 12⊘⊘ baud channel; two slots (24⊘⊘/12⊘⊘) by the 24⊘⊘ baud channel; and four (48⊘⊘/12⊘⊘) slots by the 48⊘⊘ baud channel. The extra slot could be used for various purposes such as null data, synchronization, etc. If additional channels having baud rates of 75 and 4⊘⊘ were added to the stated example, the aggregate line could accommodate them, as 122 baud was unused. However, it will be appreciated that the least common denominator instead being 12⊘⊘, would drop to 25. The the 96⊘⊘ aggregate would be divided into 384 slots (i.e. 96⊘⊘/125) as opposed to the original 8 slots. In reality, aggregates as high as 2.⊘48 MHz are common, with least common denominators of 25 Hz being common. As a result, a frame could have 81,92⊘ slots with the same number of associated words being located in the frame RAM. Clearly, such a large memory would be disadvantageous both from an economic and a processing viewpoint. In response to this problem, a mechanism of repeating and "non-repeating" (also known as frames and superframes, or subframe and frames) which is discussed in commonly-owned U.S. Patent 4,727,536 has been set forth to keep the frame length down. Thus, in the above-provided example, a repeating frame rate of 6⊘⊘ Hz could be utilized so that the frame would have sixteen slots (96⊘⊘/6⊘⊘) while a superframe of 25 Hz could be utilized to multiplex the 75 Hz and 4⊘⊘ Hz channels onto the 6⊘⊘ Hz repeating frame. The superframe would have twenty-four slots, for a total of forty RAM frame words instead of the 384 previously required. While the previously provided techniques have proved advantageous, there still exists an uncertainty as to selecting the repeating frame rate. For instance, while 6⊘⊘ Hz was chosen in the above example, it is possible that 8⊘⊘ or 12⊘⊘ Hz would have been a better rate, at least in terms of minimizing frame RAM length. Moreover, in many framing algorithms of the art, where an attempt at framing fails due to the unavailability of enough RAM, the lowest rate channel is deleted and another framing is attempted. However, as will be appreciated by those skilled in the art after review of the instant disclosure, it is possible that by including a plurality of subframes (e.g. secondary and tertiary frames), and by optimizing the frame rates, that a given circumstance which would have given rise to a framing failure, can be accommodated. SUMMARY OF THE INVENTION It is therefore an object of the invention to provide a multiplexing method using a framing algorithm which determines optimal frame rates at which a plurality of channels of diverse rates are multiplexed onto a time division multiplexed aggregate or sub-aggregate line. The invention provides a method for multiplexing a plurality of channels onto an aggregate line, comprising determining different channel rates and finding their greatest common denominator, characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining and expressing the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates over the plurality of channels, wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as the tertiary frame rate; and c) given a predetermined sub-aggregate rate and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining suitable primary and secondary frame rates by finding and minimising for a plurality of primary and secondary frame rates a sum of (1) A/P (2) (P/S) F1 where F1 represents a number of calls of a primary frame of frame rate to a secondary frame of frame rate, and (3) (S/T) F2 where F2 represents a number of calls of a secondary frame of frame rate to a tertiary frame of frame rate. The invention also provides a method for multiplexing a plurality of channels onto an aggregate line in which optimal frame rates are determined in one pass, the method comprising determining different channel rates and finding their greatest common denominator, and being characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining and expressing the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates of the plurality of channels wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as a tertiary frame rate; and c) given a predetermined frame rate, and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining an efficient secondary frame rate by finding and minimising for a plurality of secondary frame rates a sum of at least (1) ((P/S) + r) F1 where F1 represents a number of calls of a primary frame of frame rate P to a secondary frame of frame rate and r is a variable chosen based on a method of storing framing information; and (2) ((S/T) + r) F2 where F2 represents a number of calls of the secondary frame of frame rate to a tertiary frame of frame rate T which equals a sum of each predetermined sub-channel data rate less than the secondary frame rate times respective accumulated numbers for each predetermined subchannel data rate divided by the secondary frame rate. The invention further provides a method for multiplexing a plurality of channels onto an aggregate line, comprising determining different channel rates and finding their greatest common denominator, the method being characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining and expressing the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates over the plurality of channels wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as a tertiary frame rate; c) given a predetermined sub-aggregate rate and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining suitable primary and secondary frame rates by finding and minimising for a plurality of primary and secondary frame rates a sum of (1) A/P (2) ((P/S) + r) F1 where F1 represents a number of calls of a primary frame of frame rate to a secondary frame of frame rate and r is a variable based on a method of storing framing information, and (3) ((S/T + r) F2 where F2 represents a number of calls of the second frame of frame rate to a tertiary frame of frame rate; d) repeating steps a) to c) for at least one second plurality of predetermined subchannel rates including at least one different predetermined subchannel rate; and e) comparing respective minimum sums determined at step c) for each of the plurality of predetermined subchannel rates to find a minimum of the minimum sums. In an embodiment of the invention to be described herein, use is made of a framing algorithm which provides optimal frame rates for a plurality of frames in a one pass method. The framing algorithm provides, in a simple and straight-forward manner, optimal frame rates for the primary frame, secondary frame, and tertiary frame. The method is used for multiplexing a plurality of channels onto a DACS network. The method is such that the frame RAM required to store the framing information is kept to a minimum. Where the aggregate line is part of a DACS system, the primary frame rate is preferably chosen as 8Khz (i.e. one bit of a DS1 frame) so that each 8 Khz component can be mapped onto a DS1 frame. The tertiary rate is often chosen to be 25Hz as the 25Hz rate is a common greatest denominator rate for many of the common data rates. With an 8Khz primary frame rate and a 25Hz tertiary frame rate, common secondary frame rates include 8⊘⊘hz and 1.6Khz. Regardless of the secondary frame rate, with the fixed primary and tertiary rates, the time and calculations required to "frame up" are kept very small. In choosing the subchannel rates, account must be taken of all the possible standard channel rates as well as the aggregate rate. In reviewing the standard rates of today, at least two families of subchannel rates present themselves: 25 times 2 to the n power, when n is an integer greater than or equal to zero; and 125 times 2 to the n power. In optimizing the frame length, each of the subchannel rate families can be used for the predetermined subchannel data rates, and the determined total use of RAM length for each family can be compared. Also, if desired, the subchannel rate families may be combined, or at least a basic rate (e.g. 25 hz) may be used as a base for the 125 times 2 to the n power family to further optimize the frame length. Preferably, prior to arranging and determining the primary, secondary, and tertiary frames, the total bandwidth requested by all the channels to be multiplexed is summed and subtracted from the available sub-aggregate bandwidth to provide a determination of the unused bandwidth. The unused bandwidth is then expressed as a sum of the predetermined subchannel data rates. Also, preferably, each predetermined subchannel data rate is a multiple factor of the others. Where a channel does not have a standard bandwidth which can be expressed as a sum of predetermined subchannel data rates, the bandwidth for the non-standard channel is preferably rounded to the next highest standard channel rate so that a proper determination of the optimal primary and secondary frame rates can proceed. Further, if desired, further frames such as fourth and fifth frames might be utilized for frame length optimization. Practically, however, utilization of additional frame RAMS beyond the primary, secondary, and tertiary becomes unviable due to the time required to access additional layers of frame. Other objects and advantages of the invention will become evident upon reference to the detailed description in conjunction with the provided figures. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a flow diagram of the framing algorithm method of the invention; Figures 2a and 2b are charts showing common channel rates and their relationship to a plurality of common subchannel data rates; Figure 3a is a chart relating a set of example channels to a subset of common subchannel data rates; Figure 3b is a chart showing the relationship of primary, secondary and tertiary frame rates with a primary, secondary and tertiary frame lengths using the example of Figure 3a, and providing a one pass optimal solution in terms of total frame RAM; and Figure 3c is a chart showing the relationship of primary, secondary and tertiary frame rates using the example of Figure 3a, which together with Figure 3b indicates a one pass optimal solution in terms of total frame RAM where both the primary and secondary frame rates may vary. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT In providing any framing algorithm for a multiplexer, several conditions must always be satisfied. For example, the total bandwidth of the channels being multiplexed may never exceed the bandwidth of the aggregate line onto which they are being multiplexed. Also, the total frame length(s) must not exceed the amount of memory available to store the frame information. Further, the number of times a channel is called in a frame should always be an integer number; i.e. the frame rate divided by the channel rate should be an integer number. Starting with these conditions or constraints, it is clearly beneficial to have a framing algorithm which both minimizes total frame length and which is quickly determinable. Turning to Figure 1, the preferred method for efficiently multiplexing a plurality of channels onto a sub-aggregate of an aggregate line is provided in flow chart form. At 12, (and 14), each channel rate is compared to a list of permissible common channel rates (seen in Figures 2a and 2b) to determine whether the channel rate appears in that list. If the channel rate is not a common rate (i.e. it does not have a standard bandwidth which can be expressed as a sum of certain predetermined subchannel data rates), the bandwidth for the non-standard channel is preferably rounded to the next highest standard channel rate at 16. With each channel now guaranteed to have a standard rate, at 17 the sum of the data rates is checked to make sure that the aggregate rate is not exceeded. If the aggregate rate is exceeded, an error message is provided at 18 and the user is returned to the start of the program. If the aggregate rate is not exceeded, excess bandwidth is calculated at 19. Then at 2⊘, each channel (the excess bandwidth being treated as a channel) is expressed as a sum of a plurality of predetermined subchannel data rates. The breaking down of each channel rate may be accomplished either by reference to a look-up chart such as is shown in Figures 2a and 2b, or by division of the channel rate by predetermined values. As shown in Figures 2a and 2b, almost all common channel rates (e.g. 75, 1⊘⊘, 15⊘, 2⊘⊘, 3⊘⊘, 4⊘⊘, 6⊘⊘, 8⊘⊘,...) may be expressed as the sum of one or more common subchannel factors (25, 5⊘, 1⊘⊘, 125, 2⊘⊘,...). In fact, in reviewing the common channel rates of today, it should be appreciated that the channel rates may be expressed as the sum of 25 times 2 to the n power, where n is an integer greater than or equal to zero, plus 125 times 2 to the n power. Thus, two families of subchannel rates immediately present themselves for use: 25 times 2 to the n power, and 125 times 2 to the n power. A third family might be 75 times 2 to the n power. As will be seen hereinafter, depending on the circumstances, one or more of the families might be combined. Or depending on the channel rates of the channels to be multiplexed, all channels may be able to be expressed with rates from one or more single family. Regardless, it will be appreciated that since 25 Hz is the basic lowest common denominator of all common channel rates, the 25 times 2 to the n power family is a convenient family of subchannel rates. Also, where the aggregate line is part of a DACS system, a subchannel rate of 8Khz (i.e. one bit of a DS1 frame) is preferably chosen as a subchannel rate so that each 8 Khz component can be mapped onto a DS1 frame. An example of step 2⊘ where a channel is broken down into predetermined subchannel data rates is seen in Figure 3a, where the predetermined subchannel data rates are chosen as the 25 times 2 to the n Hz family (up to 16⊘⊘), and 8⊘⊘⊘ Hz. Several channels of differing data rates are indicated which are to be multiplexed onto an aggregate line of 64 kHz (a DS⊘ byte). In accord with step 14, an unused (idle) bandwidth of 1525 Hz is indicated. As indicated in Figure 3a, channel 3 which requires a bandwidth of 14.4 kHz is broken down into one 8⊘⊘⊘ Hz segment, and four 16⊘⊘ Hz segments. Channel 7, which requires a bandwidth of 6⊘⊘ Hz, is broken down into one 4⊘⊘ Hz and one 2⊘⊘ Hz segment. The other channels are also broken down accordingly. Returning to Figure 1, and in accord with the preferred embodiment of the invention, once all channels have been broken down into the subchannel components, the subchannel components are accumulated at 24 (as indicated in Fig. 3a); i.e. a determination is made as to the total number of times each predetermined subchannel data rate was used in the expression of all the channel data rates. Then, at 25 the greatest common denominator of the utilized subchannel rates is chosen as a tertiary frame rate. Of course, where all of the subchannel rates are of the same family, the greatest common denominator will be the lowest rate utilized. However, where subchannels of different families are utilized, the greatest common denominator must be found. Where the multiplexer to be framed is to be DACS compatible, the primary frame rate is preferably chosen to be 8 kHz because each 8 kHz component may be mapped as one bit onto a DS1 frame as aforementioned. With the primary frame rate and tertiary frame rate chosen, a determination is made at 3⊘ as which subchannel rate between the two may be optimally chosen as a secondary frame rate. In accord with the best mode of the invention, this determination may be made in a single pass. Thus, as seen in Figure 3b, determinations are made for each intermediate subchannel rate as follows: the secondary frame length given the primary frame rate,the particular secondary frame rate, and the total channel bandwidth less the primary frame rate; the tertiary frame length given the particular secondary frame rate, the determined tertiary frame rate, and the total channel bandwidth less than the particular secondary frame rate; and the sum of the secondary and tertiary (and primary, if desired) frame lengths for that particular secondary frame length. For example, in Fig. 3B, the total of the frame lengths for a primary frame rate of 8K, a secondary rate of 8⊘⊘ Hz, and a tertiary rate of 25 Hz was calculated as follows. The length of the primary frame (which is constant for any given primary rate) is equal to the aggregate rate 64K divided by the primary rate 8K; 64K/8K = 8. The length of the secondary frame is equal to the primary rate 8K divided by the secondary rate (here 8⊘⊘), times the number of calls from the primary frame to the secondary frame. With the channels of Fig. 3A, three such calls must be made. This is seen either by recognizing that the primary frame length is eight bu that only five 8K components are available (see Fig. 3A totals), or by summing the rates of components less than 8K (in this case 24K) and dividing by 8K; 24K/8K = 3. Thus, as seen in Fig. 3B for the secondary rate of 8⊘⊘ Hz, the secondary frame length is set equal to the primary rate divided by the secondary rate 8K/8⊘⊘ times the number of calls 24K/8K; yielding a product of 3⊘. The tertiary frame length is similarly calculated as the secondary frame rate (8⊘⊘) is divided by the tertiary frame rate (25) times the number of calls (24⊘⊘/8⊘⊘); yielding a product of 96. The sum of the primary, secondary, and tertiary frame lengths is then the sum 8 + 3⊘ + 96 = 134. By comparing the sum of the primary, secondary, and tertiary frame lengths required due to the choice of different secondary frame rates, a minimum can be found (as highlighted in Fig. 3B), and that minimum is considered the optimal solution. In fact, calculations need not be carried out for all subchannel rates intermediate the primary and tertiary frame rates, as once a local minimum is found, it may be shown that the rate associated with the local minimum is the optimal rate. In other words, by comparing the total frame length sum for a first secondary frame rate as opposed to a second secondary frame rate, if the frame length sum for the second secondary frame rate is less, the calculations must be repeated to compare the second against a third secondary frame rate. However, if the sum of the frame lengths for the third secondary frame rate, is greater than the frame length for the second secondary frame rate, the second secondary frame rate is determined as optimal, and no further calculations are required. Thus, for the example of Figures 3A and 3B, it will be appreciated that after calculating secondary and tertiary frame lengths for a secondary frame rate of 2⊘⊘ Hz, it would not be necessary to conduct additional calculations for secondary frame rates of 1⊘⊘ and 5⊘ Hz. As previously indicated, the secondary and tertiary frame lengths are not simply determined by dividing the primary frame rate by the secondary frame rate and the secondary frame rate by the tertiary frame rate respectively. Rather, the frame lengths might be a multiple of such quotients as the primary frame might have to call the secondary frame (or the secondary frame might have to call the tertiary frame) more than once due to the large number of low-rate channels. Thus, for the channels of Fig. 3A, and as indicated in Fig. 3B, three calls in the primary frame to the secondary frame would be required where the primary rate is set at 8Khz. Likewise, depending on the secondary rate, either three, two or one calls would be made by the secondary frame to the tertiary frame. For the optimal case of secondary rate of 4⊘⊘ Hz, three such calls would be required. While for a DACS compatibly multiplexer having a primary frame rate of 8Khz (DS1 bit), a single pass technique for finding an "optimal" secondary frame rate is extremely advantageous, it will be appreciated by those skilled in the art that where the primary frame rate is not set, optimal solutions having an even smaller total frame length are possible. Thus, different primary rates can each be analyzed for a multiple of different secondary rates, and the best solution can be found. For example, using the channels and aggregate examples of Fig. 3A, if primary frame rate of 16⊘⊘ Hz is utilized as indicated in Fig. 3C, a minimization of total frame length (eighty slots) occurs with a secondary frame rate of 2⊘⊘ Hz. While additional primary frame rates of 8⊘⊘ Hz and less can also be tested, those skilled in the art will appreciate that the total frame length of eighty slots for all three frames found for the primary rate of 16⊘⊘ Hz and secondary frame rate of 2⊘⊘ Hz is a minimum. This is apparent from the fact that at an aggregate rate of 64 Khz, any primary frame rate of 8⊘⊘ Hz or less requires at least eighty slots for the primary frame alone. Further optimization beyond that indicated by Figures 3B and 3C can be obtained by creating a quaternary frame with a fourth frame rate, and even further frames with their own frame rates, and solving for rates which would minimize the total frame length. However, while the provision of additional subframes minimizes the total frame RAM required, the circuitry and timing required for such additional frames would greatly complicate any multiplexer using the same and would render such a multiplexer less effective and more costly given the present technology. While the channel rates of Figure 3A were expressed as the sum of predetermined subchannel rates of the group 25 times 2 to the n power (up to 16⊘⊘) plus an 8K subchannel rate, those skilled in the art will appreciate that the other groups of predetermined subchannel rates could be utilized. for example, all subchannel rates might be chosen so that they belong to a single group; e.g. 25 or 75 or 125 time 2 to the n power. Or, if desired, a mix of different groups may be chosen. If a mix of different groups is chosen, it is greatly preferable that the group families have a significant least common denominator (e.g. 25 Hz). Regardless, the aggregate must be divisible by the primary frame rate, the primary frame rate must be divisible by the secondary frame rate, and the secondary frame rate must be divisible by the tertiary frame rate. It should be appreciated that with the use of different families of subchannel rates, it is possible to further minimize the total frame RAM requirements as the optimal solutions for the different subchannel rate families or family combinations can be themselves compared to find a minimum. There has been described and illustrated herein methods for multiplexing a plurality of channels of diverse rates onto a time division multiplexed aggregate or sub-aggregate wherein the frame RAM required for storing the framing information is minimized taking into account the system requirements. While particular embodiments of the invention have been described it is not intended that the invention be limited thereto as it is intended that the invention be as broad in scope as the art will allow. Thus, while the particular example provided in Figure 3A required a tertiary frame rate of 25 Hz, for other combinations of channel rates, a greatest common denominator of 5⊘ or 1⊘⊘ Hz or greater might be available. Also, while a particular aggregate and group of subchannel rates were specified, other aggregate rates might better utilize a different group of subchannel rates as will be well appreciated by those skilled in the arts. It will further be appreciated, that while the total frame length was describe as being the sum of the primary, secondary, and tertiary frame lengths, where the primary rate is preset (e.g. as a DS⊘ bit = 8Khz), the primary frame length is a constant. Thus, in conducting a one pass minimization determination, only the sum of the secondary and tertiary frame lengths need be calculated and compared. In fact, depending on the coding and the arrangement in RAM (e.g. a bit is used with each word to point to which frame the next word is located), a word of RAM might not be required for each call of a superior frame (e.g. primary) to an inferior (e.g. secondary) frame. As a result, the total frame RAM length, rather than being a straight sum of the frame lengths calculated as in Fig. 3B, would subtract out the number of calls to inferior frames from the total. For example, the optimal solution of Fig.3C would require five fewer words, as the three calls from the primary to the secondary frame, and the two calls from the secondary to the tertiary frame would not require words in RAM. Further, in calculating the secondary frame lengths for different secondary rates, it will be appreciated that for a given primary frame rate the secondary frame length will double for each halving of the secondary frame rate. Thus, actual direct calculation of the secondary frame length for each secondary rate is unnecessary. Likewise, in calculating the secondary and tertiary frame lengths, many different approaches are possible. For example, instead of calculating the tertiary frame length by dividing the secondary rate by the tertiary rate, and multiplying that value by the sum of the subchannel components less than the secondary rate divided by the secondary rate, an example of a more direct calculation would be: the sub of the subchannel components less than said secondary frame rate divided by the tertiary rate. Therefore, it will be apparent to those skilled in the art that other changes and modifications may be made to the invention described without departing from the scope of the invention as so claimed.

Claims: A method for multiplexing a plurality of channels onto an aggregate line, comprising determining different channel rates and finding their greatest common denominator, characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining (19) and expressing (20) the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates over the plurality of channels (24), wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as the tertiary frame rate (T) (25); and c) given a predetermined sub-aggregate rate (A) and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining suitable primary (P) and secondary (S) frame rates (30) by finding and minimising for a plurality of primary and secondary frame rates a sum of (1) A/P (2) (P/S) F1 where F1 represents a number of calls of a primary frame of frame rate P to a secondary frame of frame rate S, and (3) (S/T) F2 where F2 represents a number of calls of a secondary frame of frame rate S to a tertiary frame of frame rate T. A method according to claim 1, wherein: in finding and minimising said sum of (1), (2), and (3), finding a local minimum of (2) plus (3) for each primary rate P, and comparing said local minima to provide a primary frame rate and a secondary frame rate which will require a minimum total frame length for primary, secondary, and tertiary frames required in multiplexing said plurality of channels. A method for multiplexing a plurality of channels onto an aggregate line in which optimal frame rates are determined in one pass, the method comprising determining different channel rates and finding their greatest common denominator, and being characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining (19) and expressing (20) the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates of the plurality of channels (24) wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as a tertiary frame rate (T) (25); and c) given a predetermined frame rate (P), and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining an efficient secondary (S) frame rate (30) by finding and minimising for a plurality of secondary frame rates a sum of at least (1) ((P/S) + r) F1 where F1 represents a number of calls of a primary frame of frame rate P to a secondary frame of frame rate S and r is a variable chosen based on a method of storing framing information; and (2) ((S/T) + r) F2 where F2 represents a number of calls of the secondary frame of frame rate S to a tertiary frame of frame rate T which equals a sum of each predetermined sub-channel data rate less than the secondary frame rate times respective accumulated numbers for each predetermined subchannel data rate divided by the secondary frame rate. A one pass method according to claim 3, wherein: said primary frame rate is chosen to be 8Khz. A method according to any of claims 1-4, further comprising: d) finding an odd channel whose rate cannot be expressed as a sum of said predetermined subchannel data rates; and e) allocating additional bandwidth to said odd channel so that said odd channel can be expressed as a sum of said plurality of predetermined subchannel data rates, wherein said odd channel with additional bandwidth is thereafter treated as any other of said plurality of channels. A method according to any of claims 1-5, further comprising: summing said data rates of said channels to provide a total rate sum; and subtracting said total rate sum from said sub-aggregate rate and expressing a positive difference as unused bandwidth, wherein said unused bandwidth is thereafter treated as any other of said plurality of channels. A method according to any of claims 1-6, wherein: and said predetermined subchannel data rates are chosen from at least one family of rates chosen from 25 times 2 to the n power Hz, 75 times 2 to the n power Hz, and 125 times 2 to the n power Hz. A method according to any of claims 3-7, wherein: in finding and minimising said sum of (1) and (2), finding a local minimum of (1) plus (2). A method according to any of claims 3-8, wherein: r is chosen as either one or zero. A method for multiplexing a plurality of channels onto an aggregate line, comprising determining different channel rates and finding their greatest common denominator, the method being characterised in that the plurality of channels are multiplexed onto a sub-aggregate of the aggregate line by finding and utilising primary, secondary and tertiary frame rates, where the greatest common denominator of the different channel rates is used to establish the tertiary frame rate, the method further comprising: a) obtaining (19) and expressing (20) the data rates of each of the channels as a sum of a plurality of predetermined subchannel data rates; b) accumulating the number of times each predetermined subchannel data rate is used to express the channel data rates over the plurality of channels (24) wherein the greatest common denominator of the predetermined subchannel data rates having an accumulated positive number is chosen as a tertiary frame rate (T) (25); c) given a predetermined sub-aggregate rate (A) and the channel data rates expressed as a sum of a plurality of predetermined subchannel data rates, determining suitable primary (P) and secondary (S) frame rates (30) by finding and minimising for a plurality of primary and secondary frame rates a sum of (1) A/P (2) ((P/S) + r) F1 where F1 represents a number of calls of a primary frame of frame rate P to a secondary frame of frame rate S and r is a variable based on a method of storing framing information, and (3) ((S/T + r) F2 where F2 represents a number of calls of the second frame of frame rate S to a tertiary frame of frame rate T; d) repeating steps a) to c) for at least one second plurality of predetermined subchannel rates including at least one different predetermined subchannel rate; and e) comparing respective minimum sums determined at step c) for each of the plurality of predetermined subchannel rates to find a minimum of the minimum sums. A method according to claim 10, wherein: in finding and minimising said sum of (1) plus (2) plus (3) for each plurality of predetermined subchannel rates, finding a local minimum of (1) plus (2) plus (3).

Inventors: BAINS KULDIP S, BAINS, KULDIP S.
Applicants: GEN DATACOMM IND INC, GENERAL DATACOMM, INC.
Application year: 1989
Main classification: H04J3
IPC codes: H04J3