(57)【要約】      （修正有）【課題】リングバッファに記録したログのうち、所要のデータのみを抽出して作業メモリにコピーする。【解決手段】制御部２６は、データ抽出プログラムに従って、所要のデータの容量と同一容量の領域のみを作業メモリ２４に確保してリングバッファ２３から所要のデータを抽出する。検索範囲決定部は、所定のデータ種別条件を満たすデータ要素により構成される所要のデータが含まれる範囲を検索範囲としてリングバッファ２３に対して決定するとともに、所要のデータの容量を算出する。領域確保部は、検索範囲決定部により算出された所要のデータの容量と同一容量の領域を作業メモリ２４に確保する。抽出部は、リングバッファ２３の全範囲のうち検索範囲決定部により決定された範囲を検索して所要のデータを抽出し、この抽出した所要のデータを領域確保部により確保された作業メモリ２４の領域にコピーする。【選択図】図２
2010182200.tif 000002
【特許請求の範囲】
【請求項１】
データ要素を格納した複数のレコードにより構成されたリングバッファと、
所定のデータ種別条件を満たす前記データ要素により構成される所要のデータが含まれる範囲を検索範囲として前記リングバッファに対して決定するとともに、前記所要のデータの容量を算出する検索範囲決定部と、
前記検索範囲決定部により算出された前記所要のデータの容量と同一容量の領域を作業メモリに確保する領域確保部と、
前記リングバッファの全範囲のうち前記検索範囲決定部により決定された前記範囲を検索して前記所要のデータを抽出し、この抽出した前記所要のデータを前記領域確保部により確保された前記作業メモリの領域にコピーする抽出部と、
を備えたことを特徴とする携帯端末機。
【請求項２】
前記所要のデータは、
前記リングバッファの全ての前記データ要素のうち、前記所定のデータ種別条件を満たす前記データ要素により構成され、かつ、前記所要のデータの容量が所定の容量より大きいと、前記所定の容量以下となるよう最も古い前記データ要素を格納したレコードである先頭レコードに時系列的に近い前記所定のデータ種別条件を満たす前記データ要素から順に前記所要のデータから除外された、
請求項１記載の携帯端末機。
【請求項３】
前記検索範囲決定部は、
前記検索範囲の開始アドレスである検索開始アドレスを最も古い前記データ要素を格納したレコードである先頭レコードの開始アドレスである先頭アドレスに設定し、前記先頭レコードに格納された前記データ要素から最も新しい前記データ要素を格納したレコードである末尾レコードまで順次、前記所定のデータ種別条件を満たす前記データ要素のデータ長を積算し、この積算したデータ長が前記所定の容量より大きくなると、前記積算したデータ長が前記所定の容量以下となるよう前記先頭レコードに時系列的に近い前記所定のデータ種別条件を満たす前記データ要素を記憶したレコードから順に前記検索範囲から除外するように前記検索範囲の開始アドレスを再設定し、
前記抽出部は、
前記リングバッファのうち前記検索範囲決定部により設定された前記検索範囲の開始アドレスから前記末尾レコードまでの範囲で前記所定のデータ種別条件を満たす前記データ要素を抽出し、この抽出した前記データ要素を前記領域確保部により確保された前記作業メモリの領域に順次コピーする、
請求項１または２に記載の携帯端末機。
【請求項４】
前記領域確保部は、
前記検索範囲決定部が積算した前記所定の容量以下のデータ長と同一容量の領域を前記作業メモリに確保する、
請求項３記載の携帯端末機。
【請求項５】
前記データ要素は、システムにより出力されたログにより構成された、
請求項１ないし４のいずれか１項に記載の携帯端末機。
【請求項６】
所定のシステム状態に移行すると、
前記検索範囲決定部は、自動的に前記所定のデータ種別条件を満たす前記前記データ要素により構成される前記所要のデータが含まれる範囲を前記リングバッファに対して決定するとともに、前記所要のデータの容量を算出し、
前記領域確保部は、前記所要のデータの容量と同一容量の領域を作業メモリに確保し、
前記抽出部は、前記リングバッファのうち前記検索範囲決定部により決定された前記範囲を検索して前記所要のデータを抽出し、この抽出した前記所要のデータを前記領域確保部により確保された前記作業メモリの領域にコピーする、
請求項５記載の携帯端末機。
【請求項７】
前記所定のシステム状態は、
前記システムに異常が生じることにより前記システムの再起動が開始された状態である、
請求項６記載の携帯端末機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの一時的な記憶媒体としてリングバッファ等を用いる携帯端末機に関する。
【背景技術】
【０００２】
携帯電話機などの携帯端末機は、機器全体を小型化および軽量化するために、各種データの記憶媒体を小容量化することが重要である。
【０００３】
従来の携帯端末機には、データを一時的に記憶しておく記憶媒体としてメモリ効率がよいリングバッファ等を用い、この一時的な記憶媒体から必要なデータのみを抽出して利用可能とするものがある。たとえば、特開２００５−１６５９３２号公報（特許文献１）に開示されたログ管理装置は、リングバッファに機器の動作中の履歴情報（以下、ログという）を蓄積し、蓄積されたログから所定の条件を満たすログ要素（以下、所要のログという）を抽出可能に構成され、この抽出された所要のログを、ネットワークを介して他機（ログ受信装置）に送信したり自機の他の記憶媒体に格納したりすることができるようになっている。
【０００４】
このログ管理装置によれば、リングバッファ（ログの一時的な記憶媒体）を利用することにより、所要のログを格納する記憶媒体には大容量の記憶媒体を必要としないため、所要のログを格納する記憶媒体としてフラッシュメモリなどの小容量の記憶媒体を適用することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１６５９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、リングバッファは、内部データを参照する場合、先頭レコード（最も古いレコード）から順にレコードを辿っていかないと、どこになにが記録されているかあるか把握できないようになっている。このため、リングバッファは仕様上、データの検索、抽出や置換などの処理には不向きであるといえる。
【０００７】
たとえば、ユーザが、リングバッファに記憶されたデータのうち、所要のデータとして、末尾レコード（最新レコード）から先頭レコード側（最も古いレコード側）に向かって所定の条件を満たすレコードを所定の量だけ必要とする場合を考える。この場合、従来の技術では、機器の制御部（ＣＰＵなど）は、先頭レコードからデータを順次検索し、所定の条件を満たすレコードを全て作業メモリにコピーし、最後に作業メモリ上で所定の量だけ切り出すことが必要となる。このとき、所定の条件を満たすレコードの総容量が事前には不明であるため、機器の制御部（ＣＰＵなど）は、リングバッファの記憶容量と同一容量の領域を作業メモリに確保する必要がある。
【０００８】
しかし、一般に、ユーザが必要とするデータはリングバッファに記憶されたデータの一部に過ぎず、作業メモリに確保された領域には無駄な領域が生じてしまうことが多い。
【０００９】
本発明は、上述した事情を考慮してなされたもので、所要のデータサイズ分の領域を作業メモリに確保してリングバッファから所要のデータを抽出することができる携帯端末機を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る携帯端末機は、上述した課題を解決するために、データ要素を格納した複数のレコードにより構成されたリングバッファと、所定のデータ種別条件を満たす前記データ要素により構成される所要のデータが含まれる範囲を検索範囲として前記リングバッファに対して決定するとともに、前記所要のデータの容量を算出する検索範囲決定部と、前記検索範囲決定部により算出された前記所要のデータの容量と同一容量の領域を作業メモリに確保する領域確保部と、前記リングバッファの全範囲のうち前記検索範囲決定部により決定された前記範囲を検索して前記所要のデータを抽出し、この抽出した前記所要のデータを前記領域確保部により確保された前記作業メモリの領域にコピーする抽出部と、を備えたことを特徴とするものである。
【発明の効果】
【００１１】
本発明に係る携帯端末機によれば、所要のデータサイズ分の領域のみを作業メモリに確保してリングバッファから所要のデータを抽出することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る携帯端末機の一実施形態を示す概略的な全体構成図。
【図２】携帯電話機の内部構成例を概略的に示すブロック図。
【図３】リングバッファがレコードにより構成される様子の一例を示す説明図。
【図４】レコードの構成の一例を示す説明図。
【図５】従来の技術により所要のデータをリングバッファから作業メモリにコピーする際の様子の一例を示す説明図。
【図６】制御部のＣＰＵによる機能実現部の構成例を示す概略的なブロック図。
【図７】本発明に係る携帯電話機により検索範囲決定部により決定された検索範囲から抽出された所要のデータが作業メモリにコピーする際の様子の一例を示す説明図。
【図８】携帯電話機の制御部により、所要のデータの容量と同一容量の領域のみを作業メモリに確保してリングバッファから所要のデータを抽出する処理を実行する際の手順を示すフローチャート。
【図９】図８のステップＳ１で検索範囲決定部により実行される、検索範囲の決定処理の手順を示すサブルーチンフローチャート。
【図１０】図９のステップＳ２０で検索範囲決定部により実行される、検索範囲の調整処理の手順を示すサブルーチンフローチャート。
【図１１】（ａ）は検索開始アドレスが先頭アドレスである場合の検索範囲の一例を示す説明図、（ｂ）は検索開始アドレスが先頭レコードの次のレコードの開始アドレスに変更された様子の一例を示す説明図、（ｃ）は積算データ長が所定の容量以下となるよう、検索範囲から最も古い所定の条件を満たす種別のデータ要素を記憶したレコードを除外すべく、検索開始アドレスがこのレコードの次のレコードの開始アドレスに変更された様子の一例を示す説明図。
【図１２】図８のステップＳ３で抽出部により実行される、リングバッファの全範囲のうち検索範囲決定部により決定された範囲を検索して所要のデータ（ログ）を抽出し、この抽出した所要のログを領域確保部により確保された作業メモリの領域にコピーする際の手順を示すサブルーチンフローチャート。
【発明を実施するための形態】
【００１３】
本発明に係る携帯端末機の実施の形態について、添付図面を参照して説明する。図１は、本発明に係る携帯端末機の一実施形態を示す概略的な全体構成図である。図１には携帯端末機が開いている状態における正面からみた外観図を示した。なお、本発明は、データの一時的な記憶媒体としてリングバッファ等を用いる携帯端末機に広く適用することができる。本実施形態では、本発明に係る携帯端末機として、携帯電話機を用いる場合の一例について示した。
【００１４】
また、以下の実施形態では、リングバッファに携帯電話機の動作中の履歴情報（ログ）が記憶される場合の一例について説明する。
【００１５】
携帯電話機１０は、第１の筐体１１、第２の筐体１２、および第２の筐体１２に対し第１の筐体１１を開閉自在に連結する連結部１３を有する。
【００１６】
第１の筐体１１には、図１に示すように、操作部１４およびスピーカ１５が設けられる。また、一方、第２の筐体１２には、表示部１６およびマイクロフォン１７が設けられる。
【００１７】
第２の筐体１２は、第１の筐体１１に対して、開閉軸を中心として矢印Ｘの方向に開閉自在となるように、連結部１３（ヒンジ）を介して連結される。第２の筐体１２が開閉軸を中心として矢印Ｘの方向に回転することにより、携帯電話機１０は、開いている状態（図１参照）と、閉じた状態とで位置決めすることができる。
【００１８】
操作部１４は、たとえばキーボード、タッチパネル、テンキーなどの一般的な入力装置により構成され、ユーザの操作に対応した操作入力信号を出力する。
【００１９】
スピーカ１５は、受話音声をはじめとした各種の情報に対応した音声を発生する。
【００２０】
表示部１６は、たとえば液晶ディスプレイやＯＬＥＤ（Organic Light Emitting Device）ディスプレイなどの一般的な表示出力装置により構成され、表示部１６の背景画像（壁紙）、壁紙に重畳表示される電池残量や電波強度を概略的に示す画像などの各種アイコンや、着信時に表示される画像および映像などを表示する。
【００２１】
マイクロフォン１７は、ユーザによる音声入力を音声信号に変換して送話を行う。
【００２２】
図２は、携帯電話機１０の内部構成例を概略的に示すブロック図である。
【００２３】
図２に示すように、携帯電話機１０は、さらにアンテナ２１、送受信部２２、データの一時的な記憶媒体としてのリングバッファ２３、作業メモリ２４、記憶部２５、および制御部２６を有する。
【００２４】
アンテナ２１は、図示しない無線基地局との間で通信電波の送受信を行う。
【００２５】
送受信部２２は、無線信号を送受信する無線回路であり、制御部２６から出力される通信データを変調し、アンテナ２１を介して送信する。また、アンテナ２１を介して受信した通信データを復調し、主制御部２６へ出力する。通信データには、少なくとも通話のための音声データ、および作業メモリ２４にコピーされた所要のデータ（所要のログ）が含まれる。
【００２６】
図３は、リングバッファ２３がレコードにより構成される様子の一例を示す説明図である。また、図４は、レコードの構成の一例を示す説明図である。
【００２７】
図３に示すように、リングバッファ２３は、複数のレコードにより構成される。各レコードには、図４に示すように、各レコードに記憶されたデータ（以下、データ要素という）のデータ長（容量）およびデータ要素の種別の情報が少なくともヘッダ情報として付加される。たとえば、リングバッファ２３に携帯電話機１０のログが記憶される場合、リングバッファ２３の各レコードには、オペレーティングシステムにより出力されるログ要素が、このログ要素のデータ長および種別の情報をヘッダ情報として付加されて記憶される。
【００２８】
ここで、ログ要素の種別の情報とは、操作部１４からのイベントログか、電池残量やアラーム機能発現などのステータスか、致命的なエラーが生じたことに伴うログか、などで分類された情報であってもよいし、たとえばレベル１〜レベル５などの携帯電話機１０に対する影響度（重要度）に応じて複数段階にレベル分けされた情報であってもよいし、両者の組み合わせであってもよい。以下の説明では、ログ要素の種別が、携帯電話機１０に対する影響度（重要度）に応じてレベル１（重要度低）〜レベル５（重要度高）の５段階にレベル分けされる場合の例について示す。
【００２９】
リングバッファ２３は、制御部２６により制御されて、様々なデータ長のデータ要素（ログ要素など）を記憶したレコードを格納することができる。制御部２６は、リングバッファ２３に書込みを行う場合、それまでの最新レコードに続くアドレスにヘッダ情報を付加してデータ要素を記憶させる。また、リングバッファ２３の終端アドレス（図３の紙面右下のアドレス）に到達すると、制御部２６は、リングバッファ２３の始端アドレス（図３の紙面左上のアドレス）に上書きしていく。このため、最も古いデータ要素を格納したレコードである先頭レコードは、始端アドレスから書き込まれているとは限らない。
【００３０】
したがって、制御部２６は、リングバッファ２３から読出しを行うために、先頭レコードの開始アドレス（以下、先頭アドレスという）を必要とする。また、制御部２６は、現在アクセスしているレコードの開始アドレスを必要とする。この先頭アドレスおよびアクセス中のアドレスは、たとえばそれぞれオート変数として保持しておくとよい。
【００３１】
制御部２６は、リングバッファ２３から所定の種別のデータ要素の読出しを行うためにリングバッファ２３の全てのレコードに記憶されたデータ要素を検索する場合、まず先頭アドレスにアクセスし、先頭レコードを注目レコード（これからアクセスすべきレコード）とし、先頭アドレスを注目アドレスとして、先頭レコードのヘッダ情報から先頭レコードのデータ長の情報を取得する。先頭アドレスおよび先頭レコードのデータ長の情報から、先頭レコードに続くレコードの開始アドレスを得ることができる。続いて、この先頭レコードに続くレコードを注目レコードとし、この注目レコードの開始アドレスを注目アドレスとして注目レコードのヘッダ情報から注目レコードのデータ長の情報を取得する。注目アドレスおよび注目レコードのデータ長の情報から、注目レコードに続くレコードの開始アドレスを得ることができる。これを繰り返すことにより、制御部２６は最終的に最も新しいデータ要素を格納したレコードである末尾レコードにアクセスすることができる。
【００３２】
つまり、制御部２６は、リングバッファ２３に対してランダムにアクセスすることはできない。所定の種別のデータ要素を記憶したレコードにアクセスするためには、制御部２６は、まず先頭レコードにアクセスし、先頭レコードから順次レコードをたどっていくことが必要となる。
【００３３】
図５は、従来の技術により所要のデータをリングバッファ２３から作業メモリ２４にコピーする際の様子の一例を示す説明図である。
【００３４】
たとえば、システムに不測の事態が発生した場合は、ログを解析することにより、ソフトウェアやハードウェアの不具合を特定することができる。従来、リングバッファ２３にログを記憶させる携帯電話機において、リングバッファ２３は、元々、携帯電話機から有線経由で取得することを前提として作られていた。このため、リングバッファ２３の容量は無線通信を考慮したサイズではなく、比較的大きいものが多い。
【００３５】
ところが、最近、無線経由でログを取得する方法が広く用いられるようになってきたため、ネットワーク負荷を低減するように、リングバッファ２３から所定の条件にマッチするログを所定の容量だけ抽出する技術の開発が望まれている。この所定の容量は、携帯電話機１０がログを送信するときに用いる無線通信プロトコルやその他の仕様によりあらかじめ上限として設定されている容量であることが多い。このため、リングバッファ２３からこの所定の容量（仕様による上限サイズなど）を超えるログを抽出しても、所定の容量以下となるようにデータの調整を行う必要がある。
【００３６】
特に、システムに不測の事態が発生した場合に行われるログ解析に重要なログは、できるだけ時系列的に現在に近いものである。したがって、所定の容量（仕様による上限サイズなど）以下となるようにログ要素の取捨選択による調整を行う際には、できるだけ時系列的に現在に近いログで所要のログが構成されるようにすることが好ましい。
【００３７】
このように、携帯電話機１０のユーザや管理者が、所要のデータとして、末尾レコード（最新レコード）から先頭レコード側（最も古いレコード側）に向かって所定の条件を満たすデータ要素を所定の量だけ必要とする場合、従来の技術では、図５に示すように、制御部２６は、先頭レコードからデータを順次検索し、所定の条件を満たすレコードを全て作業メモリ２４にコピーし、最後に作業メモリ２４上で所定の量だけ切り出すことが必要となる。このとき、所定の条件を満たすレコードの総容量が事前には不明であるため、制御部２６は、リングバッファ２３の記憶容量と同一容量の領域を作業メモリ２４に確保する必要がある。このため、図５の作業メモリ２４に太線で示した領域以外の領域のように、確保されたものの結果的に無駄となってしまう領域が生じてしまう場合が多い。
【００３８】
しかし、携帯電話機１０の作業メモリ２４は、機器全体を小型化および軽量化するために、小容量であることが多い。このため、リングバッファ２３から所要のデータを抽出する場合に生じる無駄な作業メモリ２４の占有が、システムを不安定にしたり動作不良の原因となったりする場合がある。
【００３９】
そこで、本実施形態に係る携帯電話機１０は、所定の種別条件を満たすログ要素を抽出する際に、時系列的に現在に近いログ要素で構成され、かつ抽出されたログ要素の総容量が所定の容量以下となるように複数のログ要素（所要のログ）を抽出し、この所要のログの容量と同一容量の領域のみを作業メモリ２４に確保するようにする。
【００４０】
作業メモリ２４は、たとえばＲＡＭにより構成され、ＣＰＵが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。また、作業メモリ２４は、制御部２６により制御されて、リングバッファ２３から所要のデータをコピーされる。このコピーにあたり、制御部２６は、作業メモリ２４の領域のうち所要のデータの容量と同一容量の領域のみを確保し利用する。
【００４１】
記憶部２５は、データの書き換えが可能な不揮発性のメモリであり、たとえば電子メールデータや音楽データなどの各種データを記憶している。
【００４２】
制御部２６は、ＣＰＵ、およびＲＯＭをはじめとする記憶媒体などにより構成され、この記憶媒体に記憶されたプログラムに従って、携帯電話機１０の処理全体を制御する。
【００４３】
制御部２６のＣＰＵは、ＲＯＭをはじめとする記憶媒体に記憶されたデータ抽出プログラムおよびこのプログラムの実行のために必要なデータを作業メモリ２４へロードし、このデータ抽出プログラムに従って、所要のデータの容量と同一容量の領域のみを作業メモリ２４に確保してリングバッファ２３から所要のデータを抽出する処理を実行する。なお、このデータ抽出プログラムは、ＢＩＯＳに組み込まれてもよい。
【００４４】
制御部２６のＲＯＭをはじめとする記憶媒体は、携帯電話機１０の起動プログラムやデータ抽出プログラムをはじめとする各種プログラムを実行するために必要な各種データを記憶する。
【００４５】
なお、ＲＯＭをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、ＣＰＵにより読み取り可能な記録媒体を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は電子ネットワークを介してダウンロードされるように構成してもよい。
【００４６】
図６は、制御部２６のＣＰＵによる機能実現部の構成例を示す概略的なブロック図である。なお、この機能実現部は、ＣＰＵを用いることなく回路などのハードウエアロジックによって構成してもよい。
【００４７】
図６に示すように、制御部２６のＣＰＵは、データ抽出プログラムによって、少なくとも検索範囲決定部３０、領域確保部４０および抽出部５０として機能する。この各部３０、４０および５０は、作業メモリ２４の所要のワークエリアを、データの一時的な格納場所として利用する。
【００４８】
図７は、本発明に係る携帯電話機１０の検索範囲決定部３０により決定された検索範囲から抽出された所要のデータが作業メモリ２４にコピーされる際の様子の一例を示す説明図である。
【００４９】
検索範囲決定部３０は、注目レコード設定部３１、検索開始アドレス設定部３２、種別取得部３３、種別判定部３４、データ長取得部３５、積算データ長算出部３６、データ容量判定部３７および末尾レコード判定部３８を有する。この検索範囲決定部３０は、図７左の太線に示すように所定のデータ種別条件を満たすデータ要素により構成される所要のデータが含まれる範囲を検索範囲としてリングバッファ２３に対して決定するとともに、所要のデータの容量を算出する。
【００５０】
注目レコード設定部３１は、制御部２６が次にアクセスすべきレコードを注目レコードに設定し、この注目レコードの開始アドレス（注目アドレス）を作業メモリ２４の所要のワークエリアなどに一時的に記憶させる。
【００５１】
検索開始アドレス設定部３２は、検索開始アドレスを作業メモリ２４の所要のワークエリアなどに一時的に記憶させることにより、検索開始アドレスを設定する。
【００５２】
種別取得部３３は、現在アクセス中のレコードに記憶されたデータ要素の種別の情報を取得する。
【００５３】
種別判定部３４は、種別取得部３３により取得されたデータ種別が所定の条件を満たす種別であるか否かを判定する。
【００５４】
データ長取得部３５は、現在アクセス中のレコードのデータ長を取得する。
【００５５】
積算データ長算出部３６は、データ長取得部３５により取得されたデータ長を、作業メモリ２４の所要のワークエリアに一時的に記憶されているデータ長の積算値に対して必要に応じて積算または減算する。
【００５６】
積算データ長算出部３６は、データ長取得部３５により取得されたデータ長を、作業メモリ２４の所要のワークエリアに一時的に記憶されているデータ長の積算値に対して積算することにより、所定のデータ種別条件を満たすデータ要素の積算データ長を算出する。
【００５７】
データ容量判定部３７は、積算データ長が所定の容量以下であるか否かを判定する。たとえば、所要のログを無線送信するために抽出する場合、無線送信に関する仕様上の上限容量などにより所要のログに対する所定の容量が決定される。
【００５８】
末尾レコード判定部３８は、現在アクセス中のレコードの次のレコードが先頭レコードまたは空レコードであるか否かを判定することにより、現在アクセス中のレコードが末尾レコードであるか否かを判定する。
【００５９】
領域確保部４０は、図７右に示すように、検索範囲決定部３０により算出された所要のデータの容量と同一容量の領域を作業メモリ２４に確保する。
【００６０】
抽出部５０は、検索開始アドレス取得部５１、データコピー部５２、注目レコード設定部３１、種別取得部３３、種別判定部３４および末尾レコード判定部３８を有する。この抽出部５０は、図７に示すように、リングバッファ２３の全範囲のうち検索範囲決定部３０により決定された範囲を検索して所要のデータを抽出し、この抽出した所要のデータを領域確保部４０により確保された作業メモリ２４の領域にコピーする。
【００６１】
なお、抽出部５０の注目レコード設定部３１、種別取得部３３、種別判定部３４および末尾レコード判定部３８については、検索範囲判定部の注目レコード設定部３１、種別取得部３３、種別判定部３４および末尾レコード判定部３８と同様の構成を有するため、同一符号を付して説明を省略する。
【００６２】
検索開始アドレス取得部５１は、作業メモリ２４の所要のワークエリアなどに一時的に記憶された検索開始アドレスを取得する。
【００６３】
データコピー部５２は、種別判定部３４により所定の条件を満たす種別であると判定されたデータ要素を作業メモリ２４にコピーする。
【００６４】
次に、本実施形態に係る携帯電話機１０の動作の一例について説明する。
【００６５】
図８は、携帯電話機１０の制御部２６により、所要のデータの容量と同一容量の領域のみを作業メモリ２４に確保してリングバッファ２３から所要のデータを抽出する処理を実行する際の手順を示すフローチャートである。図８において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。なお、以下の手順においては、プログラムの実行のために必要なデータが作業メモリ２４の所要のワークエリアに適宜一時的に記憶される場合の例について説明したが、この一時的な記憶場所は作業メモリ２４に限られず、たとえばＣＰＵのキャッシュメモリでもよいし記憶部２５でもよい。
【００６６】
この手順は、先頭アドレスの情報がオート変数にセットされるなどして制御部２６により利用可能な状態となってスタートとなる。
【００６７】
なお、以下の説明では、リングバッファ２３が携帯電話機１０のログを記憶しており、システムに重大なエラーが生じてシステムが自動的にリセットされ、制御部２６がシステムに重大なエラーが生じたことを検知してスタートとなる場合の例について示す。
【００６８】
制御部２６は、たとえばシステムから所定のイベント信号を入力され、あるいは起動時にリングバッファ２３に記憶されたログ要素のうち最新のものが重要度の高い種別のログ要素であることを検知したりなどして、システムに重大なエラーが生じたことを検知することができる。
【００６９】
リングバッファ２３に携帯電話機１０のログが記憶される場合、この所定のイベント信号としてはシステムにトラブルが発生したことを示唆する信号を挙げることができる。システムにトラブルが発生した場合には、システムの状態が、通常起動状態からユーザによる操作を受け付けない状態（いわゆるフリーズ状態）に移行したり、自動的にまたはユーザの指示により再起動状態に移行したりすることが多い。したがって、リングバッファ２３に携帯電話機１０のログが記憶される場合、制御部２６は、所定のイベント信号として、例えば自動再起動（リセット）が開始される旨のイベント信号をあらかじめ割り当てておくとよい。
【００７０】
まず、ステップＳ１において、検索範囲決定部３０は、検索範囲内に含まれる所定のデータ種別条件を満たすデータ要素の積算データ長が所定の容量以下となるよう、リングバッファ２３に対して検索範囲を決定する（図７左の太線で囲まれた範囲参照）。また、検索範囲決定部３０は、所要のデータ（検索範囲内に含まれる所定のデータ種別条件を満たすデータ要素により構成されるデータ要素群）の容量を算出する。
【００７１】
より具体的には、検索範囲決定部３０は、たとえば重要度レベル４以上の種別であるログ要素を抽出するとともに、検索範囲内に含まれるログ要素の積算データ長が所定の容量以下となるよう最も古いログ要素から順に範囲から除外されるように検索範囲を決定する。また、検索範囲決定部３０は、所要のログ（検索範囲内に含まれるレベル４以上の種別であるログ要素により構成されるログ要素群）の容量を算出する。
【００７２】
次に、ステップＳ２において、領域確保部４０は、所要のデータ（ログ）の容量と同一容量の領域を作業メモリ２４に確保する（図７右参照）。
【００７３】
次に、ステップＳ３において、抽出部５０は、リングバッファ２３の全範囲のうち検索範囲決定部３０により決定された範囲を検索して所要のデータ（ログ）を抽出し、この抽出した所要のログを領域確保部４０により確保された作業メモリ２４の領域にコピーする
以上の手順によって、所要のデータ（ログ）の容量と同一容量の領域のみを作業メモリ２４に確保してリングバッファ２３から所要のデータ（ログ）を抽出することができる。
【００７４】
続いて、検索範囲内に含まれる所定のデータ種別条件を満たすデータ要素の積算データ長が所定の容量以下となるよう、リングバッファ２３に対して検索範囲を決定する際の手順を説明する。
【００７５】
図９は、図８のステップＳ１で検索範囲決定部３０により実行される、検索範囲の決定処理の手順を示すサブルーチンフローチャートである。図９において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００７６】
まず、ステップＳ１１において、注目レコード設定部３１は、先頭アドレスを作業メモリ２４の所要のワークエリアなどに一時的に記憶させることにより、先頭レコードを注目レコードに設定する。この結果、制御部２６はまず先頭レコードにアクセスする。
【００７７】
次に、ステップＳ１２において、検索開始アドレス設定部３２は、先頭アドレスを検索開始アドレスに設定する。このとき、検索範囲は先頭レコードのみとなっている。
【００７８】
次に、ステップＳ１３において、種別取得部３３は、作業メモリ２４の所要のワークエリアなどに一時的に記憶された注目アドレスにアクセスし、注目レコードのデータ種別の情報を取得する。
【００７９】
次に、ステップＳ１４において、種別判定部３４は、種別取得部３３により取得されたデータ種別が所定の条件を満たす種別であるか否かを判定する。所定の条件を満たす種別である場合はステップＳ１５に進む。一方、所定の条件を満たさない種別である場合はステップＳ１８に進む。
【００８０】
次に、ステップＳ１５において、データ長取得部３５は、現在アクセス中のレコードである注目レコードに記憶されたデータ要素のデータ長を、注目レコードのヘッダから取得する。
【００８１】
次に、ステップＳ１６において、積算データ長算出部３６は、データ長取得部３５により取得されたデータ長を、作業メモリ２４の所要のワークエリアに一時的に記憶されているデータ長の積算値に対して積算することにより、所定のデータ種別条件を満たすデータ要素の積算データ長を算出する。このステップＳ１６を初めて実行する際は、作業メモリ２４の所要のワークエリアに何も記憶されていないことに注意する。
【００８２】
次に、ステップＳ１７において、データ容量判定部３７は、積算データ長が所定の容量以下であるか否かを判定する。所定の容量以下の場合は、ステップＳ１８に進む。一方、所定の容量より大きい場合は、ステップＳ２０に進む。
【００８３】
次に、ステップＳ１８において、末尾レコード判定部３８は、現在アクセス中の注目レコードの次のレコードが先頭レコードまたは空レコードであるか否かを判定する。注目レコードの次のレコードが先頭レコードまたは空レコードである場合、すなわち現在アクセス中のレコードが末尾レコードである場合、一連の手順は終了となり図８のステップＳ２に進む。一方、現在アクセス中のレコードが末尾レコードでない場合はステップＳ１９に進む。
【００８４】
次に、ステップＳ１９において、注目レコード設定部３１は、現在アクセス中の注目レコードの次のレコードを新たに注目レコードに設定し、ステップＳ１３に戻る。
【００８５】
他方、ステップＳ１７において積算データ長が所定の容量より大きいと判定されると、ステップＳ２０において、制御部２６は、積算データ長が所定の容量以下となるよう、検索開始アドレスを再設定することにより検索範囲を調整する処理を実行する。
【００８６】
以上の手順により、所定のデータ種別条件を満たすデータ要素の積算データ長が所定の容量以下となるよう、リングバッファ２３に対して検索範囲を決定することができる。
【００８７】
続いて、積算データ長が所定の容量以下となるよう、検索開始アドレスを再設定することにより検索範囲を調整する際の手順を説明する。
【００８８】
図１０は、図９のステップＳ２０で検索範囲決定部３０により実行される、検索範囲の調整処理の手順を示すサブルーチンフローチャートである。図１０において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００８９】
また、図１１は、検索開始アドレスを再設定することにより検索範囲を調整する様子の一例を示す説明図である。図１１（ａ）には検索開始アドレスが先頭アドレスである場合の検索範囲の一例を示す説明図を、図１１（ｂ）には検索開始アドレスが先頭レコードの次のレコードの開始アドレスに変更された様子の一例を示す説明図を、それぞれ示した。また、図１１（ｃ）は、積算データ長が所定の容量以下となるよう、検索範囲から最も古い所定の条件を満たす種別のデータ要素を記憶したレコードを除外すべく、検索開始アドレスがこのレコードの次のレコードの開始アドレスに変更された様子の一例を示す説明図である。
【００９０】
図１０に示す手順の主眼は、所定の容量を超えてしまった積算データ長が所定の容量以下となるよう、検索開始アドレスを再設定することにより、最も古いデータ要素から順に検索範囲外としていくことにある。
【００９１】
ステップＳ２０１において、種別取得部３３は、作業メモリ２４の所要のワークエリアなどに一時的に記憶された検索開始アドレスの情報を取得して検索開始アドレスにアクセスし、検索開始レコードに記憶されたデータ要素の種別の情報を取得する。このステップＳ２０１を初めて実行する場合、検索開始アドレスは先頭アドレスと同一である（図１１（ａ）参照）。
【００９２】
次に、ステップＳ２０２において、種別判定部３４は、種別取得部３３により取得されたデータ種別が所定の条件を満たす種別であるか否かを判定する。所定の条件を満たす種別である場合（図１１（ｂ）参照）はステップＳ２０３に進む。一方、所定の条件を満たさない種別である場合はステップＳ２０６に進む。
【００９３】
次に、ステップＳ２０３において、データ長取得部３５は、現在アクセス中のレコードである検索開始レコードに記憶されたデータ要素のデータ長を、検索開始レコードのヘッダから取得する。
【００９４】
次に、ステップＳ２０４において、積算データ長算出部３６は、データ長取得部３５により取得されたデータ長を、作業メモリ２４の所要のワークエリアに一時的に記憶されているデータ長の積算値から減算する。
【００９５】
次に、ステップＳ２０５において、データ容量判定部３７は、積算データ長が所定の容量以下であるか否かを判定する。所定の容量より大きい場合はステップＳ２０６に進む。一方、所定の容量以下の場合はステップＳ２０７に進む。
【００９６】
次に、ステップＳ２０６において、検索開始アドレス設定部３２は、現在の検索開始レコードの次のレコードの開始アドレスを新たな検索開始アドレスに設定し、ステップＳ２０１に戻る。
【００９７】
他方、ステップＳ２０５で積算データ長が所定の容量以下と判定されると、ステップＳ２０７において、検索開始アドレス設定部３２は、現在の検索開始レコードの次のレコードの開始アドレスを新たな検索開始アドレスに設定する（図１１（ｃ）参照）。
【００９８】
次に、ステップＳ２０８において、種別取得部３３は、新たな検索開始レコードに記憶されたデータ要素の種別の情報を取得する。
【００９９】
次に、ステップＳ２０９において、種別判定部３４は、種別取得部３３により取得されたデータ種別が所定の条件を満たす種別であるか否かを判定する。所定の条件を満たす種別である場合は、一連の手順を終了し、図９のステップＳ１８に進む。一方、所定の条件を満たさない種別である場合はステップＳ２０７に戻る。
【０１００】
以上の手順により、積算データ長が所定の容量以下となるよう、検索開始アドレスを再設定することにより検索範囲を調整することができる。
【０１０１】
なお、ステップＳ２０８およびＳ２０９の手順は検索範囲の開始レコードを所定の条件を満たすデータ要素を記憶したレコードにするための手順であるが、省略しても構わない。省略した場合、ステップＳ２０８およびＳ２０９を行わない分手間が省ける一方、検索範囲が広くなってしまうために図１２で示す手順にかかる手間が増える。
【０１０２】
また、図９および図１０の手順の説明では検索範囲の終了レコード（検索範囲内の最新のレコード）が末尾レコードである場合の例について示したが、検索範囲の終了レコードを所定の条件を満たすデータ要素を記憶したレコードにしてもよい。この場合、所定の条件を満たすデータ要素を記憶した最新のレコードのアドレスを作業メモリ２４の所要のワークエリアなどに記憶しておけばよい。より具体的には、図９のステップＳ１４のＹＥＳからステップＳ１７までの間に「注目レコードのアドレスを記憶媒体の所要の領域に上書き記憶」するステップを実行すれば、図９に示す手順が終了すると同時に検索範囲の終了レコードのアドレスが記憶媒体の所要の領域に記憶されていることになる。
【０１０３】
図１２は、図８のステップＳ３で抽出部５０により実行される、リングバッファ２３の全範囲のうち検索範囲決定部３０により決定された範囲を検索して所要のデータ（ログ）を抽出し、この抽出した所要のログを領域確保部４０により確保された作業メモリ２４の領域にコピーする際の手順を示すサブルーチンフローチャートである。図１２において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【０１０４】
ステップＳ３１において、検索開始アドレス取得部５１は、作業メモリ２４の所要のワークエリアなどに一時的に記憶された検索開始アドレスを取得する。
【０１０５】
次に、ステップＳ３２において、注目レコード設定部３１は、検索開始アドレスを作業メモリ２４の所要のワークエリアなどに一時的に記憶させることにより、先頭レコードを注目レコードに設定する。この結果、制御部２６はまず検索開始アドレスにアクセスする。
【０１０６】
次に、ステップＳ３３において、種別取得部３３は、作業メモリ２４の所要のワークエリアなどに一時的に記憶された注目アドレスにアクセスし、注目レコードのデータ種別の情報を取得する。
【０１０７】
次に、ステップＳ３４において、種別判定部３４は、種別取得部３３により取得されたデータ種別が所定の条件を満たす種別であるか否かを判定する。所定の条件を満たす種別である場合はステップＳ３５に進む。一方、所定の条件を満たさない種別である場合はステップＳ３６に進む。
【０１０８】
次に、ステップＳ３５において、データコピー部５２は、注目レコードのデータ要素を作業メモリ２４にコピーする。
【０１０９】
次に、ステップＳ３６において、末尾レコード判定部３８は、現在アクセス中の注目レコードの次のレコードが先頭レコードまたは空レコードであるか否かを判定する。注目レコードの次のレコードが先頭レコードまたは空レコードである場合、すなわち現在アクセス中のレコードが末尾レコードである場合、一連の手順は終了となる。一方、現在アクセス中のレコードが末尾レコードでない場合はステップＳ３７に進む。
【０１１０】
なお、検索範囲決定部３０により決定された検索範囲の終了レコードが末尾レコードではなく所定の条件を満たすデータ要素を記憶したレコードの場合、所定の条件を満たすデータ要素を記憶した最新のレコード（検索範囲の終了レコード）のアドレスが作業メモリ２４の所要のワークエリアなどに記憶されている。この場合、末尾レコード判定部３８は、ステップＳ３６において、現在アクセス中の注目レコードが検索範囲の終了レコードであるか否かを判定する。
【０１１１】
本実施形態に係る携帯電話機１０は、リングバッファ２３に格納された様々なデータの中から、所要の条件を満たすデータを、所定の容量だけ抽出する際に、作業メモリ２４の占有領域を所定の容量に収めることができる。携帯電話機１０をはじめとする携帯端末機は、一般的に作業メモリ２４の容量に乏しいことが多い。本実施形態に係る携帯電話機１０によれば、リングバッファ２３のデータを抽出する際に無駄な作業メモリ２４を使わずにすむため非常に利便性が高い。
【０１１２】
また、本実施形態に係る携帯電話機１０によれば、システムに重大なエラーが生じてシステムが自動的にリセットされたときに、所定の種別条件を満たす（重要度の高い）ログ要素を最新のものから所定の容量以下だけ抽出することができる。このとき、抽出処理のために確保される作業メモリ２４は所要のログと同一容量の領域のみである。このため、従来の技術に比べ、作業メモリ２４を起動処理に十分集中させることができる。なお、作業メモリ２４にコピーされた所要のログは、システム起動終了後、ユーザ非操作中などにネットワークを介して外部のログ管理装置などに送信するとよい。
【０１１３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、上記実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【０１１４】
たとえば、上記実施形態では、所定の容量に収まるように検索範囲を決定する手順（図９）について説明したが、ログをネットワーク転送しない場合など、特に厳格な容量の上限がない場合には、所定の条件を満たすデータ要素全ての容量と同一容量の領域を作業メモリ２４に確保してもよい。この場合でも、従来の技術に比べ、作業メモリ２４の無駄は十分に削減することができる。
【０１１５】
また、検索開始アドレスや検索範囲の終了レコードの開始アドレスを所定の条件を満たすデータ要素とする場合には、上記実施形態で説明した例のほかにも、所定の条件を満たすデータ要素が抽出されるたびに、すなわち図９のステップＳ１４のＹＥＳからＳ１７の間のどこかに「注目レコードのデータ長および開始アドレスを記憶媒体に記憶」させるステップを実行し、ステップＳ２０に変えて「注目レコードのデータ長および開始アドレスを記憶した記憶媒体のうち最も古いレコードの情報（データ長および開始アドレス）を削除」するステップを実行すればよい。この場合、図９の一連の手順が終了したとき、この記憶媒体の最も古いレコードの開始アドレスが検索開始アドレスとなっており、最も新しいレコードの開始アドレスが検索範囲の終了レコードの開始アドレスとなっている。
【０１１６】
また、本発明は、本実施形態で説明した携帯電話機１０のほかにも、様々な情報処理装置に適用可能であり、特に、ＰＤＡ（Personal Digital Assistant）、携帯型ゲーム機、携帯型音楽再生機、携帯型動画再生機などの携帯端末に適用することが可能である。
【０１１７】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【符号の説明】
【０１１８】
１０  携帯電話機
１１  第１の筐体
１２  第２の筐体
１３  連結部
１４  操作部
１５  スピーカ
１６  表示部
１７  マイクロフォン
２１  アンテナ
２２  送受信部
２３  リングバッファ
２４  作業メモリ
２５  記憶部
２６  制御部
３０  検索範囲決定部
３１  注目レコード設定部
３２  検索開始アドレス設定部
３３  種別取得部
３４  種別判定部
３５  データ長取得部
３６  積算データ長算出部
３７  データ容量判定部
３８  末尾レコード判定部
４０  領域確保部
５０  抽出部
５１  検索開始アドレス取得部
５２  データコピー部
【図１】
2010182200.tif 000003
【図２】
2010182200.tif 000004
【図３】
2010182200.tif 000005
【図４】
2010182200.tif 000006
【図５】
2010182200.tif 000007
【図６】
2010182200.tif 000008
【図７】
2010182200.tif 000009
【図８】
2010182200.tif 000010
【図９】
2010182200.tif 000011
【図１０】
2010182200.tif 000012
【図１１】
2010182200.tif 000013
【図１２】
2010182200.tif 000014