(57)【要約】【課題】  メタデータの合計値をキーとした要素の参照を高速に行うことが可能な情報処理装置を提供する。【解決手段】  順序の決まったデータ列を管理する情報処理装置（プログラム処理部１）は、データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列（参照データ記憶部２）と、指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ指示配列の範囲内のメモリ内容をシフトする機能（ＣＰＵ３）とを有する。【選択図】      図１
2008310455.tif 000002
【特許請求の範囲】
【請求項１】
順序の決まったデータ列を管理する情報処理装置であって、
前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列と、前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする手段とを有することを特徴とする情報処理装置。
【請求項２】
前記データのキーが最初のデータから当該データまでの各データに対応するメタデータの和またはその関数であることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記指示配列のインデックスの関連付けが、前記キーの範囲と前記指示配列のインデックスとが１対１に対応する関係であることを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記指示配列の各インデックスに割り当てられるキーの範囲の幅が、いずれのインデックスに対しても同一であることを特徴とする請求項１から請求項３のいずれか記載の情報処理装置。
【請求項５】
あるデータの削除時に、当該データに対応する指示配列のインデックス範囲だけ、その範囲の直前から先頭、または直後から末尾のメモリ内容をシフトすることを特徴とする請求項１から請求項４のいずれか記載の情報処理装置。
【請求項６】
あるデータの挿入時に、当該データの挿入に必要なインデックス数だけ、挿入直前から先頭、または直後から末尾のメモリ内容をシフトすることを特徴とする請求項１から請求項５のいずれか記載の情報処理装置。
【請求項７】
前記データと前記インデックスとの関係において、単一のインデックスに複数のデータが対応する場合、対応するデータが全て揃ってからデータの追加を行い、またあるデータの削除の際にそのデータと同じインデックスに対応するデータ全てを消去することを特徴とする請求項１から請求項６のいずれか記載の情報処理装置。
【請求項８】
順序の決まったデータ列を管理する情報処理装置に用いる順序付きデータ管理方法であって、
前記情報処理装置に、前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列を設け、
前記情報処理装置が、前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする処理を実行することを特徴とする順序付きデータ管理方法。
【請求項９】
前記データのキーが最初のデータから当該データまでの各データに対応するメタデータの和またはその関数であることを特徴とする請求項８記載の順序付きデータ管理方法。
【請求項１０】
前記指示配列のインデックスの関連付けが、前記キーの範囲と前記指示配列のインデックスとが１対１に対応する関係であることを特徴とする請求項８または請求項９記載の順序付きデータ管理方法。
【請求項１１】
前記指示配列の各インデックスに割り当てられるキーの範囲の幅が、いずれのインデックスに対しても同一であることを特徴とする請求項８から請求項１０のいずれか記載の順序付きデータ管理方法。
【請求項１２】
あるデータの削除時に、当該データに対応する指示配列のインデックス範囲だけ、その範囲の直前から先頭、または直後から末尾のメモリ内容をシフトすることを特徴とする請求項８から請求項１１のいずれか記載の順序付きデータ管理方法。
【請求項１３】
あるデータの挿入時に、当該データの挿入に必要なインデックス数だけ、挿入直前から先頭、または直後から末尾のメモリ内容をシフトすることを特徴とする請求項８から請求項１２のいずれか記載の順序付きデータ管理方法。
【請求項１４】
前記データと前記インデックスとの関係において、単一のインデックスに複数のデータが対応する場合、対応するデータが全て揃ってからデータの追加を行い、またあるデータの削除の際にそのデータと同じインデックスに対応するデータ全てを消去することを特徴とする請求項８から請求項１３のいずれか記載の順序付きデータ管理方法。
【請求項１５】
順序の決まったデータ列を管理する情報処理装置内においてプロセッサに実行させるプログラムであって、
前記情報処理装置に、前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列を設け、
前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする処理を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置及びそれに用いる順序付きデータ管理方法並びにそのプログラムに関し、特に情報機器や通信装置等の情報処理装置に用いられる順序付きデータ管理方法に関する。
【背景技術】
【０００２】
情報機器や通信装置の内部で、データのバッファリングのための一時保存用データ領域は、通常はＦＩＦＯ（Ｆａｓｔ−Ｉｎ  Ｆａｓｔ−Ｏｕｔ）またはＦＩＬＯ（Ｆｉｒｓｔ−Ｉｎ  Ｌａｓｔ−Ｏｕｔ）のデータ構造として実装されている。
【０００３】
一方、多重化機能を有する通信装置における、遅延の抑制と最適負荷分散の両立を目標とするパケットスケジューリング機構においては、データの入出力がＦＩＦＯまたはＦＩＬＯ以外の順序関係で行われる。ここで、一時的なデータ保管領域としては、各経路の輻輳状態に基づいて決まるデータサイズのオフセット分だけキューの先頭からずれたデータを取り出す操作が要求される。この技術については、本願出願人から提案されている。
【０００４】
順序付きデータを管理する方式としては、リスト構造や配列構造が知られている。これらのデータ構造では、任意のキーに対応するデータにアクセスする際に、キーに対応する要素の検索が必要である。尚、データの管理方法としては、データを受取った順にファイルに保存したり、時系列情報のデータを格納したりする方法が、下記の特許文献に記載の技術で提案されている。
【特許文献１】特開平０８−１５３０７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、本発明に関連する順序付きデータ管理方式である行列構造やリスト構造においては、キーに対応する要素の検索が必要である。ハッシュ法等、キーから対応する要素を高速に検索する技術は存在するが、この技術は、例えばメタデータの先頭データからの合計値のように、要素の削除や挿入によって動的に変化するキーを用いる場合に対して容易に適用することができない。
【０００６】
また、動的に変化するキーと要素との関係を常に正しく保つためには、データの削除や挿入等の操作の後に、この操作によって更新が必要となる要素のキーを再設定する必要がある。例えば、先頭要素からのメタデータ合計値をキーとする場合、データ削除後にはそのデータ以降の要素全てのメタデータ合計値が変化するので、削除した要素から末尾要素までの全ての要素につきキーの再設定が必要となる。この再設定を要する要素数が大きくなると、再設定処理に時間がかかるという問題がある。
【０００７】
このように、あるデータへの削除、変更、または新規データ追加等の操作の際に、他のデータのキー値が動的に変化する場合には、ハッシュ法等のキーから対応データの所在を高速に導出する技術も適用することができず、所望のデータへのアクセスに時間がかかるという問題がある。
【０００８】
この問題は、例えばデータサイズのようなメタデータにおいて、先頭データからの合計値等をキーとした場合に生じる。また、配列構造では、データを削除する場合や新規データを末尾以外に追加する際、削除または追加が発生する要素以降の全要素のインデックスを変更しなければならず、配列の要素数が大きい場合には大きな回数の代入操作または大容量のメモリシフト処理が必要となるという問題がある。
【０００９】
そこで、本発明の目的は上記の問題点を解消し、メタデータの合計値をキーとした要素の参照を高速に行うことができる情報処理装置及びそれに用いる順序付きデータ管理方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明による情報処理装置は、順序の決まったデータ列を管理する情報処理装置であって、
前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列と、前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする手段とを備えている。
【００１１】
本発明による順序付きデータ管理方法は、順序の決まったデータ列を管理する情報処理装置に用いる順序付きデータ管理方法であって、
前記情報処理装置に、前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列を設け、
前記情報処理装置が、前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする処理を実行している。
【００１２】
本発明によるプログラムは、順序の決まったデータ列を管理する情報処理装置内においてプロセッサに実行させるプログラムであって、
前記情報処理装置に、前記データ列の各データへの参照を当該データへのキーに関連付けられたインデックスの要素に格納する指示配列を設け、
前記指示配列の任意のインデックスの範囲内の要素が参照する全てのデータのキーを同量だけ変化させる場合にその変化量に対応するインデックス数だけ前記指示配列の範囲内のメモリ内容をシフトする処理を含むことを特徴とする。
【発明の効果】
【００１３】
本発明は、上記のような構成及び動作とすることで、メタデータの合計値をキーとした要素の参照を高速に行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施例について図面を参照して説明する。
【実施例１】
【００１５】
図１は本発明の第１の実施例による情報処理装置のプログラム処理部の構成例を示すブロック図である。図１において、プログラム処理部１は、参照データ記憶部２と、ＣＰＵ（中央処理装置）３と、プログラム記憶部４と、入力端子１１と、出力端子１２とを備え、通信バス１００を介してメモリ５に接続されている。プログラム記憶部４はプログラム４１を格納している。
【００１６】
図２は図１の参照データ記憶部２及びメモリ５の状態を示す図である。図２において、参照データ記憶部２は、変数として複数の単位格納領域２１−０〜２１−３と、指示配列２２と、一時変数集合２３とを含んでいる。単位格納領域２１−０〜２１−３には、一般に複数の順序付けされたデータ２１１−ａ〜２１１−ｈが変数として含まれる。
【００１７】
また、一時変数集合２３には、順序付けされたデータや指示配列２２以外の変数［最後尾メタデータ合計値（ＴＬ）２３１、最後尾データの所属する単位格納領域を指す指示配列インデックス（ＳＬ）２３２］が収容されている。
【００１８】
メモリ５上には、プログラム４１の変数である複数のデータ２１１−ａ〜２１１−ｈに対応する各々別個の領域５１１−ａ〜５１１−ｈと、指示配列２２に対応する連続領域５２とが、プログラム４１によって通信バス１００を介して確保される。
【００１９】
図３は図２の例における各データに対応するメタデータ及びその合計値の例を示す図であり、図４は図２においてデータｉ追加後の参照データ記憶部２及びメモリ５の状態を示す図であり、図５は図４の例における各データに対応するメタデータ及びその合計値の例を示す図である。
【００２０】
図６は図２においてデータ削除後の参照データ記憶部２及びメモリ５の状態を示す図であり、図７及び図８は図１のプログラム処理部１による順序付きデータの管理処理の動作を示すフローチャートである。これら図１〜図８を参照して本発明の第１の実施例による情報処理装置のプログラム処理部による順序付きデータの管理処理の動作について説明する。尚、図７及び図８に示す処理はＣＰＵ３がプログラム４１を実行することで実現される。
【００２１】
本発明の第１の実施例は、先頭データから当該データまでの各データに付随するメタデータの合計値をキーとして、高速なデータ参照及びデータ操作を可能とする順序付きデータ管理方法を示している。
【００２２】
個々のデータ２１１−ａ〜２１１−ｈは、その属性を現すメタデータを伴っており、単位格納領域２１−０〜２１−３内にあるデータａ〜ｈに対応するメタデータの合計は設定値Ｓの近傍となるように、各データは単位格納領域２１−０〜２１−３に割り振られている。
【００２３】
また、一時変数集合２３には、末尾の単位格納領域２１−３に対応する指示配列のインデックス２３１と、最初のデータから末尾のデータまでのメタデータ合計値２３２とが変数として含まれている。
【００２４】
まず、本発明の第１の実施例におけるデータ参照に関する動作について説明する。プログラム処理部１は、入力端子１１からあるメタデータ合計値Ｔに対応するデータへの参照要求を受信すると（図７ステップＳ１）、指示配列２２のＴ／Ｓ番目の要素が指す単位格納領域内にある一部または全てのデータまたはデータへの参照を出力端子１２から要求元に返信する（図７ステップＳ２）。ここで、メタデータとはデータ本体の属性を現すデータのことであり、例えばデータ本体のサイズや欠落ビット数等が挙げられる。
【００２５】
図３には、図２に示す参照データ記憶部２及びメモリ５の状態例における各データに対応するメタデータ及びその合計値の例を示している。ここでは、設定値Ｓ＝５００としている。つまり、メタデータ合計値が５００の倍数の近傍となる毎にデータの所属する単位格納領域が変わり、図３において対応する指示配列インデックスが１インクリメントされている。
【００２６】
例えば、メタデータ合計値Ｔ＝９００に対する参照を要求された場合には、
Ｔ／Ｓ＝５００／９００＝１．８
であり、指示配列のインデックスは整数なので、切り捨てて「１」番目か、切り上げまたは四捨五入して「２」番目の要素を参照することとなる。このいずれを採用するかを決定する機構は、本発明の用途等によって異なる実装が可能である。
【００２７】
本実施例では、Ｔ／Ｓの値を切り上げることとし、指示配列の「２」番目の要素（インデックスは「１」）が指す、図２における単位格納領域２１１−１に含まれるデータｄ，ｅのいずれかまたは全てを参照結果として返す。
【００２８】
次に、本発明の第１の実施例におけるデータ構造末尾への新規データ追加時の動作について説明する。プログラム処理部１は、入力端子１１からデータｉの追加要求を受信すると（図７ステップＳ３）、データｉを追加しても現在の最後尾の単位格納領域２１−３のメタデータ合計値が設定値Ｓ近傍以内ならば（図７ステップＳ６）、データｉを単位格納領域２１−３に追加する（図７ステップＳ７）。
【００２９】
プログラム処理部１は、データｉを追加すると現在の最後尾の単位格納領域２１−３のメタデータ合計値が設定値Ｓ近傍以内でなければ（図７ステップＳ６）、新規の単位格納領域を作成する（図７ステップＳ８）。新規の単位格納領域を作成するか否かの判断機構は、本発明の用途等によって異なる実装が可能である。
【００３０】
ここではデータｉのメタデータ値を２００とし、新規の単位格納領域を作成しなかった場合のデータｉ追加後の参照データ記憶部２及びメモリ５の状態を図４に示し、データとメタデータとの関係表を図５に示す。
【００３１】
但し、プログラム処理部１は、以上の作業に先立ち、必要に応じデータｉの格納に必要な領域をメモリ５上に確保する必要がある（図７ステップＳ４）。また、メモリ領域確保に成功した場合、プログラム処理部１はそれまで最後尾だったデータｈでのメタデータ合計値にデータｉのメタデータ値を加算し、データｉに対応するメタデータ合計値を計算し、その結果で最後尾メタデータ合計値（ＴＬ）２３１を更新する（図７ステップＳ５）。
【００３２】
また、データｉ追加後の、最後尾データの所属する単位格納領域を指す指示配列インデックス（ＳＬ）２３２も、新たな単位格納領域を追加した場合には、１インクリメントした値に更新する（図７ステップＳ９）。図４及び図５に示す例では、最後尾メタデータ合計値（ＴＬ）２３１が、
１８２０＋２００＝２０２０
に更新され、指示配列インデックス（ＳＬ）２３２はデータｉ挿入以前と変わらず「３」となる。
【００３３】
次に、本発明の第１の実施例におけるデータ削除時の動作について説明する。プログラム処理部１は、入力端子１１からメタデータ合計値Ｔに対応するデータ削除要求を受信すると（図８ステップＳ１０）、指示配列２２のＴ／Ｓ番目の要素が指す単位格納領域と、当該単位格納領域に属するデータとを消去する（図８ステップＳ１１）。
【００３４】
プログラム処理部１は、単位格納領域及び当該単位格納領域に属するデータの消去後に、指示配列２２のＴ／Ｓ番目以降のメモリ領域の記憶内容を、指示配列２２の１要素分だけ前方にシフトする（図８ステップＳ１２）。
【００３５】
図６には、Ｔ＝９００として、Ｔ／Ｓ＝１．８を切り上げて「２」番目（インデックスは「１」）の指示配列要素が指す単位格納領域２１−１及びそれに含まれるデータｄ，ｅが消去された状態を示している。単位格納領域２１−１及びそれに含まれるデータｄ，ｅの消去後に、プログラム処理部１は、図２に示す指示配列２２のインデックス「２」以上のメモリ内容を１要素分だけ前方にシフトする。
【００３６】
すると、消去前（図２に示す状態）にインデックス「２」の要素に収納されていた単位格納領域２１−２への参照は、単位格納領域２１−１及びそれに含まれるデータｄ，ｅの消去後に、インデックス「１」の要素に移動し、また消去前にインデックス「３」の要素に収納されていた単位格納領域２１−３への参照は、単位格納領域２１−１及びそれに含まれるデータｄ，ｅの消去後に、インデックス「２」の要素に移動する。
【００３７】
このようにして、ｎまでの全てのインデックスに収納される単位格納領域への参照は、インデックスが「１」だけ減少した要素に移動する。したがって、例えば、この後にＴ＝９００の参照要求を受信した場合には、データｆをリターンすることとなる。各単位格納領域２１−０〜２１−３に属するデータの要領は設定値Ｓに量子化されているので、指示配列２２のインデックス「１」だけのシフトによって、対応するメタデータ合計値の減算相当の更新が自動的に行われる。
【００３８】
このように、本実施例では、指示配列２２のインデックスがメタデータ合計値の関数となっているので、メタデータ合計値に対応するインデックスの検索が不要であるため、メタデータの合計値をキーとした要素の参照を高速に行うことができる。
【００３９】
また、本実施例では、各要素につき、消去済み要素のメタデータ分だけメタデータ合計値を減算する処理を行う必要がなく、単一のメモリシフト処理のみでメタデータ合計値の更新を実現しているので、要素の消去後の各データのメタデータ合計値の更新を高速に行うことができる。
【実施例２】
【００４０】
図９は本発明の第２の実施例による参照データ記憶部及びメモリの状態を示す図である。本発明の第２の実施例による情報処理装置のプログラム処理部は、上記の図１に示す本発明の第１の実施例による情報処理装置のプログラム処理部と同様の構成となっているが、参照データ記憶部及びメモリの状態が異なっている。
【００４１】
すなわち、上記の本発明の第１の実施例では、データ除去時のメタデータ合計値の更新が設定値Ｓを単位として行われるのに対し、必ずしもデータを設定値Ｓの整数倍毎に単位格納領域を構成できるわけではないので、実際に除去されるデータ量と設定値Ｓとの間には誤差がある。その結果、データ参照時に入力するＴと、リターンされるデータに対応するメタデータ合計の実際の値との間にも誤差が生じる。本発明の第２の実施例は、この誤差を一定以下に抑える例を示している。
【００４２】
図９を参照すると、本実施例は、指示配列２２をインデックス指示配列２２Ａと、データ指示配列２２Ｂとに分割している点で、上記の本発明の第１の実施例と異なっている。
【００４３】
データ指示配列２２Ｂの各要素には、本発明の第１の実施例の指示配列２２と同様に、単位格納領域２１−０〜２１−３への参照が格納される。一方、インデックス指示配列２２Ａの各要素には、参照すべきデータ指示配列２２Ｂのインデックスが格納される。単位格納領域２１−０〜２１−３内の要素のメタデータの合計は、設定値Ｓの整数倍近傍に量子化され、かつ実際のメタデータ合計と、設定値Ｓの整数倍との比が別の誤差設定値Ｒ以下になるようにする。
【００４４】
図１０は図９においてデータ削除後の参照データ記憶部２及びメモリ５の状態を示す図であり、図１１及び図１２は本発明の第２の実施例によるプログラム処理部１による順序付きデータの管理処理の動作を示すフローチャートである。これら図９〜図１２を参照して本発明の第２の実施例による情報処理装置のプログラム処理部による順序付きデータの管理処理の動作について説明する。
【００４５】
尚、図１１及び図１２に示す処理はＣＰＵ３がプログラム４１を実行することで実現される。また、図１１のステップＳ２１〜Ｓ２５，Ｓ２７〜Ｓ２９の処理及び図１２のステップＳ３０の処理は、上述した図７のステップＳ１〜Ｓ５，Ｓ７〜Ｓ９の処理及び図８のステップＳ１０の処理と同様であるので、その説明については省略する。
【００４６】
本実施例においては、データ追加時に新たな単位格納領域を生成するか否かの判断において、追加データを指示配列インデックス（ＳＬ）２３２に加える前の状態で、指示配列インデックス（ＳＬ）２３２内のメタデータ合計値ＴＳＬと、メタデータ合計値ＴＳＬに最も近い設定値Ｓの整数倍の比が誤差設定値Ｒ以下ならば（図１１ステップＳ２６）、新たな単位格納領域を生成することとする（図１１ステップＳ２８）。この条件は、メタデータ合計値ＴＳＬがＳ／Ｒ以上であれば常に成り立つ。
【００４７】
一方、データ削除時に、プログラム処理部１は、削除要求を受けたメタデータ合計値Ｔに対して、インデックス指示配列２２ＡのＴ／Ｓ番目の要素をインデックスとするデータ指示配列２２Ｂの要素の指す単位格納領域とそこに含まれるデータとを消去する（図１２ステップＳ３１）。
【００４８】
また、プログラム処理部１は、Ｔ／Ｓの値をとるインデックス指示配列２２Ａの要素全てを消去し、インデックス指示配列２２Ａの消去した最大のインデックス以上に対応するメモリ領域の内容を、消去した要素数分だけ前方にシフトする（図１２ステップＳ３２）。
【００４９】
図３に示すデータが格納されている状態から、Ｓ＝１２５，Ｒ＝０．２５としてＴ＝９００の削除要求に対応した後の状態を図１０に示す。図１０では、Ｔ／Ｓを切り上げて「８」番目のインデックス指示配列２２Ａの要素「１」をインデックスとするデータ指示配列２２Ｂの要素が指す単位格納領域２１−１とそこに含まれていたデータｄ，ｅが消去される。
【００５０】
また、値「１」をとるインデックス指示配列２２Ａのインデックス「５」から「８」までの要素が消去されている。さらに、インデックス指示配列２２Ａのメモリ領域の消去前にインデックス「９」以降に対応していた部分が、消去した要素数４個分だけ前方シフトしている。
【００５１】
結果として、「ｎｕｌｌ」参照となったデータ指示配列２２Ｂのインデックス「１」の要素は、以降の新たな単位格納領域生成の際に参照を格納する変数として用いることができる。尚、最後の要素ＳＬのメタデータ合計値ＴＳＬと、メタデータ合計値ＴＳＬに最も近い設定値Ｓの整数倍との比が誤差設定値Ｒより大きい場合、要素ＳＬがデータ指示配列２２Ｂで唯一の非ｎｕｌｌ要素である場合以外には、削除要求に応じないこととする。
【００５２】
このように、本実施例では、メタデータ合計値Ｔに対応するデータの参照要求を受けると、プログラム処理部１がインデックス指示配列２２ＡのＴ／Ｓ番目の要素をインデックスとするデータ指示配列２２Ｂの要素の指す単位格納領域に含まれるデータをリターンする。
【００５３】
本実施例では、単位格納領域の追加及び削除の際に、当該単位格納領域に含まれるメタデータ合計値と、データ指示配列のインデックスとなるＴ／Ｓとの比が誤差設定値Ｒ以下に保たれるため、これらの操作を繰り返した後の参照要求に対しても、リターンしたデータのメタデータ合計値との誤差が誤差設定値Ｒ以下に保たれる。
【００５４】
すなわち、本発明による情報機器や通信装置等の情報処理装置では、データ本体とは別にデータへの参照の行列である参照行列（指示配列２２）を１個以上有し、各参照行列のインデックスをデータの検索キーに関連付け、参照行列の任意のインデックス範囲内の要素が参照するデータ全てのキーを同量だけ変化させる場合、変化量に対応するインデックス数だけ指示配列の範囲内のメモリ内容をシフトしている。
【００５５】
本発明の情報処理装置では、管理対象となる順序付きデータそのものとは別に、管理対象データへの参照の行列である参照行列を用意する。ここで、参照とは、他のデータへのアクセスを提供するデータのことであり、メモリアドレス値やポインタ等が該当する。また、本発明では、参照行列のインデックスと、格納するデータのキーとの対応を定義しておく。例えば、インデックス＝キー値とする。
【００５６】
本発明の情報処理装置では、管理対象データ各々について、その参照を、参照行列の当該データのキーに対応するインデックスの要素に格納する。任意のキーに対応するデータへのアクセスは、参照行列の当該キーに対応するインデックスの要素に格納されている参照を介して行う。
【００５７】
本発明の情報処理装置では、キーに対応する要素の検索が不要であるため、任意のキーに対応するデータへの高速アクセスが可能である。ある要素の削除、キー値変更、新要素の追加、または要素間のデータ入れ替え等によって、参照行列のあるインデックス範囲内の要素が参照するデータ全てのキーを同量だけ変化させる必要が生じた場合、本発明の情報処理装置では、変化量に対応するインデックス数だけ指示配列の範囲内のメモリ内容をシフトしている。
【００５８】
これによって、本発明の情報処理装置では、各データのキー値の変更と等価な変更が実現される。これは要素数に関わらず１回の処理であり、また参照行列はデータ本体ではなく、一般にサイズが限定される参照の行列であるため、データ本体のメモリシフトに比べて小容量のメモリシフトで済む。このため、本発明の情報処理装置では、本発明に関連する配列構造におけるインデックス変更よりも高速に実行可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施例による情報処理装置のプログラム処理部の構成例を示すブロック図である。
【図２】図１の参照データ記憶部及びメモリの状態を示す図である。
【図３】図２の例における各データに対応するメタデータ及びその合計値の例を示す図である。
【図４】図２においてデータ追加後の参照データ記憶部及びメモリの状態を示す図である。
【図５】図４の例における各データに対応するメタデータ及びその合計値の例を示す図である。
【図６】図２においてデータ削除後の参照データ記憶部及びメモリの状態を示す図である。
【図７】図１のプログラム処理部による順序付きデータの管理処理の動作を示すフローチャートである。
【図８】図１のプログラム処理部による順序付きデータの管理処理の動作を示すフローチャートである。
【図９】本発明の第２の実施例による参照データ記憶部及びメモリの状態を示す図である。
【図１０】図９においてデータ削除後の参照データ記憶部及びメモリの状態を示す図である。
【図１１】本発明の第２の実施例によるプログラム処理部による順序付きデータの管理処理の動作を示すフローチャートである。
【図１２】本発明の第２の実施例によるプログラム処理部による順序付きデータの管理処理の動作を示すフローチャートである。
【符号の説明】
【００６０】
１  プログラム処理部
２  参照データ記憶部
３  ＣＰＵ
４  プログラム記憶部
５  メモリ
１１  入力端子
１２  出力端子
２１−０〜２１−３  単位格納領域
２２  指示配列
２２Ａ  インデックス指示配列
２２Ｂ  データ指示配列
２３  一時変数集合
４１  プログラム
５２  連続領域
１００  通信バス
２１１−ａ〜２１１−ｈ  データ
２３１  最後尾メタデータ合計値（ＴＬ）
２３２  指示配列インデックス（ＳＬ）
５１１−ａ〜５１１−ｈ  領域
【図１】
2008310455.tif 000003
【図２】
2008310455.tif 000004
【図３】
2008310455.tif 000005
【図４】
2008310455.tif 000006
【図５】
2008310455.tif 000007
【図６】
2008310455.tif 000008
【図７】
2008310455.tif 000009
【図８】
2008310455.tif 000010
【図９】
2008310455.tif 000011
【図１０】
2008310455.tif 000012
【図１１】
2008310455.tif 000013
【図１２】
2008310455.tif 000014