(57)【要約】【課題】立ち上がり時間の短縮を図った交換装置とそのデータ管理方法を提供すること。【解決手段】実施形態によれば、交換装置は、コンピュータの仮想メモリ空間に再配置可能にロードされるプログラムにより電話端末間の交換機能を実現する交換装置であって、保持部と、設定部と、管理部と、再構築部とを具備する。保持部は、交換機能に係わるデータを複数のグループに分割して保持する。設定部は、プログラムの起動時に、オペレーティングシステムから割り振られるベースアドレスを複数のグループごとに設定する。管理部は、プログラムの終了時に、グループごとのベースアドレスとデータサイズ情報とを記録して管理する。再構築部は、プログラムの起動時に、前回終了時に記録したベースアドレスとデータサイズ情報とを参照し、その結果に基づいて複数のグループごとに仮想メモリ空間上におけるデータを再構築する。【選択図】図３
2012138858.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの仮想メモリ空間に再配置可能にロードされるプログラムにより電話端末間の交換機能を実現する交換装置であって、
前記交換機能に係わるデータを複数のグループに分割して保持する保持部と、
前記プログラムの起動時に、オペレーティングシステムから割り振られるベースアドレスを前記複数のグループごとに設定する設定部と、
前記プログラムの終了時に、前記グループごとのベースアドレスとデータサイズ情報とを記録して管理する管理部と、
前記プログラムの起動時に、前回終了時に記録したベースアドレスとデータサイズ情報とを参照し、その結果に基づいて前記複数のグループごとに前記仮想メモリ空間上におけるデータを再構築する再構築部と
を備える交換装置。
【請求項２】
前記再構築部は、前記参照の結果前記データサイズが増加したグループに対するベースアドレスを変更し、前記仮想メモリ空間上に領域を確保し、当該確保された領域に増加したデータを再構築する、請求項１に記載の交換装置。
【請求項３】
コンピュータの仮想メモリ空間に再配置可能にロードされるプログラムにより電話端末間の交換機能を実現する交換装置におけるデータ管理方法であって、
前記交換機能に係わるデータを複数のグループに分割して保持し、
前記プログラムの起動時に、オペレーティングシステムから割り振られるベースアドレスを前記複数のグループごとに設定し、
前記プログラムの終了時に、前記グループごとのベースアドレスとデータサイズ情報とを記録して管理し、
前記プログラムの起動時に、前回終了時に記録したベースアドレスとデータサイズ情報とを参照し、その結果に基づいて前記複数のグループごとに前記仮想メモリ空間上におけるデータを再構築する、データ管理方法。
【請求項４】
前記再構築部することは、前記参照の結果前記データサイズが増加したグループに対するベースアドレスを変更し、前記仮想メモリ空間上に領域を確保し、当該確保された領域に増加したデータを再構築する、請求項３に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施形態は、電話交換システムとそのデータ管理方法に関する。
【背景技術】
【０００２】
従来の電話交換機は組み込み系システムであった。つまり専用のハードウェア上で専用の電話交換ソフトウェアを実行することで、電話交換機の機能が実現されていた。一方、電話交換機を汎用システムとして提供しようというトレンドが有る。この種の装置では汎用のオペレーティングシステム（ＯＳ）が動作する汎用のコンピュータ上で電話交換ソフトウェアを実行することにより、電話交換機能が実現される。このような背景から組み込み系システムと汎用システムとで電話交換ソフトウェアを共用したいというニーズが高まってきている。
【０００３】
組み込み系システムでは、運用に必要なデータは不揮発性メモリ（フラッシュメモリや電源部バックアップされたメモリなど）上に物理アドレスが割り振られて記憶される。これに対し汎用システムでは、データは揮発性メモリ、あるいはハードディスクのスワップ領域を用いた仮想アドレス空間上に論理アドレスが割り振られて記憶される。つまり組み込み系ソフトウェアを汎用システムに移植するには、汎用ＯＳにより管理される論理アドレスにデータを割り振る必要がある。
【０００４】
このようなケースにはメモリマップドファイルを用いて対処するのが一般的である。ところが汎用システムにおいてはメモリマップドファイルのロードされる論理アドレスが不定であるので、移植元の組み込み系ソフトウェアに絶対アドレスを参照するデータが定義されていると汎用システムは機能できない。そこで汎用システムにおいては、システムの起動時に絶対アドレスを相対アドレスに書き換えることが行われている。
【０００５】
しかしながら電話交換機には内線やトランク回路などといった多種多様なリソースがあり、データの種別、種類が多く、データ量そのものも膨大である。このため汎用ＯＳからデータごとに割り振られる論理アドレスをベースアドレスに書き換えるという手順に長い時間を要する。この手順はプログラムの起動時に実施されるので、システムの立ち上がりに長い時間がかかることになる。また、一部のデータのサイズが拡大すると、アドレス空間における当該データ以降の全てのデータのアドレスが変化するので、立ち上がり時間がさらに長期化することになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２４２５５０号公報
【特許文献２】特開平５−２２５１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上述べたように当該技術分野においては組み込み係システムのソフトウェアを汎用システムに移植したいというニーズがある。しかしながらアドレス変換に時間がかかりシステムの立ち上がりが遅くなることから何らかの対処が望まれている。  
目的は、立ち上がり時間の短縮を図った交換装置とそのデータ管理方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態によれば、交換装置は、コンピュータの仮想メモリ空間に再配置可能にロードされるプログラムにより電話端末間の交換機能を実現する交換装置であって、保持部と、設定部と、管理部と、再構築部とを具備する。保持部は、交換機能に係わるデータを複数のグループに分割して保持する。設定部は、プログラムの起動時に、オペレーティングシステムから割り振られるベースアドレスを複数のグループごとに設定する。管理部は、プログラムの終了時に、グループごとのベースアドレスとデータサイズ情報とを記録して管理する。再構築部は、プログラムの起動時に、前回終了時に記録したベースアドレスとデータサイズ情報とを参照し、その結果に基づいて複数のグループごとに仮想メモリ空間上におけるデータを再構築する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係わる交換装置を備えるシステムの一例を示す図。
【図２】実施形態に係わる交換装置の一例を示す機能ブロック図。
【図３】実施形態に係わるデータテーブルの一例を示す図。
【図４】比較のため既存のデータ管理方法を示す概念図。
【図５】グループデータのリソース数が増えた場合の処理の流れを示す図。
【発明を実施するための形態】
【００１０】
図１は、実施形態に係わる交換装置を備えるシステムの一例を示す図である。この実施形態ではＩＰ（Internet Protocol）により音声通話を実現する、いわゆるＶｏＩＰ（Voice over IP）システムを例として採用する。  
図１において、プライベート網はＬＡＮ（Local Area Network）１００を備える。ＬＡＮ１００にはＩＰ端末Ｔ１〜Ｔｎ、多機能電話機１、ソフトフォン２などの電話端末、交換装置３、ゲートウェイ５などが接続される。このうち交換装置３はＮＡＴ（Network Address Translation）ルータ４を介してグローバル網のＩＰ網２００に接続される。ゲートウェイ５はグローバル網の回線交換網３００に接続される。ゲートウェイ５に電話端末６が接続される場合もある。
【００１１】
ＩＰ網２００と回線交換網３００とはゲートウェイ７を介して相互に接続される。これによりＬＡＮ１００、ＩＰ網２００および回線交換網３００の相互の通信が可能になる。プライベート網における電話端末間での内線通話、およびＮＡＴルータ４、ゲートウェイ５を経由する外線通話は交換装置３により制御される。交換装置３はＩＰパケットのルーティングにより交換機能を実現する。ここで、交換装置３は、汎用のコンピュータサーバ等で構成される電子機器に、電話用の交換プログラムをインストールしたもので、このプログラムを実行させることで電話端末間の交換機能を実現するものである。ここで、電話用の交換プログラムを実現するためのプロトコルの一例としては、いわゆるＳＩＰ（Session Initiation Protocol）が用いられる。
【００１２】
図２は、図１に示す交換装置３の一例を示す機能ブロック図である。  
交換装置３は、制御部２１、ノースブリッジ２２、主メモリ２３、ビデオコントローラ２４、表示部２５、サウスブリッジ２６、ＨＤＤ（Hard Disk Drive）２７、マルチドライブ２８、ＬＡＮコントローラ２９、インタフェース部３０、ＰＣカードコントローラ３１、ＢＩＯＳ−ＲＯＭ（Basic Input/Output System ROM）３３、ＥＣ／ＫＢＣ（Embedded Controller/Keyboard Controller）３４、電源コントローラ（ＰＳＣ）３５、電源部３６、キーボード（ＫＢ）３７、マウス用インタフェース（Ｉ／Ｆ）３８、マウス３９、Ｉ／Ｏコントローラ４０などを備える。
【００１３】
制御部２１は、（ＣＰＵ：Central Processing Unit）を主体として交換装置３全体の制御を司るものであり、主メモリ２３をワークエリアとして使用し、ＨＤＤ２７から主メモリ２３にロードされる、オペレーティングシステム（ＯＳ）２３ａ、ドライバ２３ｂ、交換プログラム２３ｃなどを実行する。  
ノースブリッジ２２は、制御部２１とサウスブリッジ２６との間のブリッジ処理、主メモリ２３の制御、ビデオコントローラ２４の制御などを行う各種コントローラを備えている。  
ビデオコントローラ２４は、ＡＧＰ（Accelerated Graphics Port）を介してノースブリッジ２２に接続されており、表示部２５に表示すべきデータの制御を行う。表示部２５は、ビデオコントローラ２４から送られてくるデータを画面上に表示するものであり、ＬＣＤ(Liquid Crystal Display)を備えている。
【００１４】
サウスブリッジ２６は、ハブリンクを介してノースブリッジ２２に接続されており、ＬＰＣ（Low Pin Count）バス上の各種デバイス（ＥＣ／ＫＢＣ３４、Ｉ／Ｏコントローラなど）や、ＰＣＩ（Peripheral Component Interconnect）バス上の各種ＰＣＩデバイス（ＬＡＮコントローラ２９、インタフェース部３０、ＰＣカードコントローラ３１など）や、ＩＤＥ（Integrated Drive Electronics）対応のディスクドライブや、ＵＳＢデバイスなどの制御を行う各種コントローラを備える。
【００１５】
ＨＤＤ２７は、プライマリＩＤＥに対応するデバイスとしてサウスブリッジ２６に接続されており、ＯＳや交換プログラム等の各種プログラム、各種データ２３ｄなどを記憶する内蔵のハードディスクである。マルチドライブ２８は、セカンダリＩＤＥに対応するデバイスとしてサウスブリッジ２６に接続されており、リムーバブルな記録媒体であるＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷを駆動する。
【００１６】
ＬＡＮコントローラ２９は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、有線ＬＡＮの仕様に準拠する通信機能を備え、同じ通信機能を備えた通信装置との間で通信を行うものである。  
インタフェース部３０は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、ＬＡＮ１００およびルータ４の仕様に準拠する通信機能を備え、ＩＰパケットの授受に係わる処理を行う。  
ＰＣカードコントローラ３１は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、ＰＣＭＣＩＡ(Personal Computer Memory Card International Association)の仕様に準拠し、各種のＰＣカードを制御するものである。ＢＩＯＳ−ＲＯＭ３３は、ＬＰＣバスに接続されており、電源が投入された際に主に交換装置３内のハードウェアに対する設定処理などを行うＢＩＯＳ（Basic Input/Output System）を格納している。ＥＣ／ＫＢＣ３４は、ＬＰＣバスに接続されており、電源コントローラ３５やキーボード３７等の入力装置の制御などを行う。このＥＣ／ＫＢＣ３４は、組み込みコントローラであるＥＣ（Embedded Controller）とキーボードコントローラとを一体化したものである。
【００１７】
電源コントローラ３５は、Ｉ2Ｃバスを介してＥＣ／ＫＢＣ３４に接続されており、交換装置３内の各部に供給する電圧を制御する。電源部３６は駆動電力を生成し、交換装置３内の各部に供給する。キーボード３７は、ＥＣ／ＫＢＣ３４に接続されており、各種キーの押下に対応した入力信号をＫＢＣに通知するものである。マウス用インタフェース３８は、マウス３９とＥＣ／ＫＢＣ３４との間の信号のインタフェースを行うものである。マウス３９は、マウス用インタフェース３８に接続されており、クリック操作などにより入力を行うものである。Ｉ／Ｏコントローラ４０は、ＬＰＣバスに接続されており、外部とシリアル信号やパラレル信号の入出力制御を行うと共に、ＦＤＤ３９との入出力制御をも行う。
【００１８】
この交換装置３においては、制御部２１の制御のもとで、主メモリ２３上に展開した交換プログラム２３ｃがＬＡＮコントローラ２９などと協働して所定の交換処理機能を実現する。交換装置３は汎用のコンピュータサーバに交換プログラム２３ｃをロードし、このプログラムを実行させることで電話端末間の交換機能を実現する。交換装置３は、汎用コンピュータと同様に、データが記憶された領域が物理的には不連続なメモリ領域であっても、ソフトウェア（プロセスなど）から見て連続になるように見せかける仮想記憶システムを採用し、メモリアドレスの指定にはベースアドレス指定方式を採用する。
【００１９】
ベースアドレス指定方式とは、ベースアドレスの値とアドレス部の値を加算したものを有効アドレスとする方式である。メモリにロードされたプログラムの先頭アドレスをベースレジスタに設定しておき、ＣＰＵコマンドのアドレス部には、プログラムの先頭を０番地としたときのデータのアドレス(相対位置、変位という)を格納する。そして、命令実行時に、ベースレジスタの値にアドレス部の値を加えた有効アドレスを用いて処理を行う。この方式は、命令のアドレス部の値を直さずに、プログラムをメモリのどこにでもロードして実行することを可能にする。この特性は再配置可能と称される。すなわち交換プログラム２３ｃは、主メモリ２３を用いて形成される仮想アドレス空間上に、再配置可能にロードされる。
【００２０】
ところで、制御部２３は、その処理機能として保持部２１ａ、設定部２１ｂ、管理部２１ｃ、再構築部２１ｄを備える。  
保持部２１ａは、交換機能に係わるデータを複数のグループに分割して、主メモリ２３のデータ領域２３ｄに保持する。なおデータ領域２３ｄは仮想メモリ空間上に設けられる領域である。設定部２１ｂは、交換プログラム２３ｃの起動時に、ＯＳ２３ａから割り振られるベースアドレスを複数のデータグループごとに設定する。管理部２１ｃは、交換プログラム２３ｃの終了時に、データグループごとのベースアドレスとデータサイズ情報とを記録して管理する。再構築部２１ｄは、交換プログラム２３ｃの起動時に、前回終了時に記録したベースアドレスとデータサイズ情報とを参照し、その結果に基づいて各データグループごとに仮想メモリ空間上におけるデータを再構築する。
【００２１】
図３は、この実施形態に係わるデータテーブルの一例を示す図である。この実施形態では、図示するように、交換プログラム２３ｃが機能するために必要なデータは、グループ１、グループ２、…、グループｎというように、機能毎に複数にグループ分けされる。例えばグループ１は内線データ、グループ２はトランクデータ、グループ３は局線データなどに対応する。
【００２２】
図３において、“グループ毎の相対アドレステーブル”は、ＯＳ２３ａから付与された論理アドレス、旧論理アドレス、旧データサイズを記述したテーブルである。論理アドレスは、交換プログラム２３ｃの今回の起動時にＯＳ２３ａから与えられたベースアドレスである。旧論理アドレスは、交換プログラム２３ｃの前回の起動時にＯＳ２３ａから与えられたベースアドレスである。いずれのベースアドレスも仮想記憶システムのもとでは論理アドレスとして提供される。“グループ１データテーブル”〜“グループｎデータテーブル”は、グループ毎に実際のデータの中身を示すものであり、物理的なデータとしてデータ領域２３ｄに動的にアロケートされる。すなわち“グループ１データテーブル”〜“グループｎデータテーブル”は交換プログラム２３ｃが機能するために必要なデータ部として取り扱われるもので、交換プログラム２３ｃが起動すると、交換プログラム２３ｃのテキスト部（コマンドが記載された領域）とともに主メモリ２３にロードされる。
【００２３】
図３において、システムの起動が行なわれると、設定部２１ｂはＯＳ２３ａから付与されたグループ１用の論理アドレスを“グループ毎の相対アドレステーブル”における“ＯＳ２３ａから付与された論理アドレス”に設定する。再構築部２１ｄは旧論理アドレスを参照し、旧アドレスが０であれば新規立上げと判断し、グループ１データテーブルにデータを構築する。
【００２４】
一方、旧アドレスにアドレスが登録されていれば、つまり旧アドレスが０でなければ再構築部２１ｄは再起動と判断し、前回のプログラムの終了時に記録された旧ベースアドレスおよび旧データサイズを、今回のベースアドレスおよびデータサイズとグループごとに比較する。
【００２５】
例えばグループ１について比較を行なった結果、差分が無ければ、グループ１データテーブルがそのまま使用される。差分が有れば、再構築部２１ｄはグループ１データテーブルへのデータの再構築を行なう。その際、データサイズが増加していれば、再構築部２１ｄは仮想メモリ上の別のエリアにグループ１データテーブルを確保し、データの構築を行なう。このような処理は全グループ分にわたって実施される。
【００２６】
図４は、比較のため既存のデータ管理方法を示す概念図である。既存のシステムではデータエリアにおける全てのデータをひとまとめにして管理していた。また各データ（データ１、データ２、…、データｎ）の先頭アドレスは、データ１に与えられたベースアドレスと各データのサイズとに基づく計算により求められていた。このようなアーキテクチャのもとでは、例えばデータ２のサイズが変更されるとそれ以降の全てのアドレスが変更されるためシステムの起動時に時間がかかることとなっていた。
【００２７】
これに対しこの実施形態では、データを複数のグループに分割して管理し、各グループごとにベースアドレスを付与するようにしているため、データサイズ変更の際のアドレス再計算に要する時間を短縮でき、ひいてはシステムの起動にかかる時間を短縮することが可能になる。
【００２８】
図５は、グループデータのリソース数が増えた場合の処理の流れを示す図である。例えばグループ１のリソース数が増加した場合、（１）〜（４）の流れで処理が行われる。  
（１）  グループ１用のデータエリアのメモリを新たに確保する。すなわち、再構築部２１ｄは仮想アドレス空間上の未使用エリア（プログラムおよびデータのいずれにも割り付けられていない領域）を確保すべくＯＳ２３ａに要求する。ＯＳ２３ａはこの要求に応えて未使用のデータエリアを確保する。
【００２９】
（２）  次に、確保したデータエリアにグループ１のデータをコピーする。すなわち再構築部２１ｄは、確保されたデータエリアに当該時点におけるグループ１のデータをコピーし、その旨をＯＳ２３ａに通知する。
【００３０】
（３）  この通知を受けると、ＯＳ２３ａは再構築部２１ｄに指示し、グループ１のデータテーブルへのアドレスポインタを新しく確保されたデータエリアのアドレスに変更する。
【００３１】
（４）  グループ１のデータテーブルへのアドレスポインタの書き換えが完了すると、再構築部２１ｄはその旨をＯＳ２３ａに通知する。これを受けたＯＳ２３ａは、元のグループ１のデータに割り付けられていたメモリ領域を解放する。  
以上の処理手順により、グループ１以外の他のグループのテーブルを移動することなく、仮想メモリ領域を更新することができる。
【００３２】
以上述べたようにこの実施形態では、交換装置の交換プログラムのデータ管理において、データをいくつかのグループに分割して保持する。システムの立ち上がり時にＯＳ２３ａから割当てられるデータへのベースアドレスをグループ毎に設定する。データグループ毎にＯＳ２３ａから割当てられたグループ毎の旧ベースアドレス、旧データサイズ情報を保持し、再立上げ時にこれらの情報を参照してグループ内データの再構築を行う。さらに、グループ内のデータの増加やリソース数の増加が発生した場合は、必要なメモリを別に確保し、増加したグループのベースアドレスだけを変更するようにしている。
【００３３】
このようにデータをグループ単位にまとめ、グループ毎に相対アドレスのベースを持たせ、旧ベースアドレス情報、旧データサイズ情報を参照することで、システムの起動時に汎用ＯＳから割当てられるアドレスから書き換えが必要となるデータエリアを削減するようにしている。このようにすることでアドレスの書き換え時間の削減が可能となる。
【００３４】
さらに各グループ内のデータが増加した場合は、必要なメモリ領域を別の領域に確保して、増加するグループのベースアドレスだけを変更することで、アドレスの変更を最小限に抑えることが可能となる。これらのことから、立ち上がり時間の短縮を図った交換装置とそのデータ管理方法を提供することが可能となる。
【００３５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００３６】
２１…制御部、２１ａ…保持部、２１ｂ…設定部、２１ｃ…管理部、２１ｄ…再構築部、２２…ノースブリッジ、２３…主メモリ、２３ａ…ＯＳ、２３ｂ…ドライバ、２３ｃ…交換プログラム、２４ｄ…データ領域、２４…ビデオコントローラ、２５…表示部、２６…サウスブリッジ、２７…ＨＤＤ、２８…マルチドライブ、２９…ＬＡＮコントローラ、３０…インタフェース部、３１…ＰＣカードコントローラ、３３…ＢＩＯＳ−ＲＯＭ、３４…ＥＣ／ＫＢＣ、３５…電源コントローラ（ＰＳＣ）、３６…電源部、３７…キーボード（ＫＢ）、３８…マウス用インタフェース、３９…マウス、４０…Ｉ／Ｏコントローラ
【図１】
2012138858.tif 000003
【図２】
2012138858.tif 000004
【図３】
2012138858.tif 000005
【図４】
2012138858.tif 000006
【図５】
2012138858.tif 000007