説明

連想メモリ更新のためのシステム

【課題】連想メモリを更新する際の再構築に要する時間及び労力の増大を解消する。
【解決手段】システムは連想メモリ、第1テーブル、第2テーブル、コンパレータ、及びアップデータを含む。連想メモリはデータ及びデータ間の連想を含み、第1テーブルから構築する。第1テーブルは、第1及び第2フィールドを伴うレコードを含む。連想メモリは第1フィールドを取り込み、第2フィールドの取り込みを回避するように構成する。第2テーブルは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかを示す情報を保存する。コンパレータは、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は取り込むべきかどうかを特定するため、第1テーブルと第2テーブルの比較を行う。アップデータは、第1フィールドの取り込み又は忘却処理のいずれか一つを実施することによって、連想メモリを更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は連想メモリ更新の方法及び装置に関する。
【背景技術】
【0002】
連想メモリは人間の知能の考え方に基づく技術で、自然知能と呼ばれることもある。典型的には、記憶からアイテム、事象、及び/又は概念を想起するとき、人間の知能はこれらのアイテム、事象、又は概念がどのように関連しているかを考慮する。アイテム、事象、及び/又は概念は、「エンティティ」と総称されることがある。すなわち、人間の知能は、過去に経験したエンティティを想起するとき、過去に経験したエンティティと他のエンティティとの間の関係を考慮する。
【0003】
このようにして、人間の知性は、過去に経験したエンティティを想起するため連想に基づく記憶を利用する。この概念は、現在利用及び研究されている種々の連想メモリ技術の基礎となっている。現在では、様々な種類の連想メモリ技術が存在する。これらの種類には、例えば、自己連想メモリ及びヘテロ連想メモリが含まれるが、以下に説明する有利な実施形態は、これらの種類の連想メモリに限定されていない。
【0004】
自己連想メモリは、1個のデータの一部のみを用いて1個のデータを取り出すことができる。ヘテロ連想メモリは、別のカテゴリーに含まれる関連する1個のデータを用いて1個のカテゴリの1個のデータを読み出すことができる。
【0005】
典型的には、連想メモリシステムは、ニューラルネットワーク、人工知能、及び/又は、個々のデータ間の連想を形成し、これらの連想に基づいて様々なデータを読み出す他の好適な技術を利用して実装することができる。連想メモリシステムの種々のデータは、様々なデータソース群に由来することがある。
【0006】
例えば、連想メモリは、任意の数のデータベース、テーブル、スプレッドシート、ログ、画像、ファイル、データ構造、及び/又は他のデータソースのデータを用いて構築しうる。特に、連想メモリは、これらの様々なデータソースに保存されているデータを取り込むように構成されている。本明細書で使用している「取り込む」という表現は、連想メモリ内に存在する既存のデータに新しいデータを組み込み、新たに取り込まれたデータ間及び/又は新たに取り込まれたデータと過去に取り込まれたデータとの間の連想を形成することを想定している。「取り込む」という表現はまた、過去に取り込まれたデータ間に新たな関係を形成するために、過去に取り込まれたデータを再取り込みすることを想定している。
【0007】
このような様々なデータソースに保存されているデータに対して、しばしば変更が行われる。これらの変更には、例えば、データの追加、データの削除、データの修正、及び/又は他の形式の変更が含まれる。したがって、連想メモリを更新するためには、連想メモリにデータソース群の新しいバージョンを取り込ませることが望ましい場合がある。しかしながら、連想メモリの更新のために現在利用可能なシステムでは、更新情報を「新規データ」として処理することで、連想メモリ内の既存のデータに更新情報を取り込むことができない場合がある。したがって、幾つかの場合には、連想メモリは、データソース群の新しいバージョンを利用して連想メモリ全体を再構築することによってのみ、更新することができる。しかしながら、連想メモリの大きさが増大するにつれて、連想メモリの再構築に要する時間及び/又は労力の量も増大する。幾つかの場合には、連想メモリが十分に大きいと、所望の更新情報を連想メモリに含める速度では、当該連想メモリの再構築に要する時間を超えることがある。
【0008】
したがって、少なくとも上述の問題点の幾つか並びに起こりうるその他の問題点を考慮に入れた方法及び装置を有することは有利であろう。
【発明の概要】
【0009】
一つの有利な実施形態では、システムは連想メモリ、第1テーブル、第2テーブル、コンパレータ、及びアップデータを含むことができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことがある。連想メモリは第1テーブルから構築することができる。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含むことがある。連想メモリは第1フィールドを取り込み、第2フィールドの取り込みを回避するように構成することができる。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかに関して、少なくとも一つを示す第1の情報を保存することができる。コンパレータは、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は第1フィールドを連想メモリによって取り込むべきかどうかにに関して、いずれか一つを特定するため、第1テーブルと第2テーブルの比較を行うように構成することができる。アップデータは、第1フィールドの取り込み又は第1フィールドの忘却処理のいずれか一つを実施することによって、連想メモリを更新するように構成することができる。
【0010】
別の有利な実施形態では、連想メモリを更新する方法が提供される。連想メモリが構築されている第1テーブルへの更新情報は、第1の有形メモリで受け取ってもよい。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含むことがある。連想メモリは第2フィールドを取り込むように構成することができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。連想メモリは第2フィールドの取り込みを回避するようにさらに構成することができる。第1プロセッサは、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は第1フィールドを連想メモリによって取り込むべきかどうかに関して、いずれか一つを特定するため、第1テーブルと第2テーブルの比較を行うことができる。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかのうちの少なくとも一つを示す第1の情報を保存することができる。比較表を形成してもよい。第2プロセッサは、第1フィールドの取り込み又は第1フィールドの忘却処理のいずれか一つを実施することによって、連想メモリを更新することができる。
【0011】
さらに別の有利な実施形態では、コンピュータで使用可能なプログラムコードを保存する永続的なコンピュータで読取可能な記憶媒体は、コンピュータで使用可能なプログラムコードを含むことができる。コンピュータで使用可能なプログラムコードは、構築済みの連想メモリからの更新情報を第1テーブルに受け取るため、第1の有形メモリ内に存在していてもよい。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含むことがある。連想メモリは第1フィールドを取り込むように構成することができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。連想メモリは第2フィールドの取り込みを回避するようにさらに構成することができる。コンピュータで使用可能なプログラムコードは、第1のプロセッサを利用して、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は第1フィールドを連想メモリによって取り込むべきかどうかのいずれか一つを特定するため、第1テーブルと第2テーブルの比較を行えるよう第2の有形メモリ内に存在していてもよい。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかのうちの少なくとも一つを示す第1の情報を保存することができる。比較表を形成してもよい。コンピュータで使用可能なプログラムコードは、第2プロセッサを使用して、第1フィールドの取り込み又は第1フィールドの忘却処理のいずれか一つを実施することによって、連想メモリを更新するように存在していてもよい。
【0012】
特徴、機能及び利点は、本発明の様々な実施形態で独立に実現することが可能であるか、以下の説明及び図面を参照してさらなる詳細が理解されうる、さらに別の実施形態で組み合わせることが可能である。
【0013】
有利な実施形態の特性と考えられる新規特徴は添付した特許請求の範囲に記載されている。しかしながら、有利な実施形態に加えて、好適な使用形態、さらなる目的、及びその利点は、以下に示す本発明の有利な実施形態の詳細な説明を参照し、添付の図面と併せて読むときに最もよく理解されるであろう。
【図面の簡単な説明】
【0014】
【図1】図1は有利な実施形態による連想メモリを管理するためのメモリ管理システムのブロック図を示したものである。
【図2A】図2Aは有利な実施形態による連想メモリを更新するプロセスのフロー図を示したものである。
【図2B】図2Bは有利な実施形態による連想メモリを更新するプロセスのフロー図を示したものである。
【図3】図3は有利な実施形態による連想メモリを更新するプロセスのフロー図を示したものである。
【図4】図4は有利な実施形態による連想メモリ構築の元となる第1テーブルを更新するプロセスのフロー図を示したものである。
【図5】図5は有利な実施形態による連想メモリを更新するプロセスのフロー図を示したものである。
【図6】図6は有利な実施形態によるデータ処理システムを示したものである。
【発明を実施するための形態】
【0015】
種々の有利な実施形態は、任意の数の種々の検討事項を認識し、考慮している。例えば、種々の有利な実施形態は、連想メモリを更新して基礎となるデータソース群から更新されたデータのバージョンを含めるためには、更新済みデータを利用して連想メモリの再構築が必要となりうることを認識し、考慮している。種々の有利な実施形態は、連想メモリのサイズが大きくなるにつれて、連想メモリの再構築に要する時間、労力、及び/又はリソース処理が、所望の値よりも大きくなることを認識し、考慮している。さらに、種々の有利な実施形態は、連想メモリの再構築のプロセスが種々の基礎となるデータソース群で行った変更を追跡するためのシステムを提供できないことを認識し、考慮している。
【0016】
さらに、種々の有利な実施形態は、連想メモリがデータソース群中のデータへの変更が行われたデータソース群のみを再取り込みすることが一つの解決策になりうることを認識し、考慮している。すなわち、連想メモリは、連想メモリを構築した際の基礎となっているデータソース群の残存データを再取り込みすることなく、更新されたデータのみを再取り込みすることができる。
【0017】
例えば、連想メモリは、テーブルの中のレコード群に対して変更を行ったときに、レコードを含むテーブルのデータを再取り込みしてもよい。このテーブルへのデータの再取り込みは、データに対する変更が1レコード中に1箇所だけの変更を含む場合であっても、テーブルの中に保存されている全レコードに対する繰り返しを含むことがある。種々の有利な実施形態は、このプロセスが望む以上のリソース処理を行い、望む以上の時間を要しうることを認識し、考慮している。
【0018】
したがって、種々の有利な実施形態は、連想メモリの再構築を必要としない方法で連想メモリを更新するための方法及び装置を提供することができる。一つの有利な実施形態では、システムは連想メモリ、第1テーブル、第2テーブル、コンパレータ、及びアップデータを含むことができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。
【0019】
連想メモリは第1テーブルから構築することができる。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含むことがある。連想メモリは第1フィールドを取り込み、第2フィールドの取り込みを回避するように構成することができる。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかのうちの少なくとも一つを示す第1の情報を保存することができる。
【0020】
コンパレータは、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は第1フィールドを連想メモリによって取り込むべきかどうかに関して、いずれか一つを特定するため、第1テーブルと第2テーブルの比較を行うように構成することができる。アップデータは、第1フィールドの取り込み又は第1フィールドの忘却処理のいずれか一つを実施することによって、連想メモリを更新するように構成することができる。
【0021】
ここで図面、特に図1を参照すると、有利な実施形態に従って、連想メモリを管理するためのメモリ管理システムのブロック図が図解されている。図1では、メモリ管理システム100は、連想メモリ102を管理するように構成されたシステムであってもよい。これらの例示的な実施例では、メモリ管理システム100はコンピュータシステム104及び記憶システム106を含みうる。
【0022】
コンピュータシステム104は任意の数のコンピュータを含みうる。本明細書で使用している「任意の数のアイテム」は、一又は複数のアイテムを意味する。例えば、任意の数のコンピュータは一又は複数のコンピュータを意味する。コンピュータシステム104内に複数のコンピュータが存在する場合には、これらのコンピュータは相互に通信することができる。さらに、一又は複数のこれらのコンピュータは、実装に応じて、同一の場所及び/又は異なる場所に、分散環境又はネットワーク環境で配置することができる。
【0023】
コンピュータシステム104は、記憶システム106と通信することができる。記憶システム106は、これらの例示的な実施例では、任意の数の記憶デバイスを含みうる。記憶システム106の中に複数の記憶デバイスが存在する場合には、これらの記憶デバイスは同一の場所及び/又は異なる場所に、分散環境又はネットワーク環境で配置することができる。
【0024】
連想メモリ102は、記憶システム106の中の一又は複数の記憶デバイスに保存することができる。このように、連想メモリ102は、実装に応じて、一又は複数の場所に、おそらくは分散環境又はネットワーク環境で配置することができる。
【0025】
これらの例示的な実施例では、連想メモリ102は複数のデータ108及び複数のデータ108間の複数の連想110を含みうる。幾つかのハードウェア実装では連想は有形のものであるが、本明細書で使用しているように、複数のデータ108間の複数の連想110の中の「連想」は、データ間の論理的なつながりを意味している。
【0026】
ひとつの例示的な実施例として、複数のデータ108の中の第1データカテゴリの第1の1個のデータは、複数のデータ108の中の第2データカテゴリの第2の1個のデータと関連づけられることがある。この連想では、他のデータを利用して、これらのデータを連想メモリ102から取り出すことができる。本明細書で使用しているように、複数のデータ108の中の「1個のデータ」は「データム」と呼んでもよい。「1個のデータ」すなわち「データム」は、これらの例示的な実施例の中では、任意の数の数値、数字、識別子、ラベル、日付、時刻、及び/又は他の好適な情報、及びこれらの組み合わせを含みうる。
【0027】
幾つかの例示的な実施例では、連想はデータムとデータムの一部分との間に存在しうる。すなわち、データムは連想メモリ102から、データム全体ではなくデータムの一部分を利用して取り出すことができる。
【0028】
これらの例示的な実施例では、連想メモリ102は、記憶システム106の任意の数のデータソース群116に保存されている情報114を利用して構築しうる。任意の数のデータソース群116の中のデータソースは、データを保存及び体系化するように構成された任意の形式のデータ構造であってもよい。例えば、任意の数のデータソース群116は、テーブル、データベース、リスト、配列、ツリー、ファイル、ログ、レポート、画像、ビデオ、及び他の好適なデータソースのうちの少なくとも一つを含みうる。
【0029】
本明細書で使用しているように、列挙されたアイテムと共に使用される「〜のうちの少なくとも一つ」という表現は、列挙されたアイテムの一又は複数の様々な組み合わせが使用可能であり、且つ列挙されたアイテムのいずれかが一つだけあればよいということを意味する。例として、「アイテムA、アイテムB、及びアイテムCのうちの少なくとも一つ」は、例えば、限定しないが、「アイテムA」又は「アイテムAとアイテムB」を含む。この例は、「アイテムAとアイテムBとアイテムC」、又は「アイテムBとアイテムC」も含む。他の例では、「〜のうちの少なくとも一つ」は、例えば、限定しないが、「2個のアイテムA、1個のアイテムB、及び10個のアイテムC」、「4個のアイテムB及び7個のアイテムC」、さらに他の好適な組み合わせであってもよい。
【0030】
記憶システム106の任意の数のデータソース群116に保存されている情報114の少なくとも一部は、連想メモリ102の複数のデータ108を形成する。本明細書で使用しているように、情報114の「少なくとも一部」は、情報114の部分又はすべてを意味する。さらに、任意の数のアイテムの「少なくとも一部」は、本明細書で使用しているように、任意の数のアイテムのうちの一つ、幾つか、又はすべてを意味する。
【0031】
ソーステーブル118は任意の数のデータソース群116の一例である。ソーステーブル118は、例えば、連想メモリ102の構築に使用されるリレーショナルデータベースであってもよい。これらの例示的な実施例では、連想メモリの構築に使用されている情報114の少なくとも一部は、ソーステーブル118に由来する。
【0032】
ソーステーブル118は、任意の数のソースレコード群120及び任意の数のソースフィールド形式群122を含むことができる。本明細書で使用されているように、「レコード」は必ずしもテーブル中の1行に限定されるわけではないが、テーブル中の「レコード」はテーブル中の1行であってもよい。さらに、「フィールド形式」は必ずしもテーブル中の1列に限定されるわけではないが、テーブル中の「フィールド形式」はテーブル中の1列であってもよい。したがって、他の例示的な実施例では、「レコード」及び「フィールド形式」という用語は、テーブルの構造に関する他の特徴を表わしうる。
【0033】
一つの例示的な実施例では、ソースレコード124は任意の数のソースレコード群120のうちの一例であってもよい。ソースレコード124は、任意の数のソースフィールド形式群122のうちの任意の数のフィールド群126を有する。本明細書で使用されているように、テーブル中の「フィールド」は、テーブルのレコードとフィールド形式が交わる部分であってもよい。この「フィールド」は「セル」と呼ばれることもある。このように、任意の数のソースフィールド形式群122の各フィールド形式に対するフィールドは、ソースレコード124の任意の数のフィールド群の中に存在していてもよい。
【0034】
さらに、フィールドに含まれるデータ又は値は、フィールドの情報としても参照されうる。この例示的な実施例では、すべての任意の数のフィールド群126に情報が含まれる場合と含まれない場合がありうる。
【0035】
ソーステーブル118は更新可能であってもよい。すなわち、ソーステーブル118を更新する際には、ユーザーはユーザー入力を入力して、ソーステーブル118に保存されている情報を変更してもよい。ソーステーブル118に保存されている情報の変更は、情報の追加、情報の削除、及び/又はソーステーブル118に既に保存されている情報の修正のうちの少なくとも一つを含みうる。幾つかの場合には、ソーステーブル118に対する更新は、コンピュータシステム104上でのソフトウェアの実行によって行うことができる。
【0036】
これらの例示的な実施例では、メモリ更新モジュール130はコンピュータシステム104の中にあってもよい。メモリ更新モジュール130は、ハードウェア、ソフトウェア、又は両者の組み合わせを利用して実装しうる。一つの例示的な実施例として、メモリ更新モジュール130は、一又は複数のプロセッサを用いて実装されうるが、これには、例えば、第1プロセッサ、第2プロセッサ、第3プロセッサ、第4プロセッサ、第5プロセッサ、及び場合によってはこれより多くの又は少ないプロセッサが含まれうる。
【0037】
メモリ更新モジュール130は、2つの前提に基づいて連想メモリ102が更新できるように実装可能である。第1の前提となりうるのは、連想メモリ構築の元となる情報114の一部が、情報114のこの部分の上に連想メモリ102が構築される間には、変更又は修正できないことである。第2の前提となりうるのは、連想メモリ102が複数のデータ108の中の一部のデータを「忘却処理」すなわち削除できるのは、データの一部が連想メモリ102によって取り込まれたときと同一となる場合に限られるということである。
【0038】
メモリ更新モジュール130は、ソーステーブル118を実際に取り込むことなく、連想メモリ102がソーステーブル118に保存されている情報を取り込むことができるように構成することができる。例えば、メモリ更新モジュール130は、ソーステーブル118を利用して第1テーブル134を作成するように構成することができる。第1テーブル134に含まれている情報は、ソーステーブル118に由来することがある。このように、連想メモリ102は、第1テーブル134に保存されている情報を利用してソーステーブル118に情報を取り込むことができる。
【0039】
連想メモリ102が情報を取り込むとき、連想メモリ102は複数のデータ108にこの情報を組み込んでもよい。さらに、連想メモリ102は、新たに取り込んだ情報の中に、及び/又は新たに取り込んだ情報と連想メモリ102が過去に取り込んだ情報との間に、連想を形成することができる。
【0040】
図示されているように、第1テーブル134は、第1の任意の数のフィールド形式群140及び第2の任意の数のフィールド形式群142に加えて、第1の任意の数のレコード群138を含むことができる。第1の任意の数のフィールド形式群140は、ソーステーブル118の任意の数のソースフィールド形式群122の少なくとも一部分と同じであってもよい。連想メモリ102は、第1の任意の数のフィールド形式群140のフィールド群を取り込み、第1の任意の数のレコード群138に対して第2の任意の数のフィールド形式群142のフィールド群の取り込みを回避するように構成することができる。フィールド取り込みはフィールド内の情報の取り込みを含むことができる。
【0041】
これらの例示的な実施例では、第1テーブル134の第1の任意の数のレコード群138は、ソーステーブル118の任意の数のソースレコード群120を用いて作成しうる。一つの例示的な実施例として、第1の任意の数のレコード群138の第1レコード144は、ソースレコード124を用いて作成しうる。このように、第1レコード144はソースレコード124に対応可能である。第1レコード144は、任意の数のフィールド形式群140の第1の任意の数のフィールド群146及び第2の任意の数のフィールド形式群142の第2の任意の数のフィールド群148を含むことができる。
【0042】
メモリ更新モジュール130は、ソースレコード124用の任意の数の情報を、第1レコード144用の第1の任意の数のフィールド群146に複写することができる。特に、メモリ更新モジュール130は、任意の数のソースフィールド形式122の一部分143に対する任意の数のフィールド群126の一部分の情報を、第一レコード144用の第一の任意の数のフィールド群146に複写することができる。
【0043】
第1フィールド形式149は、ソーステーブル118の任意の数のソースフィールド形式群122の一部分143のフィールド形式と同一である、第1テーブル134の第1の任意の数のフィールド形式群140の一例であってもよい。第1フィールド形式149の第1フィールド150は、第1レコード144用の第1の任意の数のフィールド群146の一例であってもよい。第1フィールド150は、第1フィールド形式149と同一のフィールド形式を有するソーステーブル118内にソースレコード124用の任意の数のフィールド群126中のフィールド151の情報を含むことができる。
【0044】
連想メモリ102は、第1レコード144に対しては、第1フィールド150及び第1の任意の数のフィールド146中の他のフィールドの情報を取り込むように構成することができる。このように、連想メモリ102は、第1テーブル134に保存されている第1レコード144の情報を利用して、ソースレコード124に間接的に情報を取り込むことができる。
【0045】
第2フィールド152は、第1レコード144に対する第2の任意の数のフィールド群148の一例であってもよい。第2フィールド152は、第2フィールド形式153からなる。第2フィールド形式153の第2フィールド152の情報は、連想メモリ102が第1レコード144に対して第1の任意の数のフィールド群146の情報を取り込むか又は忘却処理するかを示すことがある。連想メモリ102が情報を「忘却処理する」場合には、連想メモリ102は複数のデータ108及び/又はその情報を含む複数の連想110のうちの任意の情報を削除してもよい。
【0046】
例えば、ソーステーブル118のソースレコード124に関するフィールド151の情報が変更された場合、メモリ更新モジュール130は、第1テーブル134の第1の任意の数のレコード138に新規レコード154を追加することができる。特に、メモリ更新モジュール130の加算器155は、第1の任意の数のレコード138に新規レコード154を追加することがある。新規レコード154はソースレコード124に対応可能である。このように、第1の任意の数のレコード群138は、任意の数のソースレコード群120のうちのソースレコード124など、同一ソースレコードに対応する第1レコード144及び新規レコード154などの一又は複数のレコードを含むことがある。
【0047】
加算器155は、新規レコード154に関する第1の任意の数のフィールド形式群140の任意の数のフィールド群が連想メモリ102によって取り込みが予定されていることを示す、新規レコード154の第2フィールド形式153のフィールドに情報を追加することができる。さらに、第1テーブル134に新規レコード154を追加することにより、メモリ更新モジュール130のマーカー159は、第1レコード144に関する第1の任意の数のフィールド群146が連想メモリ102によって忘却処理が予定されていることを示すため、第1レコード144に関する第2フィールド152の情報を変更することができる。
【0048】
これらの例示的な実施例では、連想メモリ102によって取り込み及び/又は忘却処理される情報は、第2テーブル136を利用するメモリ更新モジュール130によって追跡可能である。図解しているように、第2テーブル136は、第2の任意の数のレコード群156及び第3の任意の数のフィールド形式群157を含むことができる。第2の任意の数のレコード群156は、連想メモリ102の中の第1の任意の数のレコード群138の情報のステータスを特定することができる。第2の任意の数のレコード群156の各々は、これらの実施例では第1の任意の数のレコード群138の1つに対応している。
【0049】
第3フィールド形式158は、第3の任意の数のフィールド形式群157の一例であってもよい。第3フィールド形式158のフィールドは、第1の任意の数のレコード群138の中の対応するレコードのステータスを特定することができる。
【0050】
例えば、第1レコード144の情報が連想メモリ102によって取り込まれるとき、メモリ更新モジュール130の加算器155は、第2の任意の数のレコード群156に第2レコード160を追加するように構成することができる。このように、第2レコード160は、第1の任意の数のレコード群138の第1レコード144に対応しうる。
【0051】
第2レコード160は、第3フィールド形式158の第3フィールド162を含むことができる。第3フィールド162の情報は、第1レコード144に関する第1の任意の数のフィールド群146の情報が取り込まれ、連想メモリ102の中に存在することを示すことができる。さらに、第1レコード144に関する第1の任意の数のフィールド群146の情報が連想メモリ102によって忘却処理されるとき、第3フィールド162の情報は、この情報が連想メモリ102によって忘却処理されたことを示すように変更することができる。
【0052】
これらの例示的な実施例では、第1テーブル134及び/又は第2テーブル136の情報は、時間とともにソーステーブル118の変更に呼応して更新されうる。連想メモリ102は、第1テーブル134及び/又は第2テーブル136の更新情報を利用して更新を行うように構成することができる。この更新は、連想メモリ102のリフレッシュと呼ばれることがある。
【0053】
連想メモリ102が更新されると、連想メモリ102は任意の数の操作を実施することができる。例えば、連想メモリ102は、新しい情報の取り込み、過去に取りこまれた情報の削除、データ間の新しい連想の形成、データ間の既存の連想の削除、他の適切な操作、及びこれらの組み合わせのうちの少なくとも1つを実施することができる。幾つかの場合には、取り込まれる新しい情報の一部分が、過去に取り込まれたが削除された情報とほぼ同じになることがある。さらに、形成される新しい連想は、新しい情報と過去に取り込まれ現在も連想メモリ102に保存されている情報との間の連想形成も含みうる。
【0054】
連想メモリ102は事象132の発生に呼応して更新されることがある。事象132は、例えば、限定しないが。ユーザー入力、命令、ある時間の経過、警告、通知、又は他の好適な種類の事象であってもよい。
【0055】
幾つかの例示的な実施例では、事象132は第1テーブル134への新規レコードの追加となることがある。他の例示的な実施例では、連想メモリ102は連続的に更新を行うように構成されうる。さらに他の例示的な実施例では、事象132は新しいソーステーブル及び対応する新しい第1テーブルの作成であってもよい。
【0056】
メモリ更新モジュール130は、加算器155及びマーカー159に加えて、コンパレータ164、第1アップデータ166、第2アップデータ168、及びリムーバ170を含みうる。第1の任意の数のレコード138のいずれかのフィールドは連想メモリ102によって取り込まれるべきか忘却処理されるべきかを示すために、コンパレータ164は第1テーブル134と第2テーブル136とを比較するように構成することができる。
【0057】
例えば、第1レコード144に関する第2フィールド形式153の第2フィールド152は、第1レコード144に関する第1の任意の数のフィールド群146が連想メモリ102によって取り込みが予定されていることを示すことができる。コンパレータ164は、第1レコード144に対応する第2レコード160が第2テーブル136内に存在するかどうかを判断することができる。
【0058】
第1レコード144に対応する第2レコード160が存在しない場合には、第1アップデータ166によって、連想メモリ102は第1レコード144に関する第1の任意の数のフィールド群146を取り込むことができる。加算器155は、第2の任意の数のレコード群156に第2レコードを追加することができる。ただし、第2レコード160が存在する場合には、第1アップデータ166によって、連想メモリ102は第1レコード144に関する第1の任意の数のフィールド群146を無視することができる。
【0059】
別の実施例では、第1レコード144に関する第2フィールド形式153の第2フィールド152は、第1レコード144に関する第1の任意の数のフィールド群146が連想メモリ102によって忘却処理が予定されていることを示すことができる。コンパレータ164は、第1レコード144に対応する第2レコード160が第2テーブル136内に存在するかどうかを判断することができる。第2レコード160が存在しない場合には、第1アップデータ166は、連想メモリ102に、第1の任意の数のフィールド群146を無視させることができる。
【0060】
さらに、第2レコード160が存在する場合には、第3フィールド形式158の第3フィールド162が、第1の任意の数のフィールド群146の情報が現在連想メモリ102内に存在することを示しているかどうかを、コンパレータ164は判断することができる。情報が連想メモリ102に存在する場合には、第1アップデータ166によって、連想メモリ102はこの情報を忘却処理することができる。
【0061】
次に第2アップデータは、第1の任意の数のフィールド群146が連想メモリ102によって忘却処理されていることを示すために、第3フィールド162の情報を変更することができる。しかしながら、第3フィールド162が、第1の任意の数のフィールド群146の情報が既に忘却処理されていることを示す場合には、第1アップデータによって、連想メモリ102は第1の任意の数のフィールド群146を無視することができる。
【0062】
これらの例示的な実施例では、リムーバ170は、第1レコード144に関して第1の任意の数のフィールド群146の情報が連想メモリ102によって忘却処理された後にのみ、第1テーブル134の第1の任意の数のレコード群138から第1レコード144を削除するように、構成することができる。このように、連想メモリ102の構築に使用される第1テーブル134の情報は、連想メモリ102が不要になったとき、又は情報を保持する必要がなくなったときにはじめて削除することができる。
【0063】
このように、連想メモリ102を必ずしも再構築することなく、連想メモリ102は更新することができる。第1テーブル134を使用することにより、ソーステーブル118を使用することなく連想メモリ102を更新することが可能で、第1テーブル134の中の第1の任意の数のフィールド形式群140に含まれるフィールドの情報を変更することも不要である。
【0064】
特に、第1アップデータ166は、第1テーブル134の中の第1の任意の数のフィールド形式群140に含まれるフィールドの情報を修正及び/又は削除することを回避するように構成することができる。このように、複数のデータ108の連想メモリ102の更新時に形成される任意の数の好ましくない矛盾を、減らし、最小化し、おそらくはゼロまで低減することが可能である。
【0065】
さらに、第2テーブル136を使用することにより、取り込み済みの情報を再取り込みするためのリソースの追加処理が不要になるように、第1の任意の数のレコード群138のうちのいずれが連想メモリ102によって取り込み及び/又は忘却処理されるのかを追跡することができる。しかもさらに、第2テーブル136を使用することにより、連想メモリ102は既に忘却処理されている情報の忘却処理を試みないでもよい。
【0066】
図1のメモリ管理システム100の図解は、有利な実施形態が実装されうる方法に対する物理的又は構造的な制限を示唆することを意図していない。他のコンポーネントを追加的に、及び/又は代替的に他のコンポーネントを使用してもよい。幾つかのコンポーネントは不必要になることもある。また、幾つかの機能コンポーネントを示すためにブロックが表示されている。有利な実施形態で実装される場合、一又は複数のこれらのブロックは結合されること、及び/又は分割されることがありうる。
【0067】
例えば、これらの例示的な実施例では、第1テーブル134及び第2テーブル136は、メモリ更新モジュール130によって記憶システム106内で互いから切り離して維持することができる。しかしながら、他の例示的な実施例では、第1テーブル134及び第2テーブル136は同一テーブルの一部であってもよい。
【0068】
幾つかの例示的な実施例では、第2アップデータ168はメモリ更新モジュール130内に存在していなくてもよい。その代わりに、第2アップデータ168によって実施される機能は、メモリ更新モジュール130のマーカー159によって実施されうる。すなわち、第1の任意の数のフィールド146の情報が連想メモリ102によって忘却処理されていることを示すために、マーカー159は、第3フィールド162の情報を変更することができる。
【0069】
次に図2A及び2Bを参照するに、有利な実施形態による連想メモリを更新するプロセスのフロー図が示されている。この例示的な実施例では、連想メモリ200は、図1の連想メモリ102の実装の一例である。図2A及び2Bに関して説明されている技法は、図6のプロセッサ装置604など、一又は複数のプロセッサを用いて実装することができる。図2A及び2Bに関して説明されている技法は、以下のようにさらに参照されている図1のメモリ管理システム100のようなシステムを利用して実装することができる。
【0070】
連想メモリ200は、ソーステーブル202を起源とする情報を取り込むように構成することができる。ソーステーブル202は、図1のソーステーブル118への実装の一例とすることができる。特に、連想メモリ200は、第1テーブル204及び第2テーブル206を利用してソーステーブル202に間接的に情報を取り込むように構成することができる。
【0071】
図示されているように、ソーステーブル202はソースレコード群208を含むことができる。ソースレコード群208は、図1の任意の数のソースレコード群120への実装の一例とすることができる。さらに、ソーステーブル202は、キー210、形式212、説明214、ステータス216、及びタイムスタンプ218を含むことができる。キー210、形式212、説明214、ステータス216、及びタイムスタンプ218は、図1の任意の数のソースフィールド形式群122の実装の一例である。
【0072】
キー210のフィールドは、ソースレコード群208内の対応するレコードに対して重複のない識別子を提供することができる。形式212のフィールドは、ソースレコード群208内に対応するレコードが作成されたコンポーネントの形式を特定することができる。説明214のフィールドは、ソースレコード群208内の対応するレコードに対してコンポーネントを説明することができる。ステータス216のフィールドは、ソースレコード群208内の対応するレコードに対してコンポーネントのステータスを特定することができる。さらに、タイムスタンプ218のフィールドは、ソースレコード群208内に対応するレコードが作成された時刻を特定することができる。
【0073】
第1テーブル204は第1レコード群222を含むことができる。第1レコード群222は、図1の第1の任意の数のレコード群138に対する実装の一例である。さらに、第1テーブル204はまた、識別子224、キー226、形式228、説明230、ステータス232、タイムスタンプ234、及び忘却指示236を含むことができる。
【0074】
キー226、形式228、説明230、ステータス232、及びタイムスタンプ234は、図1の第1の任意の数のフィールド形式群140の実装の一例である。さらに、第1テーブル204のキー226、形式228、説明230、ステータス232、及びタイムスタンプ234は、第2テーブル202のキー210、形式212、説明214、ステータス216、及びタイムスタンプ218とほぼ同一のフィールド形式となりうる。連想メモリ200は、第1テーブル204のキー226、形式228、説明230、ステータス232、及びタイムスタンプ234のフィールドの情報を取り込むように構成することができる。
【0075】
識別子224及び忘却指示236は、図1の第2の任意の数のフィールド形式群142の実装の一例である。特に、忘却指示236は、図1の第2フィールド形式153に対する実装の一例とすることができる。これらの例示的な実施例では、連想メモリ200は、識別子224及び忘却指示236に対するフィールドの取り込みを回避するように構成することができる。しかしながら、他の例示的な実施例では、識別子224に対するフィールドは取り込まれうる。
【0076】
キー224のフィールドは、第1レコード群222内の対応するレコードに対して重複のない識別子を提供することができる。忘却指示236のフィールドは、第1レコード群222の対応するレコードに対して、キー226、形式228、説明230、ステータス232、及びタイムスタンプ234のフィールドの情報が、連想メモリによって取り込み又は忘却処理が予定されているかどうかを示すことができる。
【0077】
この例示的な実施例では、第1レコード群222の特定のレコードに対するキー226のフィールドは、ソーステーブル202のキー210のフィールドに一致するように選択することができる。このように、第1レコード群222の各レコードはソースレコード群208のレコードに一致させることができる。さらに、第1レコード群222の特定のレコードに対して形式228、説明230、ステータス232、及びタイムスタンプ234のフィールドの情報を、ソーステーブル202の一致するテーブルから複写することができる。
【0078】
さらに、第2テーブル206は第2レコード群238を含むことができる。第2レコード群238は、図1の第2の任意の数のレコード群156に対する実装の一例である。さらに、第2テーブル206はまた、識別子240、状態242、及び日付244を含んでいてもよい。識別子240、状態242、及び日付244は、図1の第3の任意の数のフィールド形式群157の実装の一例である。特に、状態242は、図1の第3フィールド形式158に対する実装の一例とすることができる。
【0079】
識別子240のフィールドは、第2レコード群238内の対応するレコードに対して重複のない識別子を提供することができる。この重複のない識別子は、第1レコード群222の対応する重複のない識別子に一致するように選択することができる。このように、第2レコード群238の各レコードは第1レコード群222のレコードに一致させることができる。第2レコード群238の特定のレコードに対する状態242のフィールドは、第1レコード群222の対応するレコードにある情報が連想メモリ200の中に存在するか、又は連想メモリ200によって忘却処理されたかを示すことができる。
【0080】
これらの例示的な実施例では、連想メモリ200、ソーステーブル202、第1テーブル204、及び第2テーブル206は、第1テーブル204を用いて連想メモリ200が構築された後も、元の状態246のままで存在してもよい。第2テーブル206の情報で図解しているように、第1テーブル204の第1レコード群222すべての所望の情報は、連想メモリ200が構築された後、連想メモリ200内に存在していることがある。
【0081】
しかしながら、更新は、第1テーブル204、第2テーブル206及び連想メモリ200に更新を引き起こすソーステーブル202に対して行ってもよい。このような種々の更新に対応して、連想メモリ200、ソーステーブル202、第1テーブル204及び第2テーブル206は、更新された状態248を有する。
【0082】
一つの例示的な実施例として、第1テーブル204のレコード250は、ソーステーブル202のレコード252に対応してもよい。ソーステーブル202で元の状態246にあるレコード252のフィールド254及びフィールド256の情報は、ソーステーブル202の更新状態に変更されることがある。
【0083】
この変更に対応して、第1テーブル204に関しては、更新状態248にある第1テーブル204に新規レコード258が追加されることがある。新規レコード258は、ソーステーブル202のレコード252に対応する。新規レコード258は、フィールド254及びフィールド256に更新情報を含むことがある。
【0084】
さらに、第1テーブル204の更新状態248では、第1テーブル204のレコード250のフィールド260の情報が変更されることがある。特に、連想メモリ200によって過去に取り込まれたレコード250の情報が連想メモリ200によって忘却処理される予定になっていることを示すため、フィールド260に情報が追加されることがある。
【0085】
連想メモリ200に保存された情報を更新するため、連想メモリ200は、例えば、図1のメモリ更新モジュール130によって提供される情報を使用することができる。例えば、メモリ更新モジュール130は、更新状態248にある第1テーブルのどのレコードが取り込まれ、どのレコードが忘却処理されるかを示す識別情報を、連想メモリ200に提供することができる。
【0086】
一つの例示的な実施例として、図1のメモリ更新モジュール130は、更新状態248にある第1テーブル204と元の状態246にある第2テーブル206との間で比較を行ってもよい。この比較は、新規レコード258が連想メモリ200によって取り込まれていないことを示すことがある。さらに、この比較は、レコード250が連想メモリ200によって忘却処理されていないことを示している。
【0087】
この比較に基づいて、メモリ更新モジュール130は、新規レコード258が取り込み予定にあり、レコード250が忘却処理予定にあることを示す情報を連想メモリ200に送ることがある。連想メモリ200は第1テーブル204の新規レコード258に所望の情報を取り込み、第1テーブル204のレコード250から過去に取り込まれた情報を忘却処理することができる。この更新に対応して、メモリ更新モジュール130は、第2テーブル206が更新状態248に更新されるように、第2テーブル206に新規レコード262を追加してもよい。
【0088】
新規レコード262は、第1テーブル204の新規レコード258に対応していてもよい。新規レコード262のフィールド264は、第1テーブル204の新規レコード258の所望の情報が連想メモリ200によって取り込まれ、現在連想メモリ200内に存在することを示すことがある。
【0089】
さらに、第2テーブル206のレコード266は、第1テーブル204のレコード250に対応していてもよい。更新状態248では、第2テーブル206のレコード266のフィールド268は、連想メモリ200によって過去に取り込まれた第1テーブル204のレコード250の情報が連想メモリ200によって忘却処理されたことを示すことがある。
【0090】
このように、連想メモリ200は、ソーステーブル202を直接使用せずに、第1テーブル204及び第2テーブル206を用いて更新することができる。さらに、連想メモリ200はソーステーブル202の修正済みレコードの使用に照らして、第1テーブル204の新規レコードを使用する更新情報を取り込むことができる。
【0091】
次に図3を参照すると、有利な実施形態に従って描かれた連想メモリ更新プロセスのフロー図が示されている。図3に示されているプロセスは、図1の連想メモリ102及び/又は図2A及び2Bの連想メモリ200を更新するように実装可能である。図3に関して説明されている技法は、図6のプロセッサ装置604など、一又は複数のプロセッサを用いて実装することができる。図3に関して説明されている技法は、以下のようにさらに参照されている図1のメモリ管理システム100のようなシステムを利用して実装することができる。
【0092】
さらに、図3に関して説明されているプロセスは、システムによって実装可能である。図3に関して使用されているように、「システム」という用語は、図1の一又は複数のメモリ管理システム100、図6のプロセッサユニット604、ハードウェア実装、ソフトウェア実装、及びこれらの組み合わせを含むことができる。図3に関して説明されているプロセスは、持続的なコンピュータで読込可能な記憶媒体で具現化されたコンピュータプログラム製品の形態で実装可能である。
【0093】
このプロセスは、連想メモリ構築の元となっている第1テーブルへの更新情報をシステムが受け取ることによって開始される(作業300)。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含む。連想メモリは第1フィールドを取り込み、第2フィールドの取り込みを回避するように構成することができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。
【0094】
次にシステムは第1テーブルと第2テーブルを比べて、比較表を形成することがある(作業302)。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかのうちの少なくとも一つを示す第1の情報を保存することができる。
【0095】
次にシステムは比較表に基づく第1フィールドの取り込み又は第1フィールドの忘却処理のうちの少なくとも一つを実施することによって、連想メモリを更新することができる(作業304)。特に作業304では、第1フィールドが取り込み予定になっていることを第1テーブルの第2フィールドが示し、且つ第1フィールドが連想メモリによってまだ取り込まれていないことを第2テーブルの第3フィールドが示すときには、システムは第1フィールドを取り込むことができる。
【0096】
さらに作業304では、第1フィールドが忘却処理予定になっていることを第1テーブルの第2フィールドが示し、且つ第1フィールドが連想メモリによってまだ忘却処理されていないことを第2テーブルの第3フィールドが示すときには、システムは第1フィールドを忘却処理することができる。したがって、システムは連想メモリの第1フィールドの新しいステータスを反映するために第2テーブルの第3フィールドを更新し(作業306)、その後のプロセスを停止する。
【0097】
次に図4を参照すると、有利な実施形態に従って描かれた連想メモリ構築の元となる第1テーブルの更新プロセスのフロー図が示されている。図4に示されているプロセスは、図1の第1テーブル134及び/又は図2の第1テーブル204を更新するように実装可能である。特にこのプロセスは、図3の作業300で受け取った第1テーブルに更新情報を生成するように使用可能である。図4に関して説明されている技法は、図6のプロセッサ装置604など、一又は複数のプロセッサを用いて実装することができる。図4に関して説明されている技法は、以下のようにさらに参照されている図1のメモリ管理システム100のようなシステムを利用して実装することができる。
【0098】
図4に関して説明されているプロセスは、システムによって実装可能である。図4に関して使用されているように、「システム」という用語は、図1の一又は複数のメモリ管理システム100、図6のプロセッサユニット604、ハードウェア実装、ソフトウェア実装、及びこれらの組み合わせを含むことができる。図4に関して説明されているプロセスは、持続的なコンピュータで読込可能な記憶媒体で具現化されたコンピュータプログラム製品の形態で実装可能である。
【0099】
このプロセスは、ソーステーブルのソースレコードの情報に対する更新をシステムが監視することによって開始される(作業400)。この例示的な実施例では、ソーステーブルは、例えば、図1のソーステーブル118及び/又は図2のソーステーブル202であってもよい。
【0100】
ソーステーブルのソースレコードの情報に対する更新の検出に対応して、システムはソーステーブルのソースレコードに対応する新規レコードを第1テーブルに追加してもよい(作業402)。作業402では、第1テーブルに追加された新規レコードは、ソーステーブルのソースレコードの更新情報を含むことができる。
【0101】
したがって、連想メモリによって過去に取り込まれた第1レコードの情報が連想メモリによって忘却処理予定になっていることを示すため、システムはソーステーブルのソースレコードに対応する第1テーブルの第1レコードのフィールドの情報を変更し(作業404)、その後のプロセスを停止することができる。
【0102】
次に図5を参照すると、有利な実施形態に従って描かれた連想メモリ更新プロセスのフロー図が示されている。図5に示されているプロセスは、図1の連想メモリ102及び/又は図2の連想メモリ200を更新するように実装可能である。図5に関して説明されている技法は、図6のプロセッサ装置604など、一又は複数のプロセッサを用いて実装することができる。図5に関して説明されている技法は、以下のようにさらに参照されている図1のメモリ管理システム100のようなシステムを利用して実装することができる。
【0103】
図5に関して説明されているプロセスは、システムによって実装可能である。図5に関して使用されているように、「システム」という用語は、図1の一又は複数のメモリ管理システム100、図6のプロセッサユニット604、ハードウェア実装、ソフトウェア実装、及びこれらの組み合わせを含むことができる。図5に関して説明されているプロセスは、持続的なコンピュータで読込可能な記憶媒体で具現化されたコンピュータプログラム製品の形態で実装可能である。
【0104】
このプロセスは事象の発生を待っているシステムによって開始される(作業500)。事象は、例えば、ある時間の経過、連想メモリ構築の元となる第1テーブルへの更新、警告、及び/又は幾つかの他の好適な形式の事象であってもよい。
【0105】
第1テーブルは、第1の任意の数のフィールド形式及び第2の任意の数のフィールド形式を含むレコードを有する。連想メモリは、第1テーブルの特定のレコードに対して第1の任意の数のフィールド形式のフィールドを取り込み、且つ特定のレコードを取り込むときに特定のレコードに対して第2の任意の数のフィールド形式のフィールドの取り込みを回避するように構成することができる。
【0106】
次にシステムは、処理のため第1テーブルのレコードを選択してもよい(作業502)。次にシステムは、第1テーブルのレコードに対する忘却フィールドが、レコードの所望の情報が忘却処理予定になっていることを示しているかどうかを判断することができる(作業504)。第1テーブルのレコードに対する忘却フィールドが、レコード中の所望の情報が忘却処理予定になっていることを示していない場合には、システムは第1テーブルのレコードが第2テーブルに対応するレコードを有するかどうかを判断することができる(作業506)。
【0107】
第1テーブルが第2テーブルに対応するレコードを有しない場合には、連想メモリは第1テーブルのレコードの所望の情報を取り込んでもよい(作業508)。その後、システムは第1テーブルに任意の未処理の追加レコードが存在するかどうかを判断することができる(作業510)。未処理の追加レコードが第1テーブルに存在しない場合には、プロセスは終了する。存在する場合には、プロセスは上述のように作業502に戻る。
【0108】
作業506を再度参照して、第1テーブルのレコードが第2テーブルに対応するレコードを有しない場合には、上述のようにシステムは作業510に進んでもよい。作業504を再度参照して、第1テーブルのレコードに対する忘却フィールドが、レコード中の所望の情報が忘却処理予定になっていることを示している場合には、システムは第1テーブルのレコードが第2テーブルに対応するレコードを有するかどうかを判断することができる(作業512)。
【0109】
第1テーブルが第2テーブルに対応するレコードを有していない場合には、上述のように処理は作業510に進む。そうではなく、第1テーブルが第2テーブルに対応するレコードを有している場合には、システムはレコード中の所望の情報が連想メモリによって既に忘却処理済みかどうかを判断することができる(作業514)。
【0110】
所望の情報が既に忘却処理済みの場合には、プロセスは上述のように作業510に進む。忘却処理済みでない場合には、連想メモリは第1テーブルのレコードの所望の情報を忘却処理してもよい(作業516)。その後、プロセスは上述のように作業510に進む。
【0111】
別の実施形態でのフロー図及びブロック図は、有利な実施形態で実装可能な装置及び方法の構造、機能、及び作業を示している。その際、フロー図又はブロック図の各ブロックは、作業又はステップのモジュール、セグメント、機能及び/又は部分を表わすことができる。例えば、一又は複数のブロックは、ハードウェア内のプログラムコードとして、又はプログラムコードとハードウェアの組合せとして実装可能である。ハードウェア内に実装した場合、ハードウェアは、例えば、フロー図又はブロック図の一又は複数の作業を実施するように製造又は構成された集積回路の形態をとりうる。
【0112】
幾つかの有利な実施形態の代替的な実装では、ブロックに記載された機能又は機能群は、図の中に記載の順序を逸脱して現れることがある。例えば、場合によっては、連続して示されている二つのブロックがほぼ同時に実行されること、又は時には含まれる機能によってはブロックが逆順に実施されることもありうる。また、フローチャート又はブロック図に描かれているブロックに加えて他のブロックが追加されることもありうる。
【0113】
次に図6に注目すると、有利な実施形態に従って図解されたデータ処理システムが示されている。この例示的な実施例では、データ処理システム600は図1のコンピュータシステム104に一又は複数のコンピュータを実装するために使用しうる。データ処理システム600は通信ファブリック602を含み、これによりプロセッサ装置604、メモリ606、固定記憶域608、通信装置610、入出力(I/O)装置612、及び表示装置614の間の通信を提供する。
【0114】
プロセッサ装置604は、メモリ606に読み込まれうるソフトウェアに対する命令を実行するように働く。プロセッサ装置604は、特定の実装に応じて、任意の数のプロセッサ、マルチプロセッサコア、又は他の形式のプロセッサであってもよい。本明細書でアイテムを参照する際に使用している「任意の数の」は、一又は複数のアイテムを意味する。さらに、プロセッサ装置604は、単一チップ上でメインプロセッサが二次プロセッサと共存する異種プロセッサシステムを任意の個数だけ使用して実装されてもよい。別の例示的な実施例では、プロセッサ装置604は同一形式の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
【0115】
メモリ606及び固定記憶域608は記憶デバイス616の例である。記憶デバイスは、例えば、限定しないが、データ、機能的な形態のプログラムコード、及び/又は他の好適な情報などの情報を、一時的に及び/又は永続的に保存することができる任意の個数のハードウェアである。記憶デバイス616は、これらの実施例ではコンピュータで読取可能な記憶デバイスと呼ばれることもある。これらの例では、メモリ606は、例えば、ランダムアクセスメモリ又は他の好適な揮発性又は不揮発性の記憶デバイスであってもよい。固定記憶域608は特定の実装に応じて様々な形態をとりうる。
【0116】
例えば、固定記憶域608は一又は複数のコンポーネント又はデバイスを含みうる。例えば、固定記憶域608は、ハードドライブ、フラッシュメモリ、書換型光ディスク、書換型磁気テープ、又はこれらの組み合わせでありうる。固定記憶域608によって使用される媒体は着脱式であってもよい。例えば、着脱式ハードドライブは固定記憶域608に使用しうる。
【0117】
通信装置610はこれらの例では、他のデータ処理システム又はデバイスとの通信を提供する。これらの例では、通信装置610はネットワークインターフェースカードである。通信装置610は、物理的及び無線の通信リンクのいずれか一方又は両方を使用することによって、通信を提供する。
【0118】
入出力装置612により、データ処理システム600に接続可能な他のデバイスによるデータの入力及び出力が可能になる。例えば、入出力装置612は、キーボード、マウス、及び/又は他の幾つかの好適な入力デバイスを介してユーザ入力への接続を提供することができる。さらに、入出力装置612は出力をプリンタに送ってもよい。表示装置614はユーザーに情報を表示する機構を提供する。
【0119】
オペレーティングシステム、アプリケーション、及び/又はプログラムに対する命令は、通信ファブリック602を介してプロセッサ装置604と通信する記憶媒体616内に配置されうる。これらの例示的な実施例では、命令は固定記憶域608上の機能的な形態になっている。これらの命令は、プロセッサ装置604によって実行するため、メモリ606に読み込まれうる。異なる実施形態のプロセスは、メモリ606などのメモリに配置されうる命令を実装したコンピュータを使用して、プロセッサ装置604によって実行されうる。
【0120】
これらの命令は、プログラムコード、コンピュータで使用可能なプログラムコード、又はコンピュータで読込可能なプログラムコードと呼ばれ、プロセッサ装置604内のプロセッサによって読込及び実行されうる。異なる実施形態のプログラムコードは、メモリ606又は固定記憶域608など、異なる物理的な又はコンピュータで読込可能な媒体上に具現化しうる。
【0121】
プログラムコード618は、選択的に着脱可能でコンピュータで読込可能な媒体620上に機能的な形態で配置され、プロセッサ装置604での実行用のデータ処理システム600に読込み又は転送することができる。プログラムコード618及びコンピュータで読込可能な媒体620は、これらの実施例ではコンピュータプログラム製品622を形成する。一つの実施例では、コンピュータで読込可能な媒体620は、コンピュータで読取可能な記憶媒体624又はコンピュータで読取可能な信号媒体であってもよい。コンピュータで読込可能な記憶媒体624は、例えば、固定記憶域608の一部であるハードディスなどのように、記憶デバイス上に転送するための固定記憶域608の一部であるドライブ又は他のデバイスに挿入又は配置される光ディスク又は磁気ディスクなどを含みうる。
【0122】
コンピュータで読込可能な記憶媒体624はまた、データ処理システム600に接続されているハードドライブ、サムドライブ、又はフラッシュメモリなどの固定記憶域の形態をとりうる。幾つかの例では、コンピュータで読込可能な記憶媒体624はデータ処理システム600から着脱可能ではないことがある。これらの実施例では、コンピュータで読込可能な記憶媒体624は、プログラムコード618を伝搬又は転送する媒体よりはむしろプログラムコード618を保存するために使用される物理的な又は有形の記憶デバイスである。コンピュータで読込可能な記憶媒体624は、コンピュータで読込可能な有形の記憶デバイス又はコンピュータで読込可能な物理的な記憶デバイスと呼ばれることもある。すなわち、コンピュータで読込可能な記憶媒体624は、人が触れることのできる媒体である。
【0123】
代替的に、プログラムコード618はコンピュータで読込可能な信号媒体626を用いてデータ処理シスム600に転送可能である。コンピュータで読込可能な信号媒体626は、例えば、プログラムコード618を含む伝播されたデータ信号であってもよい。例えば、コンピュータで読込可能な信号媒体626は、電磁信号、光信号、及び/又は他の好適な形式の信号であってもよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、有線、及び/又は他の好適な形式の通信リンクなどの通信リンクによって転送されうる。すなわち、通信リンク及び/又は接続は、例示的な実施例で物理的なもの又は無線によるものでありうる。
【0124】
幾つかの例示的な実施形態では、プログラムコード618は、データ処理システム600内で使用するため、コンピュータで読込可能な信号媒体626を経由する他のデバイス又はデータ処理システムから、ネットワークを介して固定記憶域608へダウンロードすることができる。例えば、サーバーデータ処理システムのコンピュータで読取可能な記憶媒体に保存されたプログラムコードは、ネットワークを介してサーバーからデータ処理システム600にダウンロードすることができる。プログラムコード618を提供するデータ処理システムは、サーバーコンピュータ、クライアントコンピュータ、又はプログラムコード618を保存及び転送することができる他のデバイスであってもよい。
【0125】
データ処理システム600に対して例示されている種々のコンポーネントは、異なる実施形態が実装しうる方法に対して構造上の制限を設けることを意図していない。種々の有利な実施形態は、データ処理システム600に対して図解されているコンポーネントに対して追加的又は代替的なコンポーネントを含むデータ処理システム内に実装しうる。図6に示した他のコンポーネントは、本明細書に示した例示的な実施例から異なることがある。種々の実施形態は、プログラムコードを実行しうる任意のハードウェアデバイス又はシステムを使用して実装しうる。一つの実施例として、データ処理システムは無機コンポーネントと一体化した有機コンポーネントを含むことが可能、及び/又は人間を除く有機コンポーネントを完全に含みうる。例えば、記憶デバイスは有機半導体を含んでいてもよい。
【0126】
別の例示的な実施例では、プロセッサ装置604は、特定の用途のために製造又は構成されたハードウェア装置の形態をとってもよい。この形式のハードウェアは、作業を実施するために構成される記憶デバイスからメモリにプログラムコードを読み込まずに作業を実施することができる。
【0127】
例えば、プロセッサ装置604がハードウェア装置の形態をとる場合、プロセッサ装置604は回路システム、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス、又は任意の数の作業を実施するために構成された他の好適な形式のハードウェアであってもよい。プログラマブル論理デバイスにより、デバイスは任意の数の作業を実施するように構成されている。このデバイスはその後再構成すること、又は任意の数の作業を実施するために永続的に構成することができる。プログラマブル論理デバイスの例は、例えば、プログラマブル論理アレイ、プログラマブルアレイロジック、フィールドプログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、及び他の好適なハードウェアデバイスを含む。この形式の実装により、異なる実施形態のプロセスはハードウェア装置に実装されるため、プログラムコード618は除外されうる。
【0128】
さらに別の例示的な実施例では、プロセッサ装置604は、コンピュータ及びハードウェア装置の中に見出されるプロセッサの組み合わせを利用して実装可能である。プロセッサ装置604は、任意の数のハードウェア装置及びプログラムコード618を実行するように構成されている任意の数のプロセッサを有していてもよい。ここに描かれている実施例では、プロセスの一部は任意の数のハードウェア装置に実装することが可能であるが、一方、他のプロセスは任意の数のプロセッサに実装可能である。
【0129】
他の実施例では、バスシステムは通信システムファブリック602を実装するために使用可能で、システムバス又は入出力バスなどの一又は複数のバスを含みうる。言うまでもなく、このバスシステムは、当該バスシステムに結合された様々なコンポーネント又はデバイス間でのデータ転送を可能にする、任意の好適な形式のアーキテクチャを用いて実装することができる。
【0130】
さらに、通信装置は、データの送信、データの受信、又はデータの送受信を行う任意の数のデバイスを含みうる。通信装置は例えば、モデム又はネットワークアダプタ、2個のネットワークアダプタ、又はこれらの組み合わせであってもよい。さらに、メモリは例えば、通信ファブリック602に備わっていることがあるインターフェース及びメモリ制御装置ハブにみられるような、メモリ606又はキャッシュであってもよい。
【0131】
したがって、種々の有利な実施形態は、連想メモリの再構築を必要としない連想メモリを更新するための方法及び装置を提供する。一つの有利な実施形態では、システムは連想メモリ、第1テーブル、第2テーブル、コンパレータ、及びアップデータを含むことができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。
【0132】
連想メモリは第1テーブルから構築することができる。第1テーブルは第1レコードを含み、この第1レコードは第1フィールド及び第2フィールドを含むことがある。連想メモリは第1フィールドを取り込み、第2フィールドの取り込みを回避するように構成することができる。第2テーブルは第2レコードを含み、この第2レコードは第3フィールドを含むことがある。第3フィールドは、第1フィールドが連想メモリによって取り込み済みかどうか、又は連想メモリによって忘却処理済みかどうかに関して、少なくとも一つを示す第1情報を保存することができる。
【0133】
コンパレータは、第1フィールドを連想メモリによって忘却処理すべきかどうか、又は第1フィールドを連想メモリによって取り込むべきかどうかにに関して、いずれか一つを特定するため、第1テーブルと第2テーブルの比較を行うように構成することができる。アップデータは、第1フィールドの取り込み又は第1フィールドの忘却処理のいずれか一つを実施することによって、連想メモリを更新するように構成することができる。
【0134】
一つの有利な実施形態では、システムは連想メモリ、第1テーブル、第2テーブル、コンパレータ、及びアップデータを含むことができる。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。第1テーブルは第1の任意の数の第1レコード群を含むことができる。ここで第1レコードの各々は連想メモリによって取り込み可能となっている第1の任意の数の第1フィールド群、及び連想メモリによって取り込み予定になっていない第2の任意の数の第2フィールド群を含む。連想メモリは第1テーブルから構築することができた。第2テーブルは、第2の任意の数の第2レコード群を含むことができ、ここで第2レコード群の各々は、連想メモリによって過去に取り込まれた第1の任意の数の第1フィールド群の対応する1つのフィールドの過去のステータスを含む第3の任意の数の第3フィールド群を含む。第1テーブル及び第2テーブルは互いに分離されて維持されるか、又は他のテーブルの一部となりうる。
【0135】
コンパレータは、連想メモリによって取り込み予定となっている第1レコード群の第1セット及び連想メモリによって忘却処理予定になっている第1レコード群の第2セットのうちの少なくとも1つを判定するため、第1テーブルと第2テーブルを比較するように構成することができる。アップデータは、第1セットの取り込み又は第2セットの忘却処理のうちの少なくとも1つを実施することによって、連想メモリを更新するように構成することができる。
【0136】
さらに、第3の任意の数の第3フィールド群は、第1レコードの中で連想メモリに取り込み済みのものを示すように構成された情報を含むフィールド群の第1グループを含むことができる。第3の任意の数の第3フィールド群は、第1テーブルのレコード群を特定するように構成された追加情報を含むフィールド群の第2グループを含むことができる。アップデータは、第1の任意の数の第1フィールド群の修正又は削除を回避するように構成することができる。さらに、第2アップデータは、第3の任意の数の第2フィールド群の新規ステータスを反映し、新規レコードのステータスを追加するように構成されたシステムに提示されることがある。
【0137】
しかもさらに、システムは、リムーバ、加算器、及びマーカーのうちの少なくとも1つを含むことができる。リムーバは、連想メモリによって第3レコードが忘却処理された後にのみ、第3レコードの第1の任意の数の第1フィールド群から対応するフィールド群を削除することを含め、第1テーブルから第1レコード群の第3レコードを削除するように構成することができる。加算器は、連想メモリが更新される前に、第1テーブルに第1レコード群の第4レコードを加算するように構成することができる。マーカーは、第1レコード群の第5レコードが忘却予定であることをマーキングするように構成することができる。マーカーは、第5レコードの第2の任意の数の第2フィールド群のうちの少なくとも一つを変更することができる。
【0138】
さらに別の有利な実施形態では、連想メモリを更新するために方法が提示されている。連想メモリが構築されている第1テーブルへの更新情報は、第1の有形メモリで受け取ってもよい。第1テーブルは第1の任意の数の第1レコード群を含むことができる。ここで第1レコード群の各々は連想メモリによって取り込み可能となっている第1の任意の数の第1フィールド群、及び連想メモリによって取り込み予定になっていない第2の任意の数の第2フィールド群を含む。連想メモリは複数のデータ及び複数のデータ間の複数の連想を含むことができる。第1プロセッサは、第1テーブルと第2の有形メモリの第2テーブルとを比較するように使用することができる第2テーブルは、第2の任意の数の第2レコードを含むことができる。ここで第2レコードの各々は、連想メモリによって過去に取り込まれた第1の任意の数の第1フィールド群の対応する1つのフィールドの過去のステータスを含む第3の任意の数の第3フィールドを含む。比較を行うことができる。比較に基づいて第1レコード群の第1セットを連想メモリに取り込むこと、及び比較に基づいて第1レコード群の第2セットを連想メモリで忘却処理すること、のうちの少なくとも一つを実施することによって、連想メモリを更新するように、第2プロセッサを使用することができる。
【0139】
さらに、第1テーブルと第2テーブルとの対照では、第1の任意の数の第1レコード群及び第2の任意の数の第2レコード群の各々に対して、第1プロセッサは、第2の任意の数の第2フィールド群を第3の任意の数のフィールド群と比較することができる。第2テーブルは、第2の任意の数の第2フィールド群の新規ステータス及び新規レコードのステータスを反映するように、更新することができる。連想メモリの更新は、第1の任意の数の第1フィールド群の修正回避、修正又は削除を含むことができる。しかもさらに、第2セットは連想メモリの中で忘却処理し、その後第1テーブルから削除することができる。幾つかの例示的な実施例では、第1プロセッサ及び第2プロセッサは1個のプロセッサを含んでいてもよく、且つ第1の有形メモリ及び第2の有形メモリは1個の有形メモリを含んでいてもよい。
【0140】
種々の有利な実施形態の説明は、例示及び説明を目的として提示されているものであり、網羅的な説明であること、又は開示された形態に実施形態を限定することを意図していない。当業者には、多数の修正例及び変形例が明らかであろう。さらに、種々の有利な実施形態は、他の有利な実施形態に照らして別の利点を提供することができる。選択された一又は複数の実施形態は、実施形態の原理、実際の用途を最もよく説明するため、及び他の当業者に対し、様々な実施形態の開示と、考慮される特定の用途に適した様々な修正との理解を促すために選択及び記述されている。
【符号の説明】
【0141】
100 メモリ管理システム
102 連想メモリ
104 コンピュータシステム
106 記憶システム
108 複数のデータ
110 複数の連想
114 情報
116 任意の数のデータソース群
118 ソーステーブル
120 任意の数のソースレコード群
122 任意の数のソースフィールド形式群
124 ソースレコード
126 任意の数のフィールド群
130 メモリ更新モジュール
132 事象
134 第1テーブル
136 第2テーブル
138 第1の任意の数のレコード群
140 第1の任意の数のフィールド形式群
142 第2の任意の数のフィールド形式群
143 一部分
144 第1レコード
146 第1の任意の数のレコード群
148 第2の任意の数のレコード群
149 第1フィールド形式
150 第1フィールド
151 フィールド
152 第2フィールド
153 第2フィールド形式
154 新規レコード
155 加算器
156 第2の任意の数のレコード群
157 第3の任意の数のフィールド形式群
158 第3フィールド形式
159 マーカー
160 第2レコード
162 第3フィールド
164 コンパレータ
166 第1アップデータ
168 第2アップデータ
170 リムーバ
200 連想メモリ
202 ソーステーブル
204 第1テーブル
206 第2テーブル
208 ソースレコード
210 キー
212 形式
214 説明
216 ステータス
218 タイムスタンプ
222 第1レコード
224 識別子
226 キー
228 形式
230 説明
232 ステータス
234 タイムスタンプ
236 忘却指示
238 第2レコード
240 識別子
242 ステータス
244 日付
246 情報
248 更新済み状態
250 レコード
252 レコード
254 フィールド
256 レコード
258 新規レコード
266 レコード

【特許請求の範囲】
【請求項1】
複数のデータ及び複数のデータ間の複数の連想を含む連想メモリと、
連想メモリ構築の元となっていて、第1レコードを含む第1テーブルであって、該第1レコードが第1フィールド及び第2フィールドを含み、前記連想メモリが前記第1フィールドを取り込むように構成され、且つ前記連想メモリが前記第2フィールドの取り込みを回避するようにさらに構成されている第1テーブルと、
第2レコードを含む第2テーブルであって、該第2レコードが第3フィールドを含み、該第3フィールドが、前記第1フィールドが前記連想メモリによって取り込み済みかどうか、又は前記連想メモリによって忘却処理済みかどうか、のうちの少なくとも一つを示す第1の情報を保存している第2テーブルと、
前記第1フィールドを前記連想メモリによって忘却処理すべきかどうか、又は前記第1フィールドを前記連想メモリによって取り込むべきかどうか、のうちの一つを特定するために、前記第1テーブルと前記第2テーブルとを比較するように構成されたコンパレータと、
前記第1フィールドの取り込み又は前記第1フィールドの忘却処理のうちの一つを実施することによって、前記連想メモリを更新するように構成されたアップデータと
を含むシステム。
【請求項2】
前記第2フィールドが、前記第1フィールドを前記連想メモリによって忘却処理すべきかどうか、又は前記連想メモリによって前記第1フィールドが取り込まれていない場合には、前記アップデータによって無視すべきかどうかを示す、第2の情報を含む、請求項1に記載のシステム。
【請求項3】
前記コンパレータが、前記第3フィールドと前記第2フィールドを比較するように構成されている、請求項1または2に記載のシステム。
【請求項4】
前記アップデータが、前記第2フィールド内の第2の情報が前記第1フィールドを忘却処理すべきであることを示しているとき、及び前記第3フィールド内の第1の情報が前記連想メモリに前記第1フィールドが取り込み済みであることを示しているときには、前記第1フィールドを忘却処理することによって、前記連想メモリを更新するように構成されている、請求項2に記載のシステム。
【請求項5】
前記第1の情報が、前記第1フィールドが連想メモリによって忘却処理済み又は取り込み済みであることを示すように、前記第2テーブルを更新するように構成されている第2アップデータを
さらに含む、請求項1に記載のシステム。
【請求項6】
前記第1テーブル及び前記第2テーブルが互いに分離されて維持される、請求項1に記載のシステム。
【請求項7】
前記第1テーブル及び前記第2テーブルが一つのテーブルの一部である、請求項1に記載のシステム。
【請求項8】
前記アップデータが、前記第1フィールドの修正又は削除を回避するように構成されている、請求項1に記載のシステム。
【請求項9】
前記第1フィールドが連想メモリによって忘却処理された後でのみ、前記第1テーブルから前記第1レコードを削除できるように構成されたリムーバを
さらに含む、請求項1に記載のシステム。
【請求項10】
連想メモリが更新される前に、第3レコードを第1テーブルに加算するように構成されている加算器をさらに含み、前記連想メモリが更新されると前記第3レコードが前記連想メモリによって取り込まれることになっている、請求項1に記載のシステム。
【請求項11】
前記第1フィールドを前記連想メモリによって忘却処理すべきであることを示すため、第2フィールドの第2の情報を変更するように構成されているマーカーを
さらに含む、請求項2に記載のシステム。
【請求項12】
第1の有形メモリの中で、連想メモリ構築の元となっている第1テーブルへの更新情報を受け取るステップであって、該第1テーブルが第1レコードを含み、該第1レコードが第1フィールド及び第2フィールドを含み、前記連想メモリが該第1フィールドを取り込むように構成され、前記連想メモリが複数のデータ及び該複数のデータ間の複数の連想を含み、且つ前記連想メモリがさらに該第2フィールドの取り込みを回避するように構成されているステップと、
前記第1フィールドを前記連想メモリによって忘却処理すべきかどうか又は前記第1フィールドを前記連想メモリによって取り込むべきかどうかのうちの一つを特定するため、第1プロセッサを用いて、前記第1テーブルを第2の有形メモリの第2テーブルと比較するステップであって、前記第2テーブルが第2レコードを含み、該第2レコードが第3フィールドを含み、且つ該第3フィールドが前記第1フィールドが前記連想メモリによって取り込み済みかどうか又は前記連想メモリによって忘却処理済みかどうかのうちの少なくとも一つを示す第1の情報を保存し、さらに前記比較が形成されているステップと、
第2プロセッサを用いて、前記第1フィールドの取り込み又は前記第1フィールドの忘却処理のうちの一つを実施することによって、前記連想メモリを更新するステップと
を含む方法。
【請求項13】
前記第2フィールドが、前記第1フィールドを前記連想メモリによって忘却処理すべきかどうか、又は前記第1フィールドが前記連想メモリによって取り込まれていない場合には、前記第2プロセッサによって無視すべきかどうか、を示す第2の情報を含む、請求項12に記載の方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−33583(P2013−33583A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−162776(P2012−162776)
【出願日】平成24年7月23日(2012.7.23)
【出願人】(500520743)ザ・ボーイング・カンパニー (773)
【氏名又は名称原語表記】The Boeing Company