JP2769065B2 - デジタルデータ処理システムに使用する方法及び装置 - Google Patents

デジタルデータ処理システムに使用する方法及び装置

Info

Publication number
JP2769065B2
JP2769065B2 JP4115920A JP11592092A JP2769065B2 JP 2769065 B2 JP2769065 B2 JP 2769065B2 JP 4115920 A JP4115920 A JP 4115920A JP 11592092 A JP11592092 A JP 11592092A JP 2769065 B2 JP2769065 B2 JP 2769065B2
Authority
JP
Japan
Prior art keywords
function
signature
constant
network
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4115920A
Other languages
English (en)
Other versions
JPH05189490A (ja
Inventor
デービッド・アレキサンダー・エプスタイン
グレン・グレゴリー・ギリー
ケヴィン・パトリック・マコウリフィー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05189490A publication Critical patent/JPH05189490A/ja
Application granted granted Critical
Publication of JP2769065B2 publication Critical patent/JP2769065B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的にはデータ処理の
方法と装置とに関し、特に、例えば非循環式有向グラフ
(Directed Acyclic Graph)
(DAG)のような関数ネットワークの実行の間入力デ
ータと中間結果とを管理する方法と装置とに関する。
【0002】
【従来の技術】図1に示すように、関数ネットワーク
は、挿入レベルのデータと関数ノードから構成されるD
AGとして表現しうる。A,B,D,E,F,Gおよび
Hとラベルを付したボックスは、DAGの関数ノード即
ち変換に対応する。x,yおよびzとラベルを付した円
は、DAGへの入力に対応する。a,b0,b1,d,
e,fおよびgとラベルを付した円は、関数ノードの実
行中の中間結果として導出された値に対応する。図1に
示す関数ネットワークは、DAGの典型的であるが限定
的でない構造を示す。
【0003】多くの従来のグラフィックや分析システム
においては、所望の結果に達するためにデータは一組の
変換によって演算される。変換を定義する1個以上のパ
ラメータを変えながら変換を数回繰り返すことがよくあ
る。変換に対する入力が変えられた後、変更を反映する
ためにデータの再計算が必要になる。
【0004】例えば円a,b0,b1およびdによって示
すもののような1個の計算によって得られた中間値が保
持されていないとすれば、全組の変換を再計算する必要
があるという問題が発生する。このことは、計算コスト
が高くなるという点で望ましくないことは明らかであ
る。
【0005】もし中間値が保持されているとすれば、保
持された中間値をどのようにして最も効率的に管理する
かという点の別の問題が生ずる。実用性の観点からは管
理技術自体は計算コストの面で高価であってはならな
い。また、管理技術は、入力データと中間値の存在の決
定と、それらへのアクセスとが迅速に行われうるように
効率的に作用することが好ましい。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は関数ネットワークの実行中データ入力と中間値とを管
理する効率的な技術を提供することである。
【0007】本発明の別の目的は、それぞれデータ入力
あるいは中間値に関連したシグネチャ(signatu
re)であって、後で、データ入力あるいは中間値が存
在するか否かを決定し、もし存在するのであれば、それ
らにアクセスするために採用した独特のシグネチャを計
算しうる効率的な技術を提供することである。
【0008】本発明のさらに別の目的は計算への入力の
関数としての計算の結果を示す方法と装置とを提供する
ことである。
【0009】
【課題を解決するための手段および作用】関数ネットワ
ークの実行の間に計算されたメカデータと中間値とを管
理する方法と装置とにより、前述およびその他の問題が
克服され、かつ本発明の目的が実現される。本発明は、
独特の、容易に計算しうるシグネチャが入力データと中
間値とに割り当てられるような技術を採用している。そ
の後、これらのシグネチャは入力データあるいは中間値
が存在するか否かを決定し、もし存在すれば、それらを
アクセスするために用いられる。
【0010】本発明の方法と装置とは、仮想あるいは物
理的メモリアドレスに対して動作するいずれかのハード
ウエアキャッシング構成とは独立して機能する。また、
本発明の方法と装置とは、関数誘導でなくむしろメモリ
アドレスに対して典型的に動作するページング、スワッ
ピングおよびセグメンテーションのようないずれかのハ
ードウエアおよびソフトウエアメモリ管理機構とは独立
して機能する。さらに、本発明の方法と装置とは、典型
的にはメモリの固定サイズの連続領域のみを管理する従
来のメモリ指向性のキャッシングおよびメモリ管理技法
とは、例えば、個々のバイト、ワード、リストあるいは
複雑な階層的結合データ構造のような任意のデータアイ
テムに対するアクセスが設けられているという点で相違
する。
【0011】本発明の方法と装置とは、3つの要素の組
合わせ、即ち各々の一定の値に独特のシグネチャを割り
当てること、ある関数の各出力に独特のシグネチャを割
り当てること、およびそれらの割り当てられたシグネチ
ャと共に定数および関数出力の各々を記憶することを採
用している。シグネチャは関連の記憶された定数と関数
出力とに対するアクセスキーとして作用する。
【0012】本発明によって採用された記憶要素即ち辞
書は、それぞれ独特のシグネチャを伴った、入力デー
タ、中間値、またはそれらに対するポインタあるいはこ
れらの組合せのようなデータユニットを記憶する。記憶
要素はさらに、特定のシグネチャと関連しかつ記憶され
たデータユニットの削除および特定のシグネチャに関連
しかつ記憶されたデータユニットの検索とを可能とす
る。
【0013】本発明によれば、1個以上の定数を含むデ
ータを処理するために一組の関数を繰り返し呼び出すタ
イプのデジタルデータ処理システムで使用するために、
以下のステップを含む方法が開示されている。第1のス
テップはネットワーク定数を評価してその属性を決定す
る。第2のステップはその属性を定数の値と組合わせ
る。第3のステップはその組合せを符号化して定数のシ
グネチャを得る。第4のステップは定数の値と共に定数
シグネチャを記憶する。第5のステップはある関数を評
価して該関数の出力の属性を決定する。第6のステップ
は属性を関数の識別と組合わせる。第7のステップはそ
の組合せを符号化して関数のシグネチャを得る。第8の
ステップは関数のシグネチャを該関数の出力と共に記憶
する。
【0014】本発明の前述並びにその他の特徴は添付図
面と関連して読めば本発明の以下の詳細説明から明らか
となる。
【0015】
【実施例】図2を参照すれば、本発明の教示により動作
するデータ処理システム10がブロック図の形態で示さ
れている。データ処理システム10はデータプロセッサ
12を含む。データプロセッサ12は、例えばマイクロ
プロセッサのようないずれかの適当なデータ処理装置あ
るいはマルチプロセッサとして相互に持続されたマイク
ロプロセッサの組立体によって実施しうる。以下詳細に
説明するように、データプロセッサ12の機能は、図1
のDAGにより表される型式の関数ネットワークを評価
するために入力定数と入力関数とを受け取ることであ
る。本発明の一局面によれば、データプロセッサ12
は、巡回冗長検査(CRC)発生器14が好ましい符号
器に双方向的に結合されている。本発明の他の実施例に
おいては、該符号器は1977年1月15日付FIPS
刊行物46に記載の周知のデータ符号化規格(Data
Encrypton Standard)あるいはそ
の他のいずれかの適当な技術によって、入力の独特ある
いは半独特表示を得るために動作しうる。また、データ
プロセッサ12には、半導体メモリ、ディスク、あるい
はテープメモリシステムにおいて実施しうるデータエレ
メント記憶装置(DES)16が結合されている。DE
S 16は、関数ネットワークの評価の間に入力され
た、あるいは計算された中間値を含む、一定データ、結
果および部分的な結果を記憶するために採用されてい
る。またデータプロセッサ12には、辞書20に結合さ
れた複数の制御出力を有する辞書制御装置18が結合さ
れている。データプロセッサ12はさらに、それぞれ以
下の要領で計算され、次いでCRC発生器14によって
符号化されたシグネチャを辞書20へ提供するためにデ
ータプロセッサ12の出力側が辞書20に結合されてい
る。後述のように、シグネチャは、それぞれデータエレ
メントと関連した「キー」として辞書20内に記憶され
ている。データタエレメントは、数であったり、データ
のアレイに対するポインタであったり、あるいはいずれ
かの階層結合データ構造に対するポインタでありうる。
本発明の好適実施例においては、辞書20は、シグネチ
ャによってアドレス指定される複数のハッシュセルを有
するハッシュテーブルとして実施される。ハッシュテー
ブルの使用は、一定の探索時間が得られる点で現在好適
のものである。しかしながら、辞書20は、限定的でな
いが、直線アレイ、ツリー構造あるいは結合リストを含
むその他の適当なデータ構造において実施しうることが
認識されるべきである。
【0016】辞書制御装置18は、記憶されたシグネチ
ャあるいはキーを挿入し、削除し、探索し、パージする
ために挿入されている。
【0017】データ処理システム10はさらに、システ
ムのユーザに対してその上でテキストおよびグラフィッ
クデータが表示される、高解像度のグラフィックディプ
レイ22のようなディスプレイを含む。データ処理シス
テム10はまた、例えばキーボード24のような、それ
によってユーザが、図1に示すタイプの関数ネットワー
クを実行させるような指令を含む命令をデータプロセッ
サ12に入力することのできるユーザ入力装置も含む。
グラフィックディスプレイ22とキーボード24の要素
は、その属性が従来からのものであって、以下詳細には
説明しない。
【0018】本発明の前述並びにその他の局面について
以下詳細に説明する。
【0019】シグネチャの検出 二種類のシグネチャ検出法がデータプロセッサ12によ
って採用されている。第1の方法は第1のシグネチャ
(S)を決定するために入力定数に適用される。入力
定数は、図1において円x,yおよびzで表示する関数
ネットワークへの入力である。第2の方法は、後述する
ように関数入力のシグネチャ並びにその他の関連データ
に対して作用する、第2のシグネチャ(S)を決定す
るために関数結果に適用される。
【0020】シグネチャ発生器は、入力定数、種々の関
数通路に沿って導出された関数結果および、同じ関数通
路に沿って導出されたが、異なる入力パラメータを備え
た関数結果がそれぞれ独特のシグネチャを発生するよう
に構成されている。
【0021】これらの用語の意図する意味の一例とし
て、図1においてeと指示された関数結果はE(B
(x,y))として計算される。即ち関数結果eは、関
数Eを、入力定数xおよびyに対して作用する関数Bの
第1の結果b0に適用することによって得られる。関数
Bは2個の入力b0およびb1を有し、b0は関数Bによ
って計算された第1の結果を示し、b1は関数Bによっ
て計算された第2の結果を示す。
【0022】前述のように、本発明はいずれか1個の特
定のシグネチャ関数あるいはシグネチャ決定アルゴリズ
ムを特定するのではなくて、入力データに対して独特の
シグネチャを割り当て、その後これらのシグネチャが組
合わされて関数結果に対するシグネチャを導出するもの
である。
【0023】入力定数のシグネチャ決定 入力定数は数個の属性を有することを特徴とする。これ
らの属性は、例えば文字、整数、単精度浮動小数点、倍
精度浮動小数点のようなデータタイプと、例えば実数、
複素数、四元数等の定数がそこから引き出されるカテゴ
リあるいは数学的分野と、定数のランクあるいは次元
と、もし定数が多次元、例えば、ベクトル、マトリック
ス、およびテンソルであれば多次元における定数のサイ
ズを含む。定数の実際の値とは独立した定数の属性の他
に、入力定数はまた、値を表示するためにデータ処理シ
ステム10が用いるビットあるいはバイトとして定義し
うるその値を特徴とする。
【0024】以下は入力定数とその各々に関連した属性
の数例を示す。
【0025】 定数1:「これはストリング定数である」 属性 :データのタイプ:文字 カテゴリ :実数 ランク :0 次元 : 定数2:〔(0.1,1.0)(0.2,2.0)(0.3,3.0)〕 属性 :データのタイプ:単精度浮動小数点 カテゴリ :複素数 ランク :1 次元 :3
【数1】 このような属性を与えられると、特定の定数のシグネチ
ャは以下の関数として定義しうる。
【0026】 S(タイプ、カテゴリ、ランク、次元、データ)、 但し、タイプ、カテゴリ、およびランクは前述のように
定義されており、次元は各次元におけるサイズの可変長
リストであり、データは定数を表示するために使用され
る実際のデータである。
【0027】これらのエレメントあるいはその中間の表
示あるいはその符号を組み入れたいずれかの発生器を入
力定数シグネチャ発生器として採用しうる。このよう
に、これらのアイテムの各々の英数字形態の単純な文字
ストリング連鎖が、シグネチャ発生器として作用しう
る。この方法は小さい定数に対しては効果的であるが、
大きい定数、例えば各次元の大きいサイズを備えた多次
元テンソルに対してサイズが有効に制限されていないシ
グネチャを作る傾向がある。
【0028】本発明の方法は、ある定数の全ての属性を
単一の固定サイズの数となるように組合わせる定数シグ
ネチャ発生関数を採用している。
【0029】現在好適な入力定数シグネチャ発生器は、
定数の値と、それに関連した属性とのCRC多項式を計
算する。このように、入力定数の特徴と、その値を表わ
すデータとは、併合され効果的に独特の、固定サイズの
シグネチャとされる。このように、 S=CRC(タイプ、カテゴリ、ランク、次元、デー
タ)で、 n入力を備えたCRC関数は以下の回帰関係により定義
される。
【0030】 CRC(i)=crc(i,−1),あるいは CRC(i,i,・・・,i) =crc(i,CRCn−1(i,i,・・・in−1)) 関数「crc」は、−1に初期化された先のCRC多項
式とデータアイテムとのCRC多項式を計算する。−1
への初期化は、データの2の補数表示を採用し、そのた
め初期化されたアイテムが全て1で表示されることが好
ましいという点で都合がよい。タイプとカテゴリの属性
の場合、この情報の符号化が実行されることが好まし
い。この符号化は、文字ストリングあるいは独特の数字
割当てを用いることにより達成される。ランク属性の場
合、実際の数値が符号化される。同様に、次元は各次元
に関連した数のサイズとして符号化される。最後に、デ
ータのCRCの検出はCRC多項式関数をデータのバイ
ナリ表示に適用することにより達成される。
【0031】関数結果のシグネチャ検出 本発明の一局面によれば、関数の出力に関連するシグネ
チャは、(a)関数の入力と、(b)関数自体と、
(c)関数の出力の同一性、即ち図1の関数Bのよう
に、もし関数が多数の出力を発生するとすればその出力
との組合わせである。この定義から、関数のシグネチャ
はこれら要素の全てを組込み、いずれか他の要素を組入
れる必要がないことが判る。このように、n入力i
,・・・,iを有する関数に対しては、関数の出
力シグネチャは(n+2)の入力を要し、以下の通り定
義される。
【0032】 S(名前、アウト、i,i,・・・,i) ここで「名前」とは関数の名称あるいは、むしろ前述の
ように文字ストリング入力定数としての名前を処理する
ことにより発生する名前のシグネチャであり、「アウ
ト」はシグネチャに割り当てられる関数の出力のインデ
ックスである。本明細書において用いているインデック
ス0は第1の出力と考えられ、インデックス1は第2の
出力と考えられる等々である。
【0033】これら要素の全てを組入れることの可能な
いずれかのシグネチャ発生器を関数シグネチャ発生器と
して使用しうる。先に述べた入力定数シグネチャ発生器
の場合に関しては、これらのアイテムの各々の英数字形
態のプロセッサ12による単純なストリング連鎖がシグ
ネチャ発生器として作用しうる。しかしながら、関数シ
グネチャ発生器のこの形態は、例えば関数Gのように、
ネットワークにおける特に下方の関数に対して、関数シ
グネチャのサイズを爆発的に成長させる。その結果、関
数シグネチャ発生器の好適実施例は、関数の属性のCR
C多項式を決定するためにCRC発生器14を採用して
いる。このように、特定の関数の名前、出力識別子、お
よび入力が併合されて、効果的に独特の固定サイズのシ
グネチャとされる。このように、 S(名前、アウト、i,i,・・・,i) =CRCn+2(名前、アウト、i,i,・・・,i) となる。
【0034】関数に入力すべき実際のデータは、発生す
べき関数の出力のシグネチャに対して存在する必要のな
いことを注目すべきである。即ち、必要なことは、関数
入力のシグネチャが関数のシグネチャが発生するときに
存在することである。
【0035】定常シグネチャ発生器と関数の好適実施例
を以上記述したので、発生したシグネチャを用いる現在
の好適な方法をここで記述する。
【0036】辞書制御装置18と辞書20とは、協働し
てシグネチャとそれらの関連のデータエレメントとを挿
入し、削除し、計数し、探索する。辞書20は、本デー
タ処理システム16のメモリ内に記憶されたデータ構造
として実行されることが好ましい。辞書制御装置18は
データプロセッサからの入力に応答して動作する。
【0037】辞書挿入 図3から明らかに判るように、辞書20への挿入は「キ
ー」をデータあるいは値のエレメントと関連づける。前
述の方法の中の一方法により決められるシグネチャがキ
ーとして採用される。データエレメントは、例えば、整
数、文字あるいは文字のストリングでよい。この場合、
キーと、その関連の定数とは、双方共辞書20内に記憶
される。さらに複雑な、例えばキーが浮動小数点定数あ
るいは階層的結合データ構造と関連している場合に対し
て、データエレメントは、DES16内の位置に対する
ポインタとして機能する整数である。いずれかの場合、
望ましいキーについてのその後の識別により関連データ
あるいはデータ構造へのアクセスが提供される。
【0038】辞書削除 削除により辞書20から、特定のシグネチャあるいはキ
ーと関連したデータアイテムを除去し、任意にシステム
の削除機能を呼び出してメモリを解放する。
【0039】辞書の探索 探索はキーとしてのシグネチャと共に作用し、(a)先
の挿入によりそのキーと関連していたデータを戻すか、
あるいは(b)入力シグネチャに対応するキーが何ら見
つからなかったとの指示を戻す。探索により入力シグネ
チャを辞書20内に記憶されていたキーと比較して正確
なマッチングを探し出す。もしマッチングするキーが見
つかるとすれば、関連のデータエレメントがアクセスさ
れる。もしデータエレメントがポインタであるとすれ
ば、DES 16が記憶された情報を取得すべくアクセ
スされる。
【0040】辞書のパージング 辞書20はまた、パージング動作を支援するために、現
在記憶されている各エレメントを計数する方法を有して
いる。フリースペースを提供し、またはある基準と見合
うエントリを除去し、あるいはこれら両方を行うために
パージングを完了しうる。パージング動作は、各シグネ
チャと関連するデータを計算するコスト、エレメントを
アクセスした最後の時間およびその他のパラメータを考
慮しうる。この目的に対して、辞書20に入力された各
アイテムと追加の情報が関連し、該追加の情報がその後
修正され、辞書20の使用中に更新される。
【0041】辞書の削除と辞書のパージングとの局面は
メモリの再利用である。メモリ再利用はシグネチャと関
連した追加の情報を解釈することにより達成されること
が好ましい。このことは、記憶されたデータ構造が単純
な直線アレイあるい定数でないときは特に有用である。
この目的に対して、各キーに追加の情報が関連してい
る。この追加情報の一要素はシグネチャと関連したデー
タエレメントが最後にアクセスされたときを示すタイム
スタンプ(TS)である。また、さらに別の情報も提供
しうる。例えば、計算時間で表現されている「コスト」
(C)は各キーと関連しうる。別の例として、アクセス
計数(AC)も提供しうる。
【0042】この情報に基き、メモリ再利用のLRU
(Least Recently Used)法を辞書
制御装置18あるいはプロセッサ12によって実行し、
いずれの辞書20の入口を除去すべきか決めることがで
きる。LRU技術は、ある所定の間隔内でアクセスされ
なかったエントリを辞書20から除去するために、タイ
ムスタンプ情報のみを考慮しうる。他の情報を採用する
ことにより、LRU技術はまたコスト情報も考慮しう
る。例えば、計算面で高価なエントリを、より最近アク
セスされたが、計算面でより安価なエントリを犠牲にし
て保持することができる。さらにアクセス計数情報を採
用して、より最近にアクセスされたがアクセス頻度のよ
り少ないエントリを犠牲にして頻繁にアクセスされるエ
ントリを保持することができる。
【0043】前述のように、辞書20の好適実施例は、
各キーに関連したデータエレメントの他に、前述の追加
の追加の情報のアイテム(TS,C,AC)を保持する
ハッシュテーブルである。
【0044】本発明の教示を数種の要項で採用しうる。
例えば、図4のフローチャートを参照すれば、本発明の
最初の適用は、関数を実行する前に出力の各々のシグネ
チャが計算され(ブロックA)、辞書20が探索され各
シグネチャと関連したデータエレメントを検索する(ブ
ロックB)実行時間環境である。もしデータエレメント
が全て辞書20に存在すると判断されれば(ブロック
C)、関数は実行する必要はなく、検査されたデータア
イテムは単に関数の呼出し元へ戻される(ブロック
D)。ブロックCにおいて1個以上のデータエレメント
が辞書20において存在しないと判断されれば、関数は
実行され、計算されたデータアイテムは関数の呼出し元
へ戻される(ブロックE)。データアイテムはまた、そ
れぞれのキーと共に辞書20あるいはDES 16へ挿
入される(ブロックE)。
【0045】図1のDAGを評価する上での本発明の使
用の一例を示す図5のフローチャートを参照する。最初
にいずれの関数を実行する必要があるか決めるためにD
AGの評価を実行するとき、ブロックAにおいてまず、
DAGにおけるデータノートの全てのシグネチャ(例え
ば、図1のx,y,z,a,b0,b1,d,e,fおよ
びg)が計算される。x,yおよびzは定数入力である
ので、前述のようにそれらのシグネチャ、〔x〜〕,
〔y〜〕および〔z〜〕を決めるためにSが適用され
る。なお、記号の上に〜を記した記号を〔記号〜〕と記
す。これらの値が与えられる、関数出力のシグネチャは
に従って計算される。即ち、ノードaのシグネチャ
〔a〜〕=S(a,0,x),ノードb0のシグネチ
ャ〔b〜〕=S(B,0,x,y)およびノードb1
のシグネチャ〔b〜〕=S(B,1,x,y)がそれ
ぞれ計算される。次いで下方のノードdおよびeのシグ
ネチャが計算され、次いでノードfとgのシグネチャが
計算される。シグネチャが計算される際、後で実際のデ
ータを充たすことができる間接(indirectio
n)のレベルである「プレースホルダー(placeh
older)」データ構造が、関連のシグネチャの各々
と共に辞書20あるいはDES 16に挿入される。
【0046】シグネチャが計算された後、ブロックBに
おいてDAGのボトムアップ・トラバーサル(trav
ersal)が実行される。このことは、各関数ノード
において入力のシグネチャと関連したデータアイテムに
ついて必然的に辞書の探索を伴う。もしこれらデータア
イテムの全てが見い出され、かつもし全てが定数か、あ
るいは先に計算された結果のいずれかであるとすれば、
関数はその実行を予定される(ブロックC)。さもなけ
れば、本方法はブロックDおよびBにおいて再帰的にさ
らにDAGのノードを検査して、必要な定数あるいは関
数Gのような下方のノードが必要とする結果を決定す
る。
【0047】図5のブロックBは所与のレベルで全ての
ノードの幅先き(breadth−first)探索が
実行されたことを表示する意図のものでない。逆に、本
方法は特定のノードに対して適用される。
【0048】図3に関連して、以下は図1に示す例示D
AGに対して本発明を使用した一例を示す。
【0049】 x=1.0=(単精度,実数,0) y=〔1,2〕=(整数,実数,1,2) z=(1,2)=(整数,複素数,0)とする。
【0050】数字割当てを採用した符号化技法を用いて
以下を表わすと、 整数=2、 単精度=3 実数=1、 複素数=2 以下のシグネチャが得られる。
【0051】
【数2】 上記のことから以下の関数シグネチャが引き出される。
【0052】
【数3】 前述の関数シグネチャは関数A,B,D,E,Fおよび
Gを計算することなく決められることが注目される。
【0053】また、図3は定数と関数シグネチャとが特
定の順序で辞書20内に記憶されたものとして示してい
るが、エントリはそれぞれの16進のシグネチャ値によ
って典型的に分類し、記憶しうることも注目される。前
掲の例に対して、結果的な順序は〔a〜〕,〔e〜〕,
〔b1〜〕,〔b0〜〕,〔f〜〕,〔x〜〕,〔y
〜〕,〔d〜〕および〔z〜〕である。また、辞書20
をアクセスする場合、全てのエントリに対して安全なシ
グネチャ比較は必要でない。例えば、探索シグネチャの
最下位のニブルを採用して探索効率を高めることができ
る。aおよびyに対して記憶したシグネチャが同一の最
下位ニブル(9)を有している図示例に対して、対応す
る辞書エントリは〔a〜〕および〔y〜〕の双方に対す
るエントリへのポインタを有することができる。これら
2個のエントリをさらに差別するために、完全なシグネ
チャ(32ビット)比較を採用しうる。32ビットのシ
グネチャを用いれば、衝突発生の確率は小さくなる。し
かしながら、衝突の確率を極めて小さい数まで減少させ
るように64ビットのシグネチャあるいはいずれかの数
のビットを採用することは本発明の範囲内に入る。
【0054】また、本発明の教示は以下の最適化に対し
て修正することができる。実行すべき関数の実行グラフ
においてポストドミネータ(post−dominat
or)を決め、かつこれらのポストドミナント(pos
t−dominant)関数の結果のみを記憶すること
により、キャッシュ(辞書20)における要素数を最小
にしうる。例えば、図1において、もし関数Gを再計算
しなければばならないとすれば、関数Eも再計算する必
要があるという点において中間結果eは記憶されない。
しかしながら、関数Fを再計算しうるとしても定数zの
変化により再計算することができ、一方中間結果dは変
らないままであるという点において中間結果dは記憶さ
れる。
【0055】もし、DAGの特定の通路が常に変動して
いることが判るとすれば別の最適化法を採用すればよ
い。この状態は、もし入力、例えばカウンタの出力が単
調に変化しているとすれば発生しうる。この場合、影響
を受けた通路に沿って発生した要素がキャッシュ性とし
てマークされ、辞書20に記憶された要素数をさらに減
少させる。
【0056】また、本発明を特定のグラフ、即ち図1の
DAGについて説明してきたが、本発明の教示は入力に
対して作用するいずれのセットの関数呼出しについても
適用可能なことを認識すべきである。
【0057】
【発明の効果】本発明は、以上説明したように構成され
ているので、データ処理において関数ネットワークの実
行中データ入力と中間値とを効率的に管理することがで
きる。
【図面の簡単な説明】
【図1】関数ネットワークの例である非循環式有向グラ
フ(DAG)を示す図。
【図2】本発明により構成し、かつ動作するデータ処理
システムのブロック図。
【図3】シグネチャと、図1のDAGの辞書およびノー
ド内に記憶したデータエレメントとの間の関係を詳しく
示す図。
【図4】関数の実行中の辞書の使用を示すフローチャー
ト。
【図5】図1のDAGを評価するための辞書の使用を示
すフローチャート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレン・グレゴリー・ギリー アメリカ合衆国27514、ノース・カロラ イナ州 チャペル・ヒル、リージェン ト・プレイス 104ビー (72)発明者 ケヴィン・パトリック・マコウリフィー アメリカ合衆国10566、ニューヨーク州 ピークスキル、ローム・コート 7番 地 (56)参考文献 ”GRAPHS AND AUTOM ATA IN THE THEORY OF SIGNATURE ANALY SIS”,JOURNAL OF IN F ORMATION PROCESS ING AND CYBERNETIC S,VOL.26,NO.1,1990,P 101−117 ”A COMPACT HASH F UNCTION FOR PATH I N PERT NETWORKS”,O PERATION RESEARCH LETTERS,VOL.3,NO. 3,1984,P137−140 (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 JICSTファイル(JOIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】一組の関数を繰り返して呼び出し、1個以
    上の定数を含むデータを処理する型式のデジタルデータ
    処理システムに使用する方法において、 属性を決定するために定数を検査し、 該属性を前記定数の値と組合わせ、 定数シグネチャを取得するために前記組合せを符号化
    し、 前記定数シグネチャを前記定数の値と共に記憶し、 関数を実行する前に、 前記関数の出力の属性を決定するために実行される前記
    関数を検査し、 実行される前記関数の名前及び実行される前記関数への
    入力のシグネチャと、 前記関数の出力の属性を組み合わせ、 関数シグネチャを得るための前記の組み合わせを符号化
    し、 前記関数シグネチャに等しい記憶された関数シグネチャ
    が存在するかどうかを判断し、 存在するときは、前記記憶された関数シグネチャに関連
    する値を検索するために記憶手段にアクセスし、 存在しないときは、前記関数を実行し、前記関数の実行
    によって返される前記値を前記関数のシグネチャととも
    に記憶するステップを実行する方法。
  2. 【請求項2】一組の関数を繰り返して呼び出し、1個以
    上の定数を含むデータを処理する型式のデジタルデータ
    処理システムに使用する装置において、 そのそれぞれがネットワーク関数を表す複数の関数ノー
    ドを有する関数ネットワークを検査する手段であって、
    少なくとも1の前記関数ノードは入力データを受信する
    ための入力を有し、少なくとも1の前記関数ノードは前
    記関連するネットワーク関数の実行の中間結果を他の関
    数ノードの入力へ出力するための出力ノードを有し、前
    記検査手段はネットワークの属性を決定するための1以
    上のネットワーク定数を検査する手段を有し、該定数検
    査手段は第1の組み合わせを得るためにネットワーク定
    数の値と前記属性を組み合わせる手段を有し、前記検査
    手段はさらに各ネットワーク関数の出力の属性を決定す
    るための1以上のネットワーク関数を検査するための手
    段を含み、該関数検査手段は第2の組み合わせを得るた
    めにネットワーク関数の名前及び前記ネットワーク関数
    への前記入力のシグネチャと前記ネットワーク関数の出
    力の属性を組み合わせる手段を有し、 定数シグネチャ及び関数シグネチャを得るために前記第
    1の組み合わせ及び前記第2の組み合わせをそれぞれ符
    号化する手段と、 前記ネットワーク定数の値及び前記ネットワーク関数の
    出力と前記定数シグネチャ及び前記関数シグネチャとを
    それぞれ関連させて記憶する手段と、 実行のために呼び出されたネットワーク関数に応答し
    て、対応する前記ネットワーク定数の記憶された値、ま
    たは対応する前記ネットワーク関数の記憶された出力得
    るために、定数シグネチャまたは関数シグネチャととも
    に前記記憶手段をアクセスする手段とを有する装置。
JP4115920A 1991-06-26 1992-05-08 デジタルデータ処理システムに使用する方法及び装置 Expired - Lifetime JP2769065B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/721,807 US5347652A (en) 1991-06-26 1991-06-26 Method and apparatus for saving and retrieving functional results
US721807 1991-06-26

Publications (2)

Publication Number Publication Date
JPH05189490A JPH05189490A (ja) 1993-07-30
JP2769065B2 true JP2769065B2 (ja) 1998-06-25

Family

ID=24899384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4115920A Expired - Lifetime JP2769065B2 (ja) 1991-06-26 1992-05-08 デジタルデータ処理システムに使用する方法及び装置

Country Status (3)

Country Link
US (1) US5347652A (ja)
EP (1) EP0520232A3 (ja)
JP (1) JP2769065B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100326655B1 (ko) * 1993-08-03 2002-06-29 후루타 다케시 카바레이필름또는fpc제작용베이스필름에사용되는폴리이미드적층체및그적층체의제조방법
US5790416A (en) * 1995-09-18 1998-08-04 Motorola, Inc. Updating hierarchical DAG representations through a bottom up method
US6885994B1 (en) * 1995-12-26 2005-04-26 Catalina Marketing International, Inc. System and method for providing shopping aids and incentives to customers through a computer network
US5765165A (en) * 1996-02-29 1998-06-09 Sun Microsystems, Inc. Fast method of determining duplicates on a linked list
US5898836A (en) 1997-01-14 1999-04-27 Netmind Services, Inc. Change-detection tool indicating degree and location of change of internet documents by comparison of cyclic-redundancy-check(CRC) signatures
WO1998035306A1 (en) * 1997-02-11 1998-08-13 Connected Corporation File comparison for data backup and file synchronization
US7389305B1 (en) * 1999-06-01 2008-06-17 Fair Isaac Corporation System and method for managing a database
US6311311B1 (en) 1999-08-19 2001-10-30 International Business Machines Corporation Multiple input shift register (MISR) signatures used on architected registers to detect interim functional errors on instruction stream test
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
WO2002084527A1 (en) * 2001-04-12 2002-10-24 Fifth Web Limited System and method for facilitating information transformations
US20050166047A1 (en) * 2004-01-23 2005-07-28 Tollett Wayne J. Intra-encapsulation intelligent searching of an object
US7558935B1 (en) * 2004-05-04 2009-07-07 Sun Microsystems, Inc. Method and system for optimizing memory allocation
US7539661B2 (en) * 2005-06-02 2009-05-26 Delphi Technologies, Inc. Table look-up method with adaptive hashing
US10452716B2 (en) * 2008-06-07 2019-10-22 International Business Machines Corporation Optimizing complex path endpoint resolution
EP2366156B1 (en) * 2008-12-16 2013-03-20 Telefonaktiebolaget LM Ericsson (publ) String matching method and apparatus
US8280869B1 (en) * 2009-07-10 2012-10-02 Teradata Us, Inc. Sharing intermediate results
CA3009817A1 (en) * 2015-12-29 2017-07-06 Tao Tao Systems and methods for caching task execution
JP7225554B2 (ja) 2018-04-02 2023-02-21 富士通株式会社 情報処理装置、情報処理システムおよび情報処理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4281391A (en) * 1979-01-15 1981-07-28 Leland Stanford Junior University Number theoretic processor
US4588985A (en) * 1983-12-30 1986-05-13 International Business Machines Corporation Polynomial hashing
US4611280A (en) * 1984-03-12 1986-09-09 At&T Bell Laboratories Sorting method
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4974191A (en) * 1987-07-31 1990-11-27 Syntellect Software Inc. Adaptive natural language computer interface system
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"A COMPACT HASH FUNCTION FOR PATH IN PERT NETWORKS",OPERATION RESEARCH LETTERS,VOL.3,NO.3,1984,P137−140
"GRAPHS AND AUTOMATA IN THE THEORY OF SIGNATURE ANALYSIS",JOURNAL OF INF ORMATION PROCESSING AND CYBERNETICS,VOL.26,NO.1,1990,P101−117

Also Published As

Publication number Publication date
EP0520232A2 (en) 1992-12-30
JPH05189490A (ja) 1993-07-30
EP0520232A3 (en) 1993-12-15
US5347652A (en) 1994-09-13

Similar Documents

Publication Publication Date Title
JP2769065B2 (ja) デジタルデータ処理システムに使用する方法及び装置
US5897637A (en) System and method for rapidly identifying the existence and location of an item in a file
US6862602B2 (en) System and method for rapidly identifying the existence and location of an item in a file
US6247014B1 (en) Method and apparatus for performing hash lookups using valid bit tables with pointers
US7680791B2 (en) Method for sorting data using common prefix bytes
KR100414236B1 (ko) 데이터의 검색을 위한 서치 시스템 및 방법
EP0772836B1 (en) A method for storing and retrieving data and a memory arrangement
US7702637B2 (en) Systems and methods for fragment-based serialization
US20030120647A1 (en) Method and apparatus for indexing document content and content comparison with World Wide Web search service
US6748401B2 (en) Method and system for dynamically managing hash pool data structures
US20040133581A1 (en) Database management system, data structure generating method for database management system, and storage medium therefor
WO1998039715A9 (en) System and method for rapidly identifying the existence and location of an item in a file
US5355478A (en) Method for avoiding cache misses during external tournament tree replacement sorting procedures
US6438556B1 (en) Method and system for compressing data which allows access to data without full uncompression
JP2002229825A (ja) コンピュータメモリ
JP3003915B2 (ja) 単語辞書検索装置
US6625592B1 (en) System and method for hash scanning of shared memory interfaces
CN110109867A (zh) 改进在线模式检测的方法、装置和计算机程序产品
US6233574B1 (en) Method and apparatus for performing radix lookups using transition tables with pointers
US6886161B1 (en) Method and data structure for compressing file-reference information
US7505997B1 (en) Methods and apparatus for identifying cached objects with random numbers
US20060101045A1 (en) Methods and apparatus for interval query indexing
US6469643B1 (en) Information processing system
US6185570B1 (en) Method and apparatus for performing radix lookups using transition bits and fields in transition tables
JP3131142B2 (ja) 地図データリンケージシステム