(57)【要約】  本発明は、メモリを管理する方法に関する。処理を行うと、メモリ・オブジェクト（10.1,10.2,…,10.k）に対して、少なくとも１つのスタック（6,7,8,9）が作成される。スタック（6,7,8,9）からのメモリ・オブジェクト（10.k）に対する要求が、アトミック操作を用いることによって行われ、スタック（6,7,8,9）へのメモリ・オブジェクト（10.k）の復帰が、アトミック操作を用いることによって同様に行われる。
2008542933.tif 000002
【特許請求の範囲】
【請求項１】
メモリ管理の方法であって、
メモリ・オブジェクト（10.1,10.2,…,10.k）に対して少なくとも１つのスタック（6,7,8,9）を作成する工程と、
アトミック操作によってスタック（6,7,8,9）からのメモリ・オブジェクト（10.k）に対する要求を実行する工程と、
アトミック操作によってメモリ・オブジェクト(10.k)を前記スタック（6,7,8,9）に戻す工程とを備える方法。
【請求項２】
請求項１記載の方法であって、
いくつかのスタック（6,7,8,9)が、別々のサイズのメモリ・オブジェクト（１６バイト、３２バイト、６４バイト、１２８バイト）に対してそれぞれ作成される方法。
【請求項３】
請求項2記載の方法であって、
メモリ・オブジェクト（10.k）の検索前に、メモリ要求との比較による次に大きな容量（１６バイト、３２バイト、６４バイト、１２８バイト）のメモリ・オブジェクトを有するスタック（6,7,8,9）それぞれが選択される方法。
【請求項４】
請求項１乃至３の何れか一項に記載の方法であって、
前記スタック（6,7,8,9）の初期化後、前記スタック（6,7,8,9）においてメモリ・オブジェクト（10.i)は当初何ら存在せず、それぞれのケースにおいて、メモリ容量に対する第１の要求の場合、メモリ・オブジェクトがシステムメモリ管理によって要求され、該メモリ・オブジェクトは、該メモリ・オブジェクトが戻されるとスタック（6,7,8,9）に割り当てられる方法。
【請求項５】
請求項4記載の方法であって、
前記システムメモリ管理による前記メモリ・オブジェクトに対する前記要求前に、前記メモリ・オブジェクトの容量が、前記初期化されたスタック（6,7,8,9）の容量、及びメモリ容量に対する現在の要求の容量によって定められる方法。
【請求項６】
請求項１乃至4の何れか一項に記載の方法であって、
前記スタック（6,7,8,9）におけるメモリ・オブジェクト（10.i）の容量を定めるために、メモリ・オブジェクト容量の頻度分布が処理中に更新され、前記処理の新たな実行の時点で、それぞれ更新された頻度分布が、前記スタック（6,7,8,9）の初期化の基礎として用いられる方法。
【請求項７】
電子的に読み取り可能な制御信号を備えたディジタル記憶媒体であって、請求項１乃至６の何れか一項に記載の方法が実行されるように、電気通信装置の、プログラム可能なコンピュータ又はディジタル信号プロセッサと協調することが可能であるディジタル記憶媒体。
【請求項８】
電気通信装置のコンピュータ上又はディジタル信号プロセッサ上でソフトウェアが実行されると請求項１乃至６の何れか一項に記載の工程全てを実現するために、マシンで読み取り可能な担体上に記憶されたプログラムコード手段を備えたコンピュータ・ソフトウェア・プロダクト。
【請求項９】
電気通信装置のコンピュータ上又はディジタル信号プロセッサ上でソフトウェアが実行されると請求項１乃至６の何れか一項に記載の工程全てを実現するプログラムコード手段を備えたコンピュータ・ソフトウェア。
【請求項１０】
マシンで読み取り可能なデータ媒体上にソフトウェアが記憶されると請求項１乃至６の何れか一項に記載の工程全てを実現するプログラムコード手段を備えたコンピュータ・ソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル・コンピュータ装置におけるメモリ管理の方法に関する。
【背景技術】
【０００２】
現代のコンピュータ装置は、その利用可能な大容量メモリ及び優れた計算性能に基づいて、高度なプログラムの利用をサポートする。コンピュータ装置では、前述のプログラムは、いくつかのいわゆるスレッドが同時に処理される手順を行うことが可能である。前述のスレッドの多くは、互いに時間的に直接一致していないので、いくつかのスレッドが、メモリ管理へのアクセス、及び、よって、場合によっては特定の利用可能メモリ・ブロックへのアクセスを同時に得ようとすることがあり得る。この種の同時アクセスは、システムの不安定性につながり得る。しかし、特定のメモリ・ブロックへの同時アクセスをオペレーティング・システムの介入によって阻止することが可能である。既にアクセスされているメモリ・ブロックへのアクセスの、更なるスレッドによる阻止は、独国特許第６７９１５５３２（T2）号明細書に開示されている。この意味合いで、同じメモリ・ブロックに同時アクセスが関係する場合にのみ同時アクセスが阻止される。
【０００３】
現在利用可能なメモリ管理システムでは、例えば個々のメモリ・オブジェクト内のメモリ容量全体を管理するために、いわゆる双方向リストが用いられることが多い。前述の双方向リストによって、特定のメモリ・オブジェクトへのアクセスが、いくつかの段階において得られる。よって、この種のメモリ・オブジェクトへの第１のアクセスにおいて、第１のアクセスの個々の段階が処理される前に、別のスレッドによる同時アクセスが可能でないように、他のスレッドを阻止することが必要である。このアクセス阻止は、いわゆるミューテックス・ルーチンを介してオペレーティング・システムによって実現される。しかし、オペレーティング・システムを組み入れ、ミューテックス・ルーチンを実行することによって、貴重な計算時間が浪費される。この時間中、他のスレッドが、オペレーティング・システムを介したミューテックス・ベースのロッキングによって阻止され、これによって、その実行が一時的に阻止される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、マルチスレッド環境内の特定のメモリ・ブロックへの従スレッドによる同時アクセスを阻止すると同時に短いメモリ・アクセス時間を可能にする、ディジタル・コンピュータ装置のメモリ管理の方法を提供することである。
【課題を解決するための手段】
【０００５】
この目的は、請求項１記載の本発明の方法によって達成される。
【０００６】
本発明によれば、利用可能なメモリに、双方向リストの代わりにスタック管理が用いられる。この目的で、前述の少なくとも１つのスタックが、利用可能なメモリ範囲において当初作成される。スレッドによるメモリ・オブジェクトの検索及び復帰が次いで、各ケースにおいてアトミック操作によって実現される。メモリ・アクセスのためのこの種のアトミック操作及びメモリのスタック編成（スタックにおける最後のオブジェクトへの一アクセスのみを可能にする）を用いれば、他のスレッドの広範な阻止がもう不必要になる。この意味合いで、アトミック操作は、単一の段階のみにおいてメモリ・オブジェクトへのアクセスが実現されることを既に保証しているので、更なるスレッドの並行実行段階との重なりは生じ得ない。
【０００７】
本発明による方法の効果的な更なる展開は、従属項に記載している。
【発明を実施するための最良の形態】
【０００８】
好ましい例示的な一実施例は、添付図面において提示され、以下に更に詳細に説明する。
【実施例】
【０００９】
いわゆる双方向リストの場合、メモリは、図１に略示するいくつかのメモリ・オブジェクト１、２、３及び４に細分される。第１のフィールド1a及び第２のフィールド1bはそれぞれ、前述のメモリ・オブジェクト１乃至４それぞれ内に作成される。この意味合いで、第１のメモリ・オブジェクト１の第１のフィールド1aは、第２のメモリ・オブジェクト２の位置を表す。同様に、第２のメモリ・オブジェクト２の第１のフィールド2aは、第３のメモリ・オブジェクト３の位置を表す、等である。必要な中央ブロックの検索を可能にするために、メモリ・オブジェクト２、３及び４の第２のフィールド２b、３b及び４bにおいて、めいめいに先行するメモリ・オブジェクト１、２及び３の位置が、順方向におけるめいめいに後続のメモリ・オブジェクトの位置が示されるのみならず、示される。このようにして、２つのメモリ・オブジェクト間に配置されたメモリ・オブジェクトを除去し、同時に、隣接するメモリ・オブジェクトのフィールドを更新することが可能である。
【００１０】
この種の双方向リストは実際に、必要なメモリ・オブジェクトへの個々のアクセスを可能にする。しかし、逆に、前述の双方向リストは、一メモリ・オブジェクトへのいくつかのスレッドの同時アクセスを、遅い操作を介してしか阻止することが可能でない。１つの可能性は、本明細書の冒頭部分において既に記載されているように、ミューテックス機能によってアクセスを管理することである。リスト内の第１のメモリ・オブジェクト１は、特殊ポインタ５によって達することが可能であり、先行メモリ・オブジェクトの位置の代わりに、ゼロ・ベクトルが第２のフィールド1bに記憶される点でも特徴付けられる。よって、メモリ・オブジェクト４は、更なるメモリ・オブジェクトの位置の代わりに、メモリ・オブジェクト４の第１のフィールド4aにおけるゼロ・ベクトルを記憶することによって最後に特徴付けられる。
【００１１】
対照的に、図２は、本発明によるメモリ管理の例を示す。本発明によるメモリ管理によって、いくつかのスタックが、好ましくは、初期化処理中に当初作成される。前述のスタックは、片方向リストの専門化された形式である。図２は、参照番号６、７、８及び９によって示す前述の４つのスタックを示す。前述のスタック６乃至９それぞれは、別々のサイズのいくつかのメモリ・オブジェクトを備える。例えば、最大１６バイトの容量のオブジェクトを第１のスタック６に記憶することが可能である。最大３２バイトの容量のオブジェクトを第２のスタック７に記憶することが可能である。最大６４バイトの容量のオブジェクトを第３のスタック８に記憶することが可能である。最後に、最大１２８バイトの容量のオブジェクトを第４のスタック９に記憶することが可能である。記憶する対象の容量がより大きい要素が存在する場合、容量がより大きなメモリ・オブジェクト（個々のメモリ・オブジェクトの容量は好ましくは、次の個別スタックに対して2倍である）を有するスタックを作成することも可能である。個々のメモリ・オブジェクト10.iへのこの種のスタックの細区分は、第４のスタック９について詳細に示す。第４のスタック９は、互いに片方向にリンクされた一連のメモリ・オブジェクト10.1、10.2、10.3、…、10.kを有する。第４のスタック９の最後のメモリ・オブジェクト10.kは、図２においてわずかにオフセットされて示している。スタック６乃至９全てについて、個々のメモリ・オブジェクトへのアクセスは、スタック６乃至９それぞれの最低メモリ・オブジェクトの場合にのみ（例えば、スタック９に関しては、メモリ・オブジェクト10.kに対してのみ）可能である。
【００１２】
よって、図２における第４のスタック９の最後のメモリ・オブジェクト10.kは、例えば、メモリに対する要求のイベントにおいて用いることが可能である。メモリ・オブジェクト10.kは、スレッドによってもう必要でないので、もう一度解放された場合、よって、第４のスタック９の最後に戻される。
【００１３】
図２は、各ケースにおいてメモリ要求が与えられるいくつかの別々のスレッド１１によってこのことを略示する。例えば、具体的な例示的実施例によれば、いくつかのスレッド１２、１３及び１４における処理は、同じ容量のメモリ容量を要求する。要求されるメモリの容量は、記憶する対象のデータから生じる。図示した例示的な実施例では、６４バイトを超え、最大１２８バイトの容量のメモリ要件が存在し次第、第４のスタック９が選択される。ここで、メモリ容量（例えば、75バイト）が第１のスレッド１２によって要求される場合、適切な容量の解放されたメモリ・オブジェクトを含む、スタック６乃至９からのスタックが当初選択される。図示された例示的な実施例では、これは第４のスタック９である。１２８バイトの容量を有するメモリ・オブジェクト１０．１をここで供給する。メモリ・オブジェクト10.kは第４のスタック9における最後のメモリ・オブジェクトであるため、いわゆる「ポップ」操作が、第１のスレッド１２のメモリ要求に基づいて行われ、よって、メモリ・オブジェクト10.kがスレッド12に利用可能にされる。
【００１４】
この種のポップ・ルーチンは、アトミック又は不可分である。すなわち、単一の処理段階においてスレッド１２のために、メモリ・オブジェクト10.kが第４のスタック９から除去される。メモリ・オブジェクト10.kがスレッド１２に割り当てられるこのアトミック操作又は不可分の操作は、スレッド１２に割り当てられ、同じメモリ・オブジェクト10.kへのアクセスを別のスレッド（例えば、スレッド１３）が同時に得ることを阻止する。すなわち、新たな処理段階をシステムによって実現することが可能な状態になり次第、メモリ・オブジェクト10.kに関する処理を終結させ、10.ｋ番目のメモリ・オブジェクトは、もう第４のスタック９の構成部分でない。スレッド１３による更なるメモリ要求の場合、この時点における第４のスタック９の最後のメモリ・オブジェクトはよって、メモリ10.k-1である。ここでやはり、アトミック・ポップ操作をやはり実現して、メモリ・オブジェクト10.k-1をスレッド１３に移す。
【００１５】
この種のアトミック操作は、対応するハードウェア・サポートを前提とし、通常のプログラミング言語で直接策定することが可能でないが、マシン・コードを用いることを必要とする。しかし、本発明によれば、前述のハードウェアによって実現されたいわゆるロックフリー・ポップ・コール又はロックフリー・プッシュ・コールは通常、メモリ管理に用いられない。この目的で、例えば、メモリ・オブジェクトが、作成スタックの一端においてのみ検索され得るか、又はそれぞれ戻され得る片方向リストを、図１に略示する双方向リストの代わりに用いる。
【００１６】
図２は、スレッドからの削除コール後に解放されると、適切なスタックにそれぞれのメモリ・オブジェクトが、いくつかのスレッド１５について戻される方法も示す。図２のメモリ・オブジェクト10.kについて示すように、特定のスタックへの割り当てがコード化されたヘッダ10.iheadが、メモリ・オブジェクト10.iそれぞれにおいて存在している。例えば、第４のスタック９への割り当てが、ヘッダ10.kheadに含まれている。ここで、対応するロックフリー・ポップ操作に基づいてメモリ・オブジェクト10.kが割り当てられているスレッド１６によって削除関数がコールされた場合、メモリ・オブジェクト10.kは、同様にアトミックなロックフリー・プッシュ操作によって戻される。この意味合いで、メモリ・オブジェクト10.kが、第４のスタック９に関連した最後のメモリ要素10.k-1に付加される。よって、第４のスタック９におけるメモリ・オブジェクト10.iの順序は、別々のスレッド１６、１７、１８がメモリ・オブジェクト10.iを戻す順序に応じて修正される。
【００１７】
前述のいわゆるロックフリー・ポップ・コール及びロックフリー・プッシュ・コールがアトミックであり、よって、非常にすばやく処理することが可能であることが重要である。
この意味合いで、速度の利点は、更なるスレッドが特定のメモリ・オブジェクトへ同時にアクセスすることを排除するためにミューテックスなどのオペレーティング・システム操作の利用が必要でないことにかなり基づいている。更なるスレッドによる同時アクセスに関するこの種の排除は、ポップ・コール及びプッシュ・コールのアトミック性が理由で、必要でない。特に、メモリ管理への実際に同時のアクセス（いわゆる競合ケース）の場合、オペレーティング・システムは、スレッドの変更（メモリ操作自体と比較して不釣り合いに多くの計算時間を必要とする）を実現しなくてよい。
【００１８】
スタック単位でのメモリのこの種のメモリ管理、及びロックフリー・ポップ・コール及びロックフリー・プッシュ・コ―ルによるアクセスの場合、利用可能なメモリ容量の一部は必然的に浪費される。この浪費は、個々のスタック又はそれらのそれぞれのメモリ・オブジェクトの容量（理想的でないやり方で適合させている）によって生じる。しかし、記憶する対象のデータの特定の容量の構造が分かっている場合、個々のスタック６乃至９におけるメモリ・オブジェクトの容量の分布をこれに適合させることが可能である。
【００１９】
本発明によるメモリ管理の特に好ましい一形態によれば、この処理に必要なスタック６乃至９は、初期化されるに過ぎないが、この時点で（処理の最初に、例えば、プログラム開始後に）メモリ・オブジェクト10.iをまだ含んでいない。ここで、特定の容量のメモリ・オブジェクトが初めて必要になった場合（例えば、記憶する対象の50バイトの要素に対する、第３のスタックにおけるメモリ・オブジェクト）、この第１のメモリ要求が、より遅いシステムメモリ管理によって処理され、メモリ・オブジェクトがそこから利用可能にされる。システムメモリ管理としての双方向リストに関して前述した例では、同時アクセスが、遅いミューテックス操作によって阻止される。しかし、第１のスレッドにこのようにして利用可能にされるメモリ・オブジェクトは、より遅いシステムメモリ管理による削除コール後に戻されないが、対応するスタック（前述の例示的な実施例では、第３のスタック８）におけるロックフリー・プッシュ操作によって記憶される。この容量のメモリ・オブジェクトの次のコールの場合、このメモリ・オブジェクトへのアクセスは、非常に速いロックフリー・ポップ操作によって得ることが可能である。
【００２０】
この手順は、処理の最初に大局的に個々のスタック６、７、８及び９に、固定数のメモリ・オブジェクトを割り当てなくてよいという利点を有する。それどころか、メモリ要件は、現在の処理又はそのスレッドに動的に適合させることが可能である。例えば、処理が、バックグラウンドにおいていくつかの従スレッドによって実行中であり、メモリ・オブジェクトに対する要求がわずかであるに過ぎない場合、この種の手順によってかなりの資源を節減することが可能である。
【００２１】
前述の方法をもう一度、図３に示す。段階１９では、プログラムが当初、例えば、コンピュータ上で起動され、よって、処理が生成される。処理の最初に、いくつかのスタック６乃至９が初期化される。スタック６乃至９の初期化を段階２０に示す。図３に示す例示的な実施例では、少数のスタック６乃至９のみが当初作成されるが、これらは、特定の、所定数のメモリ・オブジェクトによって満たされない。手順段階２１においてスレッドからのメモリ要求が生じた場合、対応するスタックがまず、スレッドによって規定されるオブジェクト容量に基づいて選択される。
【００２２】
例えば、２０バイトのメモリ・オブジェクトが必要な場合、図２に示すスタック選択において第２のスタック７が選択される。これに続いて、段階２３（アトミック操作）において問い合わせが実現される。この不可分の操作の一構成部分は、第２のスタック７においてメモリ・オブジェクトが利用可能であるか否かに関する問い合わせ２６である。メモリ・オブジェクト毎に３２バイトの容量を有するスタック７が初期化されているに過ぎないが、利用可能なメモリ・オブジェクトをなお含んでいない場合、ゼロ・ベクトル（「ヌル」）が戻され、３２バイトのメモリ・オブジェクトが、より遅いシステムメモリ管理によって段階２４においてシステムコールを介して利用可能にされる。しかし、この意味合いで利用可能にされるメモリ・オブジェクトの容量が、段階２１においてスレッドによって直接規定されないが、初期化されたスタックを考慮に入れて、段階２２で特定のオブジェクト・サイズを選択することによって規定される。
【００２３】
前述の例示的な実施例では、メモリ要求は、よって、３２バイトの容量のメモリ・オブジェクトが要求されるように変えられる。双方向リストによるシステムメモリ管理の例では、スレッドによる検索中の、このメモリ・オブジェクトへの同時アクセスを阻止するためにオペレーティング・システムによってミューテックス操作が起動される。
【００２４】
対照的に、必要なメモリ・オブジェクトが、処理の過程中に既に戻されているメモリ・オブジェクトである場合、これは第２のスタック７に既に存在している。段階２６における問い合わせはよって、「はい」で回答され、メモリ・オブジェクトは直接供給される。完全なものにするために、方法の更なる過程では、削除コールに基づいたメモリ・オブジェクトの復帰は、ロックフリー・ポップ・コールによって利用可能にされるメモリ・オブジェクト、及びシステムメモリ管理によって利用可能にされるメモリ・オブジェクトについて提示される。スレッドの削除コールに続く処理は、何れの場合も同一である。すなわち、メモリ・オブジェクトが利用可能にされた方法をここでは考慮に入れない。図３では、このことは、２つの平行の経路によって略示する（右側の参照符号にはダッシュを付している）。
【００２５】
当初、削除コールをスレッドによって起動させる。対応するメモリ・オブジェクトが、メモリ・オブジェクトのヘッダ内の情報を評価することによって、特定のスタックに割り当てられる。前述の例示的な実施例では、３２バイトの容量のメモリ・オブジェクトはよって、第２のスタック７に割り当てられる。何れの場合にも、メモリ・オブジェクトは、ロックフリー・プッシュ操作２９又は２９‘それぞれによって第２のスタック７に戻される。最後の手順段階３０は、このようにして戻された第２のスタックのメモリ・オブジェクトが、適宜、後続コールに利用可能にされることを示している。前述の通り、この次のコールは次いで、ロックフリー・ポップ操作によってスレッドに利用可能にされ得る。
【００２６】
既に説明したように、メモリの浪費の削減は、要求されたオブジェクト容量の頻度分布を作成することによってスタック６乃至９の初期化において達成することが可能である。
これは、種々の処理の実行中に個々の処理について定めることも可能である。その従スレッドによってこの種の処理を再起動させた場合、スタック６及び９の適合させた容量分布を可能にするために、アクセスが、先行処理から先行して判定された頻度分布まで得られる。システムは、インテリジェント・システムとして設計することが可能である。すなわち、新たな実行それぞれによって、メモリ要求の容量分布について既に得られた情報を更新することが可能になり、それぞれ更新されたデータを、処理の新たなコールそれぞれに用いることが可能である。
【００２７】
本発明は、提示した例示的な実施例に限定されるものでない。それどころか、前述の個々の特徴の如何なる必要な組み合わせも可能である。
【図面の簡単な説明】
【００２８】
【図１】双方向リストによる既知のメモリ管理を略示する図である。
【図２】スタッキング機能、並びにアトミック検索及び復帰機能によるメモリ管理を示す図である。
【図３】本発明による、メモリ管理の手順段階を略示する図である。
【図１】
2008542933.tif 000003
【図２】
2008542933.tif 000004
【図３】
2008542933.tif 000005
【手続補正書】
【提出日】平成19年4月10日(2007.4.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ管理の方法であって、
メモリ・オブジェクト（10.1,10.2,…,10.k）に対して少なくとも１つのスタック（6,7,8,9）を作成する工程と、
アトミック操作によってスタック（6,7,8,9）からのメモリ・オブジェクト（10.k）に対する要求を実行する工程と、
アトミック操作によってメモリ・オブジェクト(10.k)を前記スタック（6,7,8,9）に戻す工程とを備え、
前記スタック（6,7,8,9）の初期化後、前記スタック（6,7,8,9）においてメモリ・オブジェクト（10.i)は当初何ら存在せず、それぞれのケースにおいて、メモリ容量に対する第１の要求の場合、メモリ・オブジェクトがシステムメモリ管理によって要求され、該メモリ・オブジェクトは、該メモリ・オブジェクトが戻されるとスタック（6,7,8,9）に割り当てられ、
前記システムメモリ管理による前記メモリ・オブジェクトに対する前記要求前に、前記メモリ・オブジェクトの容量が、前記初期化されたスタック（6,7,8,9）の容量、及びメモリ容量に対する現在の要求の容量によって定められる方法。
【請求項２】
請求項１記載の方法であって、
いくつかのスタック（6,7,8,9)が、別々のサイズのメモリ・オブジェクト（１６バイト、３２バイト、６４バイト、１２８バイト）に対してそれぞれ作成される方法。
【請求項３】
請求項１又は２に記載の方法であって、
メモリ・オブジェクト（10.k）の検索前に、メモリ要求との比較による次に大きな容量（１６バイト、３２バイト、６４バイト、１２８バイト）のメモリ・オブジェクトを有するスタック（6,7,8,9）それぞれが選択される方法。
【請求項４】
請求項１乃至３の何れか一項に記載の方法であって、
前記スタック（6,7,8,9）におけるメモリ・オブジェクト（10.i）の容量を定めるために、メモリ・オブジェクト容量の頻度分布が処理中に更新され、前記処理の新たな実行の時点で、それぞれ更新された頻度分布が、前記スタック（6,7,8,9）の初期化の基礎として用いられる方法。
【請求項５】
電気通信装置のコンピュータ上又はディジタル信号プロセッサ上でソフトウェアが実行されると請求項１乃至４の何れか一項に記載の工程全てを実現するために、マシンで読み取り可能な担体上に記憶されたプログラムコード手段を備えたコンピュータ・ソフトウェア・プロダクト。
【請求項６】
電気通信装置のコンピュータ上又はディジタル信号プロセッサ上でソフトウェアが実行されると請求項１乃至４の何れか一項に記載の工程全てを実現するプログラムコード手段を備えたコンピュータ・ソフトウェア。
【国際調査報告】
2008542933.tif 000006
2008542933.tif 000007
2008542933.tif 000008
2008542933.tif 000009
2008542933.tif 000010
2008542933.tif 000011