JP2568657B2 - データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 - Google Patents

データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法

Info

Publication number
JP2568657B2
JP2568657B2 JP63301858A JP30185888A JP2568657B2 JP 2568657 B2 JP2568657 B2 JP 2568657B2 JP 63301858 A JP63301858 A JP 63301858A JP 30185888 A JP30185888 A JP 30185888A JP 2568657 B2 JP2568657 B2 JP 2568657B2
Authority
JP
Japan
Prior art keywords
hash collision
node
hash
rank
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 - Fee Related
Application number
JP63301858A
Other languages
English (en)
Other versions
JPH02146688A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP63301858A priority Critical patent/JP2568657B2/ja
Publication of JPH02146688A publication Critical patent/JPH02146688A/ja
Application granted granted Critical
Publication of JP2568657B2 publication Critical patent/JP2568657B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 (イ)産業上の利用分野 この発明はデータ処理装置などに適用されたデータ駆
動型マイクロプロセッサにおけるハッシュ衝突回避方法
に関する。ここにデータ駆動とは各演算の開始を入力デ
ータの存在によって制御する命令実行方式のことを示
す。
(ロ)従来の技術 従来データ駆動型マイクロプロセッサ(以下データフ
ローマシンと呼称する)にて処理される記憶媒体の主な
データ編成としてはハッシング、リストおよび索引編成
の3種類があり、これらのデータ編成の内のどの編成を
選択するかは、使用目的等によって決められている。デ
ータ編成におけるハッシングは、データ自体に付けられ
た値(これをキーと呼ぶ)から何らかの演算によって、
そのデータの格納場所を決める方法である。キーから格
納場所を算出する変換式をハッシング関数と呼び、種々
の計算方法が考察されている。そして算出された格納場
所は、具体的な記憶装置の番地として扱うものや、記憶
装置上で論理的に定めた相対番地として扱うものがあ
る。ハッシングの最大の問題点は、ハッシング関数の選
び方によって、複数のデータが同一の場所に変換される
という点である。これをハッシュ衝突といい、これに対
する対策として、どの格納場所も複数のデータが格納で
きる大きさにしておくことや、特別のあふれ領域を用意
しておくことによるハッシュ衝突回避方法が考えられて
いる。すなわちトークン(データフローグラフの各アー
ク上を流れる各々のデータ)の待ち合わせ機構としてプ
ログラム記憶部と同じ大きさの領域を使うことが一般的
であった。さらに、ハッシュ衝突対策としての領域を小
さくする方法としていくつかの提案があり、その方法の
1つとして実行順序の解析を行う方法が考えられてい
る。第5図は従来のハッシュ衝突回避方法を示すフロー
チャートである。
(ハ)発明が解決しようとする課題 しかし従来のハッシュ衝突回避方法(実行順序の解析
を行う方法)では、ハッシュ衝突の発生確率を大幅に下
げることができるため、トークンの待ち合わせ機構を小
さくすることができるという効果は有るものの、ハッシ
ュ衝突が無くなった訳ではなく、ハッシュ衝突発生時に
はやはり処理が遅くなるという問題があった。
この発明は以上の事情を考慮してなされたもので、デ
ータフローマシンに処理を行わせるためのプログラムか
ら、オブジェクト(実行形式の機械語)を生成する際
に、ハッシュ衝突を回避することのできるデータ駆動型
マイクロプロセッサにおけるハッシュ衝突回避方法を提
供する。
(ニ)課題を解決するための手段 この発明は、ハッシュ関数によりデータ編成される記
憶媒体を備えたデータ駆動型マイクロプロセッサにおい
て、データ駆動型マイクロプロセッサが記憶媒体の待ち
合わせ部に収納される各ノードを介してデータ編成する
際に、各ノードの実行ランクに基づいてハッシュ衝突解
析表を作成し、ハッシュ衝突解析表からハッシュ衝突す
るノードの組み合わせを抽出し、ハッシュ衝突が発生す
るノードのうち、どちらか一方のノードアドレスを同一
ランクで1人力数のノードアドレスと入れ換えることに
より待ち合わせ部におけるハッシュ衝突を回避するとと
もにこのノードアドレスの入れ換えにより新たなハッシ
ュ衝突が発生するノードで、且つ同一ランクで入れ替え
る対象のノードアドレスがないノードに対しNOPを挿入
してハッシュ衝突を回避するデータ駆動型マイクロプロ
セッサにおけるハッシュ衝突回避方法である。
この発明における同一ランクのノードとは、同時に実
行可能(アクセス可能)なレベルにあるノードの集まり
を意味する。また、NOPとはノー・オペレーション命令
を意味する。
(ホ)作用 この発明によれば、ハッシュ衝突が発生するノードの
組み合わせを抽出して、そのノードのうち、どちらか一
方のノードアドレスを同一ランクで1人力数のノードア
ドレスと入れ換えることにより待ち合わせ部におけるハ
ッシュ衝突を回避する。このノードアドレスの入れ換え
により新たなハッシュ衝突が発生するノードがある場合
には、入れ換える対象のノードアドレスがないノードに
NOPを挿入してハッシュ衝突を回避する。
従って、ハッシュ衝突の発生頻度を大幅に減少しデー
タ編集時の処理スピードを速めることができる。
(ヘ)実施例 以下図に示す実施例に基づいてこの発明を詳述する。
なお、これによってこの発明は限定されるものではな
い。
第1図は下記に示される式(1),(2)を表現する
プログラムのフローグラフであり、入力値がx、定数a1
〜a4で出力値がy、zである。また、ランク1〜ランク
7は、このフローグラフの実行ランクを示し、番号1〜
16はノードアドレスを示す。
y=x*{x*[(x*al)+a2]+a3}+a4…………
(1) z=x*{x*[(x*al)−a2]−a3}−a4…………
(2) 第2図はこの発明のハッシュ回避方式を実行するため
に使用されるデータフローマシンの一実施例の構成を示
すブロック図である。同図において20はプログラム記憶
部、21は待ち合わせ部、22は演算処理部、23はキュー・
バッファ部、24は合流部、25は分岐部である。待ち合わ
せ部21には8ノードが収納できるよう構成されている。
ただし収納できるノード数はハードウエアによって決ま
るものであり8ノードに限定されない。この実施例にお
いては1〜16のノードの内、2入力命令はノードアドレ
スの下位3ビットにより待ち合わせ場所を決めるものと
する。したがって2、10、4、12等が同じ場所で待ち合
わせを行う。
このような構成のデータ駆動型マイクロプロセッサに
おいて、処理を行わせるためのプログラム(高級言語で
も機械語でもよい)から、オブジェクトを生成する際
に、以下の方式によりハッシュ衝突を回避する。
第3図はこの実施例の動作を説明するフローチャート
である。まず、実行にループがあるかどうか判断し(ス
テップ30)、NOであれば (1)実行ランク順に付されたノードアドレスと待ち合
わせ機構内のハッシュテーブルとから後述する表1に示
すハッシュ衝突解析テーブルを作成し(ステップ31)、
後述する表2に示す実行順序解析表を作成し(ステップ
32)、ハッシュ衝突ノードの組み合わせを表1のハッシ
ュ衝突解析表より抽出する(ステップ33)。
表1において、待ち合わせ部にある間のランク数が共
通するノードがハッシュ衝突しているとして、ここで
は、1〜16のノードのうち、2と10のノードがランク数
1〜1、5と13のノードがランク数1〜2、8と16のノ
ードがランク数1〜3において共通となり、ハッシュ衝
突している。
ハッシュ衝突のノードの組み合わせが抽出された場
合、表2の実行順序解析表において、ハッシュ衝突が発
生するノードに対し、どちらか適当な一方のノードアド
レスを、同一ランクで1入力命令数のノードアドレス
(1、3、6、9)と入れ換える(ステップ34)。例え
ば、表2において、ノード2とノード10のハッシュ衝突
では、実行ランク1において、ノード2とノード1のノ
ードアドレスを入れ換える。ノードアドレスを入れ換え
ても、表1において、ノード1とノード9には共通のラ
ンク数がないので新たなハッシュ衝突は発生しない。ま
た、ノード5とノード13のハッシュ衝突では、実行ラン
ク2において、ノード3とノード5のノードアドレスを
入れ換える。ノードアドレスを入れ換えても、表1にお
いて、ノード3とノード11には共通のランク数がないの
で新たなハッシュ衝突は発生しない。しかし、ノード8
とノード16のハッシュ衝突では、実行ランク3におい
て、ノード8とノード6のノードアドレスを入れ換える
と、表1において、ノード6とノード14のランク数1〜
3が共通になり、このノードアドレスの入れ替えにより
新たなハッシュ衝突が発生する(ステップ35)。一方、
ノード16については、表2に示すように、入れ換える対
象のノードがないため、第4図に示すように、ノード16
の対象ランクにNOP(ノー・オペレーション命令)を挿
入し(ステップ36)、すなわち、ノード16のランク数1
〜7をノード8のランク数1〜3と共通にならないよう
NOPを挿入することでランク数4〜7にしてハッシュ衝
突を回避する。従って、第1図に示すフローグラフのノ
ード8とノード16で発生するハッシュ衝突を、第4図の
フローグラフに示すようにノード16にNOPを挿入したフ
ローグラフに変更する。次いでハッシュ衝突ノードが終
了したかどうかを判断し(ステップ37)、YESであれば
処理を終了する。NOであればステップ34に戻る。ただし
この方式は、実行がループになっている場合には正確に
解析できないという欠点がある。すなわちステップ30に
おいてYESであれば、次ぎに示す(2)の方式を併用す
る。また、交換によりハッシュ衝突が回避できない場合
や、ステップ34において同一実行ランク内に1入力命令
が無い場合には、同一ランク内に1入力命令を入れる
か、またはハッシュ衝突対象の下位のノードの一方にNO
Pを挿入することにより待ち合わせ場所の専有状態を変
え、ハッシュ衝突を回避する(ステップ36)。
(2)ステップ30において実行がループになっている場
合、生成されたオブジェクトを、ハッシュ衝突解析のた
めにシュミレーション実行、またはエミュレーション実
行を行い、得られたハッシュ衝突解析情報を基に、ハッ
シュ衝突解析表を作成する(ステップ38)。次いで前述
した(1)の処理と同様、ステップ32に移り、ハッシュ
衝突が発生するノードに対し、どちらか適当な一方のノ
ードアドレスを同一ランクの1入力命令と入れ換えて再
度実行し、ハッシュ衝突が無くなるかまたは最小になる
ようにすることによりハッシュ衝突を回避する。
第4図は第1図に示すフローグラフで発生するハッシ
ュ衝突を回避するために部分的に変更されたフローグラ
フである。
(ト)発明の効果 この発明によれば、ハッシュ衝突が発生しているノー
ドと、同一実行ランク内から得られる待ち合わせの必要
のない命令とを入れ換えることができるので、ハッシュ
衝突が発生しなくなるか、またはハッシュ衝突の発生頻
度を大幅に減少させることができる。これにより実行効
率が飛躍的に向上し処理スピードを速めることができ
る。
【図面の簡単な説明】
第1図はこの発明の実施例を説明するために使用するプ
ログラムのフローグラフ、第2図は実施例に使用するデ
ータ駆動型マイクロプロセッサの要部の構成を示すブロ
ック図、第3図は実施例のハッシュ回避方式を説明する
フローチャート、第4図は第1図のフローグラフで発生
するハッシュ衝突を回避するために部分的に変更された
フローグラフ、第5図は従来例のハッシュ衝突回避方式
を示すフローチャートである。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ハッシュ関数によりデータ編成される記憶
    媒体を備えたデータ駆動型マイクロプロセッサにおい
    て、 データ駆動型マイクロプロセッサが記憶媒体の待ち合わ
    せ部に収納される各ノードを介してデータ編成する際
    に、各ノードの実行ランクに基づいてハッシュ衝突解析
    表を作成し、ハッシュ衝突解析表からハッシュ衝突する
    ノードの組み合わせを抽出し、ハッシュ衝突が発生する
    ノードのうち、どちらか一方のノードアドレスを同一ラ
    ンクで1入力数のノードアドレスと入れ換えることによ
    り待ち合わせ部におけるハッシュ衝突を回避するととも
    にこのノードアドレスの入れ換えにより新たなハッシュ
    衝突が発生するノードで、且つ同一ランクで入れ換える
    対象のノードアドレスがないノードに対しNOPを挿入し
    てハッシュ衝突を回避するデータ駆動型マイクロプロセ
    ッサにおけるハッシュ衝突回避方法。
JP63301858A 1988-11-28 1988-11-28 データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 Expired - Fee Related JP2568657B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63301858A JP2568657B2 (ja) 1988-11-28 1988-11-28 データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63301858A JP2568657B2 (ja) 1988-11-28 1988-11-28 データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法

Publications (2)

Publication Number Publication Date
JPH02146688A JPH02146688A (ja) 1990-06-05
JP2568657B2 true JP2568657B2 (ja) 1997-01-08

Family

ID=17902007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63301858A Expired - Fee Related JP2568657B2 (ja) 1988-11-28 1988-11-28 データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法

Country Status (1)

Country Link
JP (1) JP2568657B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3337706B2 (ja) * 1992-02-26 2002-10-21 シャープ株式会社 データフロープログラムの実行制御方法
US9563658B2 (en) * 2012-08-20 2017-02-07 Oracle International Corporation Hardware implementation of the aggregation/group by operation: hash-table method

Also Published As

Publication number Publication date
JPH02146688A (ja) 1990-06-05

Similar Documents

Publication Publication Date Title
EP0149213B1 (en) Vector processor
JPH02217926A (ja) コード生成方法
US7979853B2 (en) Compiler device, method, program and recording medium
JP2568657B2 (ja) データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法
EP0427391B1 (en) Operation assignment method and apparatus therefor
US20130173245A1 (en) Determining large-scale finite state machines using constraint relaxation
JP3430635B2 (ja) 定数参照最適化処理装置
JP3004102B2 (ja) データベース演算処理装置
JPH0823861B2 (ja) 分散処理方法
JPH0887417A (ja) コンパイラ装置
JP2765911B2 (ja) データ駆動型制御方法およびコンパイル装置
JP2591212B2 (ja) 高速割込み処理装置
US5854919A (en) Processor and its operation processing method for processing operation having bit width exceeding data width of bit storage unit
JP3263123B2 (ja) データ処理システムにおけるソート処理方式
JP2845650B2 (ja) 論理式評価演算器
JP3156343B2 (ja) データ依存関係情報処理方法
JP3323147B2 (ja) コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体
JPS5846439A (ja) 計算機のプログラム編集方法
JPH01213719A (ja) パイプライン処理用データ組替装置
JPH0784773A (ja) 集計プログラム自動生成装置
JPH0581339A (ja) データ処理装置
JPH0668722B2 (ja) 命令処理順序制御装置
JPH05165686A (ja) データ格納制御方式
JPH04172527A (ja) リンク処理装置
JPH05334359A (ja) 統合データ抽出方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071003

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees