(57)【特許請求の範囲】
【請求項１】
データバスにおける複数個のタイムスロットのパッキング方法であって、
該複数個のタイムスロットを、第１の複数個の割り当てタイムスロットを有する第１セットのポートと、第２の複数個の割り当てタイムスロットを有する第２セットのポートとに分割する段階と、
該第１の複数個の割り当てタイムスロットと該第２の複数個の割り当てタイムスロットとの内のどちらが、未割り当てタイムスロット群とともに多い方の割り当てタイムスロットを有し、かつ該第１の複数個の割り当てタイムスロットと該第２の複数個の割り当てタイムスロットとの内のどちらが、少ない方の割り当てタイムスロットを有するかを決定する段階と、
少なくとも１個のタイムスロットに関連づけられたポートを、該少ない方の割り当てタイムスロットから該未割り当てタイムスロット群に移動する段階と、
少なくとも１個の割り当てタイムスロットを、該少ない方の割り当てタイムスロットから該未割り当てタイムスロット群における未割り当てタイムスロットにシフトする段階と、
を含む方法。
【請求項２】
該移動する段階は、該ポートに関連づけられた多数の連続するタイムスロットを識別する段階と、
該ポートに関連づけられた連続するタイムスロットの数に等しい数の連続するタイムスロットを、該未割り当てタイムスロット群において見つける段階とをさらに含む、請求項１記載の方法。
【請求項３】
該シフトする段階は、該少なくとも１個の割り当てタイムスロットのシフト方向を該データバスの最も近いエッジ方向とする段階をさらに含む、請求項１記載の方法。
【請求項４】
データバス上で複数個のタイムスロットをパッキングするためのコンピュータ読み取り可能プログラムコード手段を埋め込んだコンピュータ読み取り可能信号担持媒体であって、
該複数個のタイムスロットを、第１の複数個の割り当てタイムスロットを有する第１セットのポートと、第２の複数個の割り当てタイムスロットを有する第２セットのポートとに分割するコンピュータ読み取り可能プログラムコードを有する手段と、
該複数個のタイムスロットを、該第１の複数個の割り当てタイムスロットと該第２の複数個の割り当てタイムスロットとの内のどちらが、未割り当てタイムスロット群とともに多い方の割り当てタイムスロットを有し、かつ該第１の複数個の割り当てタイムスロットと該第２の複数個の割り当てタイムスロットとの内のどちらが、少ない方の割り当てタイムスロットを有するかを決定するためのコンピュータ読み取り可能プログラムコードを有する手段と、
少なくとも１個のタイムスロットに関連づけられたポートを、該少ない方の割り当てタイムスロットから該未割り当てタイムスロット群に移動するためのコンピュータ読み取り可能プログラムコードを有する手段と、
少なくとも１個の割り当てタイムスロットを、該少ない方の割り当てタイムスロットから該未割り当てタイムスロット群における未割り当てタイムスロットにシフトするためのコンピュータ読み取り可能プログラムコードを有する手段と、を備えるコンピュータ読み取り可能信号担持媒体。
【請求項５】
該移動手段は、該ポートに関連づけられた多数の連続するタイムスロットを識別するためのコンピュータ読み取り可能プログラムコードと、
該ポートに関連づけられた連続するタイムスロットの数に等しい数の連続するタイムスロットを、該未割り当てタイムスロット群において見つけるためのコンピュータ読み取り可能プログラムコードを有する手段をさらに備える、請求項４記載のコンピュータ読み取り可能信号担持媒体。
【請求項６】
該シフト手段は、該少なくとも１個の割り当てタイムスロットのシフト方向を該複数個のタイムスロットの外側エッジ方向とするためのコンピュータ読み取り可能プログラムコードと、
該ポートに関連づけられた連続するタイムスロットの数に等しい数の連続するタイムスロットを、該未割り当てタイムスロット群において見つけるためのコンピュータ読み取り可能プログラムコードを有する手段をさらに備える、請求項４記載のコンピュータ読み取り可能信号担持媒体。
【請求項７】
該シフト手段は、該少なくとも１個の割り当てタイムスロットのシフト方向を該データバスの最も近いエッジ方向とするためのコンピュータ読み取り可能プログラムコードを有する手段をさらに備える、請求項４記載のコンピュータ読み取り可能信号担持媒体。
【請求項８】
複数個のタイムスロットに分割されたデータバスをパッキングする装置であって、
データバスにおける該複数個のタイムスロットを、第１のサブセットの割り当てタイムスロットを有する第１セットのタイムスロットと、第２のサブセットの割り当てタイムスロットとを有する第２セットのタイムスロットに分割するコントローラと、
該コントローラに結合されるメモリと、
該第１セットの割り当てタイムスロットに応答する該メモリにおける第１のカウンタと、
該第２セットの割り当てタイムスロットに応答する該メモリにおける第２のカウンタと、
該メモリおよび該コントローラに結合され、少なくとも１個のタイムスロットを、該第１のサブセットの割り当てタイムスロットから該第２のサブセットの割り当てタイムスロットに移動するタイムスロット割当器と、
該メモリおよび該コントローラに結合され、該第２セットのタイムスロットにおける少なくとも１個の割り当てタイムスロットを、該第２セットのタイムスロットにおける第１の位置から該第２セットのタイムスロットにおける第２の位置にシフトするタイムスロットシフタと、
を備える装置。
【請求項９】
該タイムスロット割当器は、該第１のカウンタが該第２のカウンタより大きくなると、少なくとも１個のタイムスロットを、該第１のサブセットの割り当てタイムスロットから該第２のサブセットの割り当てタイムスロットに移動する、請求項８記載の装置。
【請求項１０】
該タイムスロット割当器は、該データバスが複数個のデータバスにおける偶数番号のデータバスになると、少なくとも１個のタイムスロットを、該第１のサブセットの割り当てタイムスロットから該第２のサブセットの割り当てタイムスロットに移動する、請求項８記載の装置。
【発明の詳細な説明】
【０００１】
【発明の背景】
本発明は、データバス・タイムスロットの割り当てに関し、特に、割り当てデータバス・タイムスロットのパッキングに関する。
【０００２】
コンピュータおよび通信装置は、パケット・ハンドラ・データバス（Ｐａｃｋｅｔ  Ｈａｎｄｌｅｒ  Ｄａｔａ  Ｂｕｓ：ＰＨＤＢ）を有する。このＰＨＤＢにより、個々のタイムスロットまたはタイムスロット群が、必要に応じて動的に割り当てられ、解除される。タイムスロットが割り当てられ、解除されると、ＰＨＤＢは、非連続のフリータイムスロット（通常、「ホール（ｈｏｌｅ）」と呼ばれる）が割り当てタイムスロットの間に分散される。したがって、未割り当てタイムスロットの多数の「ホール」が割り当てタイムスロットの間に分散されているため、複数個の連続するタイムスロットを要するポート割り当て要求は満たされない場合がある。
【０００３】
図１において、当業界において知られる３２個のタイムスロットデータバス１００が図示される。これらのタイムスロットには、タイムスロット０（１０２）が最初（最下位タイムスロット）であり、かつタイムスロット３１（１０４）が最終（最上位タイムスロット）である識別子が割り当てられている。データバスにおけるタイムスロットは、データバス上でもっとも小さい切り替え可能なデータユニットとして定義される。多数の連続するタイムスロットはともにグループ化されることで、データバスにわたってより高いデータ帯域幅が転送可能となる。
【０００４】
次に図２において、多数のパケット・インタフェース・データバス（ＤＦＭＰ）を有するデータファンアウト素子２０２が図示される。ファンアウト素子は、１６個のパケットハンドラ２１２乃至２１８のうちの１個を介して多数のデータバス２０４乃至２１０に接続できる。デジタルファンアウト２０２は、この１６個のデータバス２０４乃至２１０に電子的に結合される。データバス・タイムスロットは、ニブルバス・タイムスロット（ｎｉｂｂｌｅ  ｂｕｓ  ｔｉｍｅ  ｓｌｏｔ）と対をなすことでＤＦＭＰの実施例において使用される。しかしながら、各列につき、１６個のデータバス・タイムスロットに使用可能なニブルタイムスロットは８個しかない。代替の実施例においては、データファンアウトタイプＩＩ素子が多数のデータバスに結合されるため、ＤＦＭＰの実施例の場合のようなニブルバス・タイムスロットの対形成は不要となる。
【０００５】
ニブルバスからの制約に適応するため、偶数番号のデータバス２０４におけるタイムスロットの最適な割り当ては、最下位のタイムスロットが割り当て（１として図示される）、これより上位のタイムスロットが未割り当て（０として図示される）である。奇数番号のデータバス２０６には、これと反対のタイムスロット割り当てがなされる。すなわち、最下位のタイムスロットが割り当てられず、これより上位タイムスロットが割り当てられる。次にこの偶数番号／奇数番号のデータバスパターンは、他のすべてのデータバスについて繰り返される。
【０００６】
したがって、データバスにおいて割り当てタイムスロットをパッキングして、割り当ての際に使用可能な未割り当て連続タイムスロットのブロックを大きくすることが可能な方法および装置が必要となる。さらに、ＤＦＭＰデータバスを実施する所望の部分においてタイムスロットを効率良くパッキングする方法および装置も必要となる。
【０００７】
【発明の概要】
それぞれのデータバスが複数個のタイムスロットを有するデータバスを１個以上備えたシステムにおいて、これらのタイムスロットの一部が割り当てられデータを搬送し、他のタイムスロットは割り当てられない。未割り当てタイムスロットは、追加の帯域幅が必要とされる場合、個々にあるいはグループで割り当てられる。経時的に、データバスにおいて、未割り当てタイムスロットの「ホール」が、割り当てタイムスロットに分散される。個々のデータバスの実施例において、データバスの指定が奇数番号か偶数番号かによって、最上位タイムスロットまたは最下位タイムスロットのいずれかに対するパッキングが行われる。代替である個々のデータバスの実施例において、データバスは２つのセットに分割され、割り当てタイムスロットがより少ないセットからの割り当てタイムスロットが、他方のセットのフリータイムスロットに移動またはプラグ（ｐｌｕｇｇｅｄ）される。他方のセットのタイムスロットが、移動またはプラグされるタイムスロットを多数有するポートについてちょうど等しい数の連続するタイムスロットを有しない場合、未割り当てタイムスロットに続く割り当てタイムスロットは、そのセットのタイムスロットにおいてシフトされる。タイムスロットのシフトの結果、他方のセットのタイムスロットにおける連続するタイムスロットのグループが大きくなる。マルチデータバスの実施例において、これらのデータバスの１つにおいてだけでなくデータバス間でタイムスロットの移動およびシフトが発生する。
【０００８】
以下、本発明の上記目的および利点をより詳細に後述し、その他については、図面をいくつか参照してなされる本発明の詳細な説明から明らかとなろう。
【０００９】
図３において、本発明の一実施例に係る、異なるパッキング段階における単一ＤＦＭＰデータバス３００の線図を示す。ＤＦＭＰにより、データバス指定が偶数番号であるか奇数番号であるかによってデータバスを最下位タイムスロットまたは最上位タイムスロットの方にパッキングできるので有利である。図３における本例は偶数番号のＤＦＭＰバスであり、すべてのタイムスロットを最下位タイムスロットの方に集中させるまたはパッキングするので有利である。
【００１０】
データバス３００は、パッキングの開始においてｔ＝０（３０２）として識別される。データバス３００の３２個のタイムスロットは、割り当て（１で図示される）と、未割り当て（０で図示される）がある。ポート“ａ”３０６、“ｂ”３０８、“ｃ”３１０、“ｄ”３１２、“ｅ”３１４および“ｆ”３１６に割り当てタイムスロットの数はそれぞれ２個、４個、３個、４個、２個および４個である。データバス３００は、２つのセットに分割される。第１のセット３２０はタイムスロット１６乃至３１を有し、第２のセット３２２はタイムスロット０乃至１５を有する。第１のセット３２０は１０個のタイムスロットが割り当てられ、第２のセット３２２も９個のタイムスロットが割り当てられる。
【００１１】
第２セットのタイムスロット３２２における連続するフリータイムスロットの数は、このタイムスロットの数を要するポートを識別する前に決定される。したがって、タイムスロット１およびタイムスロット２が使用可能であると識別される。第１セットのタイムスロット３２０における割り当てタイムスロットが調べられ、最初の２個のタイムスロットポートが識別される。最下位側から最も遠い２個のタイムスロットポートは、ポート“ａ”３０６である。次にポート“ａ”３０６は、第２セットのタイムスロット３２２におけるタイムスロット１および２に移動またはプラグされる。
【００１２】
代替の実施例において、第１のポート３０６が選択され、２個のタイムスロットを要する。このポートを選択した後、２個の連続する未割り当てタイムスロットについて最下位タイムスロットからデータバスが走査される。走査により、第２セットのタイムスロット３２２において２個の未割り当て連続タイムスロット（タイムスロット１および２）を見つける。ポート“ａ”３０６は、ｔ＝１（３２４）で図示されるようにタイムスロット１および２に移動される。
【００１３】
次の動作は、連続するタイムスロットの次のブロックを決定することである。３個の未割り当てタイムスロット３２６の連続するブロックが第２セットのタイムスロット３２２において識別される。ポート“ｃ”３１０は、３個のタイムスロットを要するため、３個の未割り当てタイムスロット３２６に移動またはプラグされる。
【００１４】
第２セットのタイムスロット３２２には、未割り当てタイムスロット３２８が２個しかなく、第１セットのタイムスロット３２０におけるポート“ｂ”３０８は４個のタイムスロットを要する。このため、移動またはプラグが生じることはない。したがって、データバスをパッキングし、連続するタイムスロットの数を増やすためにシフト動作が行われる。
【００１５】
未割り当てタイムスロットに続くポートは、最下位タイムスロット（タイムスロット０）の方にシフトされる。本例において、ポート“ｄ”３１２は未割り当てタイムスロット３２８に続く。したがって、ポート“ｄ”３１２と関連づけられたタイムスロットはタイムスロット２個分シフトされ、この結果データバスがｔ＝３  ３３２となる。
【００１６】
データバス３００において次のポートであるポート“ｂ”３０８は、最下位タイムスロットの方にシフトされる。この結果得られたデータバスがｔ＝４（３３４）で図示される。代替の実施例において、ポート“ｂ”３０８と関連づけられたタイムスロットについてシフトではなくプラグが生じ、この結果、やはりｔ＝４（３３４）で図示されるようなデータバスが得られる。
【００１７】
したがって、得られたデータバス３００は、割り当てタイムスロットがデータバスの一側方に集中する。さらに、２個以上のタイムスロットを要する新たなポートに対する割り当ての際に利用可能な連続するタイムスロットの数が増大する。
【００１８】
図４において、本発明の一実施例のブロック図を示す。データバスコントローラ（一般にコントローラと呼ばれる）４０２は、３２個のタイムスロット・データバス４０３に接続される。このデータバスコントローラにメモリ４０４が結合されるとともに、タイムスロット割当器４０６およびタイムスロットシフタ４０８がメモリ４０４に結合される。また、タイムスロット割当器４０６は、データバスコントローラ４０２にも結合される。同様にタイムスロットシフタ（ｔｉｍｅ  ｓｌｏｔ  ｓｈｉｆｔｅｒ）４０８もデータバスコントローラ４０２に結合される。
【００１９】
データバスコントローラ４０２は、タイムスロットを各ポートに割り当てる。メモリ４０４は、割り当てデータバス・タイムスロットおよび未割り当てデータバス・タイムスロットのテーブル（すなわち、アレイ、リンクリスト等）を格納する。データバスにおけるタイムスロット割り当ての所定しきい値に達すると、データバスコントローラは、データバスのパッキングを開始する。タイムスロット割当器４０６は、データバスにおけるどのタイムスロットが、データバスのある位置から別の位置に移動またはプラグ可能であるかを決定する。タイムスロット割当器４０６は、メモリ４０４に格納されるテーブルを用いて、未割り当てタイムスロットと割り当てタイムスロットを識別する。
【００２０】
すべてのタイムスロットが上述したように移動された後、割り当てタイムスロットは、タイムスロットシフタ４０８によりシフトされる。メモリ４０４におけるテーブルを使用するタイムスロットシフタ４０８は、少なくとも１個の未割り当てタイムスロットに続く関連の割り当てタイムスロットを有するポートを見つけ、この割当てポートをシフトして、パッキングされたデータバスおよびより隣接する未割り当てタイムスロットを作成する。
【００２１】
次に図５において、本発明の一実施例に係るデータバスのパッキング方法のフロー図を示す。ステップ５０２において、タイムスロット割り当ての所定しきい値を得ることによりデータバスのパッキングがトリガされる。本実施例において、所定しきい値は、入来した新たな要求パス（ポート）からの連続するタイムスロットの数が、図３のデータバス３００における未割り当てタイムスロットブロックのサイズを越えるが未割り当てタイムスロットブロックすべての和より小さい場合である。このトリガの利点は、パッキング動作をできるだけ延ばすことができることである。代替の実施例において、割り当てタイムスロットのタイマまたは割合等の他のトリガイベントを選択的に使用して、データバスのパッキングをトリガすることができる。
【００２２】
図５のステップ５０４において、データバスは、少なくとも図３の第１セットのタイムスロット３２０と第２セットのタイムスロット３２２に分割される。データバスのパッキングにより、マルチバス素子におけるデータバスの偶数または奇数の番号付けに基づいて、ポートおよびその関連のタイムスロットを一方のセットのタイムスロットから他方のセットのタイムスロットに移動する。偶数番号のデータバスは最下位タイムスロットの方にパッキングされ、奇数番号のデータバスは最上位タイムスロットの方にパッキングされる。代替の実施例において、最も多く割り当てられたタイムスロットを有するセットは、他方のセットからリパッキングされるように選択される。
【００２３】
ステップ５０６において、データバスは複数個のデータバスにおける偶数番号または奇数番号のいずれかのデータバスとして識別される。データバスが奇数番号のデータバスである場合、タイムスロットのパッキングはデータバスの最上位タイムスロット側で行われ、ステップ５０８が実行される。データバスが偶数番号のデータバスである場合、タイムスロットのパッキングはデータバスの最下位タイムスロット側で行われ、ステップ５１０が実行される。データバスが単一の代替の実施例において、第１セットのタイムスロットは、ステップ５０６において第２セットのタイムスロットと比較される。ステップ５０６において、第２セットのタイムスロットが有する割り当てタイムスロットの方が多いと、ステップ５０８が実行される。一方、ステップ５０６において、第１セットのタイムスロットが有する割り当てタイムスロットの方が多ければステップ５１０が実行される。
【００２４】
ステップ５０８において、第１セットのタイムスロットの第１ポートに割り当てられたタイムスロットが識別される。ステップ５１２において、第２セットのタイムスロットが調べられ、このポートについて未割り当てタイムスロットを見つける。ステップ５１２において、第２セットのタイムスロットにおいて十分な連続するタイムスロットが使用可能である場合、ステップ５１４において、このポートは第１セットのタイムスロットから第２セットのタイムスロットに移動される（第１セットのタイムスロットにおける各タイムスロットが解除される）。
【００２５】
ステップ５１６において、割り当てタイムスロットが依然として第１セットのタイムスロットに存在するかの確認が行われる。ステップ５１６において、割り当てタイムスロットが第１セットのタイムスロットにこれ以上ない場合、ステップ５１８において、第２セットにおける「ホール」の確認が行われる。ステップ５１６において、割り当てタイムスロットが第１セットのタイムスロットにある場合、ステップ５０８が繰り返される。
【００２６】
ステップ５１２において、ステップ５０８において識別されたポートについて使用可能なタイムスロットが第２セットのタイムスロットにない場合、または割り当てタイムスロットが第１セットのタイムスロットにない場合、ステップ５１８において、未割り当てタイムスロットの「ホール」が依然としてデータバスに存在するかの確認が行われる。ステップ５１８において、未割り当てタイムスロットの「ホール」がデータバスに存在しない場合、データバスのパッキングが完了し、処理が終了する。ステップ５１８において、未割り当てタイムスロットの「ホール」がデータバスにおいて使用可能である場合、ステップ５２０において、データバスにおける割り当てタイムスロットは、最上位タイムスロットの方にシフトされる。ステップ５２０のシフト後、再びステップ５１２が実行される。
【００２７】
ステップ５０６において、データバスが偶数番号のデータバスとして識別されると、ステップ５１０において、第２セットのタイムスロットの第１ポートに割り当てられたタイムスロットが識別される。ステップ５２２において、第１セットのタイムスロットが調べられ、このポートについて未割り当てタイムスロットを見つける。ステップ５２２において、第１セットのタイムスロットにおいて十分な連続するタイムスロットが使用可能である場合、ステップ５２４において、このポートは第２セットのタイムスロットから第１セットのタイムスロットに移動される（第２セットのタイムスロットにおける各タイムスロットが解除される）。
【００２８】
ステップ５２６において、割り当てタイムスロットが依然として第２セットのタイムスロットに存在するかの確認が行われる。ステップ５２６において、割り当てタイムスロットが第２セットのタイムスロットにこれ以上ない場合、ステップ５２８において、未割り当てタイムスロットの「ホール」の確認が行われる。ステップ５２６において、割り当てタイムスロットが第２セットのタイムスロットにある場合、ステップ５１０が繰り返される。
【００２９】
ステップ５２２において、ステップ５１０において識別されたポートについて使用可能なタイムスロットが第１セットのタイムスロットにない場合、ステップ５２８において、未割り当てタイムスロットの「ホール」がデータバスにあるかの確認が行われる。ステップ５２８において、未割り当てタイムスロットの「ホール」がデータバスに見当たらない場合、データバスのパッキングが完了し、処理が終了する。ステップ５２８において、未割り当てタイムスロットの「ホール」がデータバスにおいて使用可能である場合、ステップ５３０において、データバスにおける割り当てタイムスロットは、最下位タイムスロットの方向にシフトされる。ステップ５３０のシフト後、再びステップ５２２が実行される。
【００３０】
図５に示す各ステップは、「Ｃ」または「Ｃ＋＋」を有するＵＮＩＸ等コンピュータ読み取り可能プログラムコードにより、あるいは集積回路において選択的に実施されてもよい。コンピュータ読み取り可能プログラムコード信号は、コンパクトディスク読み取り専用メモリ（ＣＤ  ＲＯＭ）、フロッピーディスク、磁気テープ、プログラマブルチップ（すなわち、ＰＲＯＭ、ＥＥＰＲＯＭまたはＥＰＲＯＭ）等の製造物に蓄積される。
【００３１】
特定の実施例を参照して本発明を特に図示し、説明してきたが、本発明の精神および範囲から逸脱することなく各種の形態および詳細の変形が本発明において可能であり、かかる変形はすべて添付の特許請求の範囲に包含されると意図されることが当業者には理解されよう。
【図面の簡単な説明】
【図１】当業界において知られる３２個のタイムスロットデータバスを示す図である。
【図２】当業界において知られる多重パケット・インタフェース・データバス（ＤＦＭＰ）を備えたデータファンアウト素子の図である。
【図３】本発明の一実施例に係る、異なるパッキング段階におけるデータバスの線図である。
【図４】本発明の一実施例のブロック図である。
【図５】本発明の一実施例に係るデータバスのパッキング方法のフロー図である。
【符号の説明】
３００  データバス
３２０  第１セットのタイムスロット
３２２  第２セットのタイムスロット
【図１】
0003550379.tif 000002
【図２】
0003550379.tif 000003
【図３】
0003550379.tif 000004
【図４】
0003550379.tif 000005
【図５】
0003550379.tif 000006