JPS63276129A - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPS63276129A
JPS63276129A JP11104587A JP11104587A JPS63276129A JP S63276129 A JPS63276129 A JP S63276129A JP 11104587 A JP11104587 A JP 11104587A JP 11104587 A JP11104587 A JP 11104587A JP S63276129 A JPS63276129 A JP S63276129A
Authority
JP
Japan
Prior art keywords
data
list
shift
operations
processing
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.)
Pending
Application number
JP11104587A
Other languages
English (en)
Inventor
Ryoichi Wada
良一 和田
Yutaka Aoki
豊 青木
Masato Honma
本間 真人
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP11104587A priority Critical patent/JPS63276129A/ja
Publication of JPS63276129A publication Critical patent/JPS63276129A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 産業上の利用分野 本発明は主に人工知能分野へ使用することを目的とした
データ処理装置に関するものである。
従来の技術 近年、コンピュータ応用の一つとして人工知能分野が盛
んに研究されている。この分野においては構造を持った
データを処理する必要があり、そのため構造データを取
り扱うことのできる言語であるLISPが広く使用され
ている。LISP言語は汎用のコンピュータで実行する
のは非効率であるため様々な工夫を施した専用マシンが
開発されてきた。
これら専用マシンは主に言語的側面からアプローチを行
って改善を行ったものでその改善の内容の代表的なもの
を以下に示す。
(11CAR,CDR等、原始的関数はマイクロプログ
ラムレベルで実行する。
(2)  ジェネリックデータタイプを扱うためTAG
付きデータ形式とする。
(3)  スタック処理を高速にするためハードウェア
コントロールスタックを設ける。
(例えば rLIsPマシンj 情報処理Vo1.23
. 陽8.pp752−772)発明が解決しようとす
る問題点 しかしながら、前記したような言語の実行系に関する改
善はなされてきたものの、計算機内部における構造体デ
ータの表現としては基本的には要素の順序関係と結合の
方法をポインタで表現したもの(以下リストと呼ぶ)を
使用しているため次のような問題があった。
(1)任意の要素へのアクセスがリストたぐりとなり効
率が悪い。
(2)  リストマツチングはリストの分解操作を伴う
ため非効率である。
(3)  ガーベッジコレクションが困難である。
(4)  メモリ参照の局所性が悪く、キャッシュのヒ
ツト率が下がる。また、基本的には共有構造をとるため
以下の問題が生じた。
+5)  RPLACA、RPLACD等、直接リスト
操作を行うと陰に他のデータも変更してしまうといった
思いがけない副作用が生じる。
(6)  並列処理時、変数のロックが困難である。
これらの問題点を解決するためには、基本的にリストデ
ータの表現をかえる必要がある。2進木リストは始点の
ノードから始まって順次左右に分岐して行き葉のノード
でそれぞれの分岐が終了する形をとる0葉のノードには
アトムノードとNILノードの2種類がある0葉のノー
ドでないノードは分岐が続行していることを示すリスト
ノードである。このリストノードは葉のノードの位置を
間接的にあられすためのものである。
ポインタ表現ではこの構造表現をそのままの形で全ての
ノードをアドレスで接続したセルで表現している。
しかしながら、葉のノードの位置を直接的にあられすこ
とができれば、リストノードの情報を持つ必要はない、
したがって、葉の位置情報と葉自身の情報を順次並べた
表で、等価なりストデータを表現することができる。我
々はこの葉のノード位置を表現する方法としてCDR方
向に順次番号を付け、CAR方向に順次項目を割り当て
た一次元ベクトル表現を採用した。したがってリストデ
ータは葉の位置情報を示すベクトルと葉自身の情報を組
としたデータの集合で表現される。
第3図にリストデータの表現例を示す、これは8式で表
記した場合(A (B (C) ) D)となるリスト
データの図式表現第3図(al、および、表形式表現第
3図(blを示したものである0図式表現において丸印
はリストノードを表し、四角で囲ったものは葉のノード
を示している。また各ノードの上に付記した数字列は上
記した方法にしたがって表したノード位置を示すもので
ある。この葉の部分を抜きだして表の形で表現したもの
が表形式表現第3図(blであって、ADDRESS部
にノード位置ベクトルが、VALUE部に葉の要素が入
った表で構成されている。
リストをこのような表形式で表現した場合、前記したポ
インタ表現の多くの欠点は免れることができるが、当然
のことにその演算体系は従来のポインタ表現とは異なる
第4図にLISPの基本リスト繰作関数における裏操作
の一例を示す。
第4図で明かなようにCAR関数はAl1DRESS部
の先頭が1の要素を抜き出し、2番目以下のADDRE
SSを先頭方向にシフトすることにより(これを以下C
ARシフトと呼ぶ)実行することができる。CDR関数
はCAR関敗とは逆に先頭ADDRESSが1の要素を
取り除き、残った要素の先頭ADDRESSから1を減
じることにより(以下これをCDRシフトと呼ぶ)実行
される。
C0N5関数についてはもう少し複雑である。
まずC0N5関数の第−引数について、ADDRESS
部を先頭方向とは逆の方向にシフトし、先頭ADDRE
SSを1とする。これは前記したCARシフトとは逆の
演算であり、以下RCARシフトと呼ぶ、第二引数につ
いては先fiA口0RESSに1を加算する(以下これ
をRCARと同じ理由でRCDRシフトと呼ぶ)0次に
この二つの引数を一つの表としてまとめればC0N5関
数は実行される。
以上述べてきたように、ポインタ表現では極めて容易に
行えるCAR,CDR,C0N5といったLISPの基
本関数が表形式では全ての要素に対しての演算を必要と
する欠点がある。
本発明は上記問題点に鑑みてなされたもので、簡単な構
成で効率良く表形式のリストデータを処理することので
きるデータ処理装置を提供するものである。
問題点を解決するための手段 上記問題点を解決するために本発明のデータ処理装置は
、リストデータを表形式のデータとして記憶するメモリ
装置と、複数個のレジスタと演算手段、および、バッフ
ァメモリ手段からなる処理ユニットを複数個備えた演算
装置と、各処理ユニットに対しメモリ装置に蓄えられた
表形式データの要素を順次割り当てる転送装置とを具備
し、リストデータを並列に処理できるようにしたもので
ある。
作用 本発明は上記した構成によって、表形式のりストデータ
を処理する複数個の処理ユニットに対しメモリ装置から
表形式のりストデータの要素を順次−個づつ割り当てる
ように転送することにより、処理ユニットにおいて各種
リスト操作を並列に行うことができるようにしたもので
ある。
実施例 以下本発明の一実施例のデータ処理装置について、図面
を参照しながら説明する。第1図は本発明の実施例にお
けるデータ処理装置の構成を示すものである。
第1図において1はメモリ装置、2は転送装置、3は処
理ユニット、4は条件レジスタ、5は第二のレジスタ装
置、6は第二の演算装置、7は第二のメモリ手段、8は
複数の処理ユニ7)からなる演算装置である。第2図は
上記実施例における処理ユニットの内部構成を示すもの
である。
第2図において11はレジスタ装置、I2はシフト装置
、13は比較装置、14はゲート装置、15はバッファ
メモリ装置である。
以上のように構成されたデータ処理装置につき、以下第
1図および第2図をもちいてその動作を説明する。
メモリWllに蓄えられたリストデータは転送装置2に
より処理ユニット3のバッフ1メモリ装置1f15に一
旦転送されそこで記憶される。この場合、表形式データ
の各要素はそれぞれ別の処理ユニットへ転送される。リ
ストデータが実際に処理される場合はそれぞれの処理ユ
ニット内のバッファメモリ装置15からレジスタ装置1
1ヘシフト装置12を通して並列に転送される。レジス
タ装置11は複数個の記憶単位であるレジスタから構成
されるが、選択信号R3によりそのうちの一つが選択さ
れる。前記したリストの各種の演算はレジスタ内のデー
タを対象に行われる。CAR操作の場合選択信号R3に
より選択されたレジスタの内容は比較装置13を通って
シフト装置12へ入力されそこで前記したCARシフト
を受は再びレジスタに入力される。CDR操作の場合も
同じでシフト操作がCDRシフトとなる。前記したよう
にこのシフト操作は表形式データの全ての要素に対して
行う必要があるが、各処理ユニットで並列にこの操作を
行うため1サイクルで実行することができる。
この場合、演算するためには全てのリストデータが処理
ユニットに存在していることが前提となる。メモリ装置
1からその度に転送していたのではこの転送時間がボト
ルネックとなってしまう。
そこで本発明のデータ処理装置では処理するリストデー
タを一時的に蓄えるためのバッファメモリ装置15を有
している。バッファメモリ装置15は通常のコンピュー
タのキャンシェメモリのように動作し、処理するデータ
は予め先行制御によりメモリ装置1から転送される。し
たがって通常は処理するデータはこのバッファメモリメ
モリ中に存在するため転送負担は生じない。リストデー
タをメモリ中にストアする場合も同様である。
前記CAR,CDR等の操作を行う場合、バッファメモ
リ装置15からリストデータをレジスタに入力する時に
同時に行うこともできる。すなわち、処理ユニット3の
レジスタ装置11ヘリストデータがバッファメモリ装置
15がら入力される際、シフト装置12を通過するため
この時前記シフト操作を行えば良い、この場合、入力時
にシフト処理が行えるため処理を高速に行うことができ
る。
シフト装置12の内部構成の一実施例を第5図に示す、
第5図において51は入力選択回路、52はバレルシフ
ト回路、53は加算回路である。
第5図において人力選択回路51は、バッファメモリ装
置15からの転送データと処理ユニット3の中のレジス
タからのフィードバックされたデータとを選択信号SE
Lにより切り替えて出力するもので、バッファメモリ装
置15からの転送時はMlをレジスタ内演算の場合はA
Iの信号を出力する。入力選択回路51から出力された
データはADDRESS部とVALLIE部に分離され
、ADDRESS部データADはバレルシフト回路52
0入力となり、一方VALtJB部データVDはそのま
まシフト装置12の出力RDの一部となる。バレルシフ
ト回路はADDRESS部のデータを左右方向ヘシフト
する回路で、シフト選択信号SHCにより制御される。
CARシフト時には前記したように先頭方向へのシフト
であるが、この場合最後部のアドレスには0が入る。
RC,ARシフト時は反対に先頭部に0が入る。
CDRシフト、RCDRシフトはいわゆるシフト操作で
はなく、ADDRESS部の先頭値が1だけ増減する操
作であるから、バレルシフト回路でのシフトは受けず、
その出力に接続された加算回路53でこの処理が行われ
る。
前記表形式リストの各要素のVALtJE部にはアトム
データへのリファレンスが格納されているが、リスト処
理においてはそれらの実際の値である数値や文字に対す
る演算が必要である。その演算は処理ユニットでは行わ
ず、第二の演算装ff16で行われる。まずリスト要素
のリファレンス値は処理ユニット3からデータバスDB
へ出力され実際の値を格納した第二のメモリ装置7をア
クセスしてその値が第二のレジスタ装置5に格納される
その後は第二のレジスタ装置5と第二の演算装置6との
間で演算処理が行われ、その結果は再び第二のメモリ′
vtffi7に格納される。
このように、構造データの処理と値の処理を分けること
により処理系の構成を単純にすることができる。
リストデータの演算として重要なものに比較演算がある
。これは2つのリストデータの構造およびアトム要素が
等しいかどうかを調べるもので、ポインタ表現では両者
のリストを同じ手順で要素まで分解し、それらの要素が
等しいかどうかを検定することによりリスト構造データ
の同一性を調べている0表形式では、順次一方の要素を
他方と比較して行き、すべての要素につきそのへ〇DR
ESS部およびVALUE部が等しければ、同一である
ことがわかる。表形式表現において特に強力なのはAD
DRESSの一部にワイルドナンバーを許すことにより
部分リストのマツチングが容易に行えることである。A
SSOC関数の例を第6図に示す、ここで*はワイルド
ナンバーを示し、どのような数ともマツチングすること
を示す。この方法を使用すると、ある構造データから特
定の構造を持つ部分を抜き出すといった従来のポインタ
方式では難しかった処理を比較的容易に行うことができ
る。この処理は比較装置13で行われる。
第7図は比較装置13の一部でADDRESS部の比較
回路の構成例を示すものである。第7図においで61は
ワイルドナンバー検出回路、62は一敗検出回路、63
はオアゲート回路、64はアンドゲート回路である。第
7図において、第1図の条件レジスタ4に蓄えられた比
較データCDは一敗検出回路62でアドレスの各項目毎
にレジスタ装N11の出力データREDと比較され、そ
の結果がオアゲート回路63に出力される。ワイルドナ
ンバー検出回路61は比較データが全ての数とマツチン
グする予め定めた特定の数であるワイルドナンバーを検
出するものであって、比較データがワイルドナンバーの
ときオアゲート回路63へ一致信号を出力する。したが
ってオアゲート回路63はCDとREDが一致している
場合か、CDがワイルドナンバーであるとき一致信号を
アンドゲート回路64へ出力する°、アンドゲート回路
64は各項目の一致信号がすべて存在する時アドレスが
一致していることを示す信号としてFLAGを出力する
。この比較操作も前記したようにリストデータの各要素
につき複数の処理ユニットにより同時に行うため高速に
行うことが可能である。
発明の効果 以上のように本発明はリストデータを表形式のデータと
して記憶するメモリ装置と複数個のレジスタと演算手段
およびバッファメモリ手段からなる処理ユニットを複数
個備えた演算装置と、各処理ユニットに対しメモリ装置
に蓄えられた表形式データの要素を順次割り当てて転送
する転送装置を具備し、表形式のリストデータを処理す
る複数個の処理ユニットに対しメモリ装置から表形式の
リストデータの要素を順次−個づつ割り当てるように転
送することにより、処理ユニットにおいて表形式データ
のADDRESS部の各種シフ目饅作を同時に行うこと
ができるようにしたものであり、リストデータを高速に
処理できるようにしたものである。
【図面の簡単な説明】
第1図は本発明の一実施例におけるデータ処理装置の構
成図、第2図は第1図の処理ユニットの内部構成図、第
3図はリストデータの表形式表現の一例図、第4図はL
ISPの基本リスト操作関数における裏操作の一例図、
第5図はシフト装置の内部構成図、第6図はワイルドナ
ンバーをASSOC関数の実行に使用した場合の説明圀
、第7図は第2図における比較装置13の一部でADD
RESS部の比較回路の構成を示すブロック図である。 l・・・・・・メモリ装置、2・・・・・・転送装置、
3・旧・・処理ユニット、8・・・・・・演算装置、1
1・旧・・レジスタ、12・・・・・・シフト装置、1
3・・・・・・比較装置、15・・・・・・バッファメ
モリ装置。 代理人の氏名 弁理士 中尾敏男 はか1名第2図 N1工 Mβ r)F5 第3図 第4図 \−m 部     呈 L7′)       均       犠+S   
                    Qへ   
                    4リ   
                  εfr

Claims (1)

    【特許請求の範囲】
  1. リストデータを表形式のデータとして記憶するメモリ装
    置と、複数個のレジスタと演算手段、および、バッファ
    メモリ手段からなる処理ユニットを複数個備えた演算装
    置と、各処理ユニットに対しメモリ装置に蓄えられた表
    形式データの要素を順次割り当てる転送装置とを具備し
    、リストデータを並列に処理できるようにしたことを特
    徴とするデータ処理装置。
JP11104587A 1987-05-07 1987-05-07 デ−タ処理装置 Pending JPS63276129A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11104587A JPS63276129A (ja) 1987-05-07 1987-05-07 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11104587A JPS63276129A (ja) 1987-05-07 1987-05-07 デ−タ処理装置

Publications (1)

Publication Number Publication Date
JPS63276129A true JPS63276129A (ja) 1988-11-14

Family

ID=14551014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11104587A Pending JPS63276129A (ja) 1987-05-07 1987-05-07 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPS63276129A (ja)

Similar Documents

Publication Publication Date Title
US5530883A (en) Database engine
CN103988212B (zh) 用于在状态机中路由的方法及系统
CN107608750A (zh) 状态机晶格中的计数器操作
JPS63276129A (ja) デ−タ処理装置
JPS63118944A (ja) デ−タ処理装置
JP2606305B2 (ja) データ処理装置
JPS63118942A (ja) デ−タ処理装置
JPS63118943A (ja) デ−タ処理装置
JP2705166B2 (ja) データ処理装置
JPS63118940A (ja) デ−タ処理装置
JPH01161440A (ja) データ処理装置
JPS63292331A (ja) デ−タ処理装置
JPS63291127A (ja) デ−タ処理装置
JPS63223826A (ja) デ−タ処理装置
JPS63219037A (ja) デ−タ処理装置
JPS63255741A (ja) デ−タ処理装置
JPH01145727A (ja) データ処理装置
JPS63292330A (ja) デ−タ処理装置
JPS6361334A (ja) デ−タ処理装置
JPS63118941A (ja) デ−タ処理装置
JPH01287745A (ja) データ処理装置
JPS63292333A (ja) デ−タ処理装置
JPS63261430A (ja) 情報処理方式および装置
JPS6361335A (ja) デ−タ処理装置
JPS6365523A (ja) デ−タ処理装置