JPS62204341A - Data processor - Google Patents

Data processor

Info

Publication number
JPS62204341A
JPS62204341A JP61046316A JP4631686A JPS62204341A JP S62204341 A JPS62204341 A JP S62204341A JP 61046316 A JP61046316 A JP 61046316A JP 4631686 A JP4631686 A JP 4631686A JP S62204341 A JPS62204341 A JP S62204341A
Authority
JP
Japan
Prior art keywords
data
register
instruction
storage unit
internal
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
JP61046316A
Other languages
Japanese (ja)
Inventor
Yoshinari Nakasaki
中崎 良成
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP61046316A priority Critical patent/JPS62204341A/en
Publication of JPS62204341A publication Critical patent/JPS62204341A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE:To increase a processing speed of data having tags by storing these data in a register not in a RAM in case the number of arguments is small for reduction of the reference time and then storing said data in a main memory in case a number of arguments larger than the number of words that can be stored in the RAM are designated. CONSTITUTION:A data processor contains the data registers 12-15 that needs a large quantity of hardware and can have the quick reference, an internal memory part 16 that can store a comparatively large amount of data with tags with a comparatively small quantity of hardware and has the reference speed lower than that of those registers 12-15, and a main memory (corresponding to a memory part 10) that can store the largest amount of data and has the lowest reference speed as the internal registers that store the data having tags. The part 16 is used when the number of arguments described in a program is increased. Thus it is possible to operate a large amount of data with tags at a high speed.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、属性を表示するタグ領域と値そのものを表示
する領域で構成されるタグ付データを処理対象にするプ
ログラムを効率よく実行できるデータ処理装置に関し、
特にタグ形式で表現されるデータの参照・解釈を高性能
に実行するデータ処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention is a data processing system that can efficiently execute a program that processes tagged data, which is composed of a tag area for displaying attributes and an area for displaying the value itself. Regarding processing equipment,
In particular, the present invention relates to a data processing device that performs high-performance reference and interpretation of data expressed in tag format.

(従来の技術) タグ付データを導入することによって処理効率が向上す
る一例としてプロログ言語の処理がある。本発明の技術
環境を記述するためにプロログ言語を処理することを例
にとる。
(Prior Art) An example of improving processing efficiency by introducing tagged data is prolog language processing. Let us take as an example the processing of prolog language to describe the technical environment of the present invention.

プロログにおいては表現すべき事象を述語名とその引数
の結合から成る「述語]によって表現し、更に述語間の
関係を記述する。例えば「太部は数字を好む]という事
象は下記のように記述できる。
In prolog, the event to be expressed is expressed by a "predicate" consisting of a combination of a predicate name and its argument, and the relationship between the predicates is also described.For example, the event "fat people prefer numbers" is written as follows. can.

好む(太部2本文字)←数字(本文字)本例で「好む」
と「数字Jを述語名、「太部」「本文字」を引数と称し
、牢印はその引数が変数であることを表わす。即ち、上
例は「太部」は1数字」という述語名で表記された述語
の引数として書かれている事物を「好む」ことを表現し
ている。従って「数字(6月という文が他に書かれてい
れば、三段論法の推論によって、「太部は6を好む」と
いう結論が得られる。
I like (2 bold characters) ← Number (real letters) In this example, "I like"
``The number J is the predicate name, the ``bold part'' and ``main character'' are the arguments, and the prison mark indicates that the argument is a variable. That is, the above example expresses ``liking'' the thing written as an argument of the predicate written with the predicate name ``fat part'' is 1 digit.'' Therefore, if the sentence ``Number (June)'' is written elsewhere, the conclusion that ``Fatbe prefers 6'' can be reached by reasoning by syllogism.

プロログプログラムの実行は述語間の一致を比較する処
理が基本になっている。例えば、前記の「・・・←数字
(本文字)。」と「数字(6)。]とを比較して両述語
間の一致を調べる処理が基本である。ここで前者を呼び
出し側、後者を呼ばれ側とする。
The execution of a prolog program is based on the process of comparing matches between predicates. For example, the basic process is to compare the above-mentioned "...←number (main character)." and "number (6)." to check for a match between the two predicates.Here, the former is the caller, the latter is the called party.

この比較処理においては述語の対応する引数間の比較処
理が処理効率の点において重要であり、高速な比較処理
が求められる。前例では呼び出し側の[本文字1と呼ば
れ側のr6Jの一致比較処理に対応する。この比較処理
方式の一つとしてはり、H。
In this comparison processing, comparison processing between corresponding arguments of predicates is important in terms of processing efficiency, and high-speed comparison processing is required. In the example above, this corresponds to the matching comparison process between [real character 1 on the calling side and r6J on the called side. One of the comparison processing methods is H.

D、ウオーレン著[アン・アブストラクト・プロローグ
・インストラクション・セット」テクニカルノート30
9、アーティフィシャル・インテリジェンス・センター
、ニスアールアイ・インターナショナル、 1983 
(D。
D. Warren [An Abstract Prologue Instruction Set] Technical Note 30
9, Artificial Intelligence Center, Nisrl.I. International, 1983
(D.

SRI International、 1983)に
記されているレジスタを用いた引数の一致比較処理方式
がある。この方式では[本文字]に関する情報を一度内
部レジスタに格納しておき、後にこの内部レジスタと[
6]との比較処理を行うものである。この引数比較処理
では変数「本文字」に「6」が結合(bind)される
。ここでプロログプログラムの書き方次第で「本文字」
の代わりにrlJ 、 r2J 、・・・「6」などの
数あるいはアトム、リストなどの他のデータタイプが記
述されていてもよい。このような変数、数、アトム、リ
ストなどのデータタイプを識別するためにタグ領域をデ
ータに付加する。このタグ情報を調べることによって必
要な処理を効率よく進めることができる。例えば上例で
タグ情報によって変数であることが検出されると[6]
との結合処理を進める。また、「本文字」の代わりに数
があると「61と同一の数を示すタグであることを検出
して、さらに一致処理を進めその数の値の比較を行い、
一致しているか否かを検査する。rlJ、「2」とは不
一値であることを検出し、r6Jとは一致していること
を検出する。また、「本文字」の代わりにアトム、リス
トなどの他のデータタイプが「6」と−数比較処理を行
うときには、それぞれのタグが異ることにより不一致で
あることを検出する。以上の引数に関する一致比較処理
の例を第2図に示す。
There is an argument match comparison processing method using registers described in SRI International, 1983). In this method, information about [main character] is stored once in an internal register, and later this internal register and [
6]. In this argument comparison process, "6" is bound to the variable "main character". Here, depending on how you write the prolog program, the "main character"
Instead, numbers such as rlJ, r2J, . . . "6" or other data types such as atoms and lists may be written. Add tag areas to data to identify data types such as variables, numbers, atoms, lists, etc. By examining this tag information, necessary processing can be carried out efficiently. For example, in the above example, if a variable is detected by the tag information [6]
Proceed with the merging process. Also, if there is a number instead of the "real character", it will detect that it is a tag indicating the same number as 61, and then proceed with the matching process and compare the values of the number.
Check whether they match. It is detected that rlJ and "2" are different values, and it is detected that r6J is a match. Further, when performing a minus number comparison process with another data type such as an atom or a list as "6" instead of "real character", a mismatch is detected because the respective tags are different. FIG. 2 shows an example of the matching comparison process regarding the above arguments.

(発明が解決しようとする問題点) 前記の例では述語内の引数の筒数が1であったがフロロ
クフロクラムテハ10fM1100rM、1ooo簿ナ
トかなり多くの筒数まで許される。例えば[数字(1,
2゜3.4.・・、n月のようにJffの引数を記述す
ることができる。このとき、前記文献の方式では、前記
述語が呼び出し側であるときには、n箇の内部レジスタ
にそれぞれ1,2,3.4・・・、nの数を格納して次
の呼ばれ側の引数に関する処理に移る必要がある。ここ
で、1000程度の大きなn箇の引数の筒数を許す装置
を実現する場合には、内部レジスタをアドレス可能なラ
ンダムアクセスメモリ(RAM)で実現できる。
(Problems to be Solved by the Invention) In the above example, the number of arguments in the predicate was 1, but a considerably larger number of arguments such as 10fM1100rM and 1ooo is allowed. For example, [number (1,
2゜3.4. ..., Jff arguments can be written like n months. At this time, in the method of the above-mentioned document, when the previous descriptor is the caller, the numbers 1, 2, 3.4..., n are stored in n internal registers, respectively, and the number of n is stored in the next caller. We need to move on to processing regarding arguments. Here, in order to realize a device that allows a large number of arguments of about 1000, the internal register can be realized by addressable random access memory (RAM).

さらに多くの引数の筒数を処理可能にするためには、プ
ロセッサ内により多(のRAMを実装することが考えら
れるが、この場合には、プロセッサに占めるRAMのハ
ードウェア量が多くなり、コストが高くなる。
In order to be able to process an even larger number of arguments, it is conceivable to implement more RAM in the processor, but in this case, the amount of RAM hardware in the processor will increase and the cost will increase. becomes higher.

本発明の目的はこのような従来の問題点を除去せしめて
、引数の筒数が少数の場合には、RAMではなくレジス
タに格納し、参照時間を短くすることによって、多くの
場合に引数の筒数が少数であるプロログなどのタグ付デ
ータを利用する処理装置の処理性能を高速にすることが
できる装置を提供するものである。
The purpose of the present invention is to eliminate such conventional problems, and when the number of arguments is small, it is stored in a register instead of RAM, thereby shortening the reference time. The present invention provides a device that can increase the processing performance of a processing device that uses tagged data such as prologs that have a small number of cylinders.

さらにRAMに格納できる語数以上の引数が指定された
場合にはタグ付きデータを主記憶に格納できる装置を提
供するものである。
Furthermore, the present invention provides a device that can store tagged data in main memory when more arguments than the number of words that can be stored in RAM are specified.

(問題点を解決するための手段) 前述の問題点を解決するために本発明が提供するデータ
処理装置はデータ及び命令列を格納する記憶部と、前記
記憶部から読み出した命令を格納する命令レジスタと、
前記命令レジスタに格納された命令を解釈する命令デコ
ーダと、処理対象データを格納する1つ以上めデータレ
ジスタと、前記データレジスタよりも参照時間が遅く多
数の語で構成される内部記憶部と、前記命令レジスタに
格納された命令のオペランドシラブルを解読して前記デ
ータレジスタと前記内部記憶部と前記記憶部とから読み
出されるデータのいずれかの出力を選択する選択器と、
前記命令を処理するときにオペランドシラブルで指示さ
れたデータが前記内部記憶部あるいは前記記憶部に格納
されていることを検出してデータを参照するまでに必要
な遅延時間を制御する遅延制御手段と、前記命令によっ
てデータを前記記憶部から読み出して前記選択器への入
力にするメモリ制御手段と、前記選択器から出力される
タグ付データを操作するタグ付データ操作部と、前記命
令で規定される処理を制御する制御部を備えることを特
徴とする。
(Means for Solving the Problems) In order to solve the above-mentioned problems, the data processing device provided by the present invention includes a storage section that stores data and an instruction sequence, and an instruction that stores instructions read from the storage section. register and
an instruction decoder that interprets the instructions stored in the instruction register; one or more data registers that store data to be processed; and an internal storage section that has a slower reference time than the data registers and is composed of a large number of words; a selector that decodes an operand syllable of an instruction stored in the instruction register and selects an output of data read from the data register, the internal storage section, and the storage section;
a delay control means for detecting that data specified by an operand syllable is stored in the internal storage unit or the storage unit and controlling a delay time required until the data is referenced when processing the instruction; , a memory control means that reads data from the storage section and inputs it to the selector according to the instruction; a tagged data operation section that operates the tagged data output from the selector; The present invention is characterized in that it includes a control section that controls the processing performed.

(作用) 本発明は上述の手段により、従来技術の問題点を解決し
た。
(Function) The present invention solves the problems of the prior art through the above-mentioned means.

関数あるいは述語などが持つ引数の笥故に関するプログ
ラム特性として、引数の筒数が少ないものの出現頻度は
高く引数の筒数が多いものは順次出現頻度が低下する。
As a program characteristic regarding the faulty arguments of a function or predicate, the frequency of occurrence is high even though the number of arguments is small, and the frequency of occurrence decreases as the number of arguments is large.

この特性を利用して、引数の筒数が少ない場合にはプロ
セッサの引数用の内部レジスタを用psて高速処理可能
にし、引数の箇RAMの容量以上になると、高速RAM
よりも参照に要する時間は長くなるが、大量の引数を格
納することができる主記憶に格納する。このようにプロ
グラム特性を利用して、引数の内部表現形式であるタグ
付きデータの記憶場所を3つの階層にすることにより、
タグ付きデータの実効的なタグ解析時間を内部レジスタ
から読み出した場合の解析時間に近い程度に高速化し、
かつ主記憶を利用することにより多(のタグ付きデータ
を格納できるようにする。
Taking advantage of this characteristic, when the number of arguments is small, the processor uses internal registers for arguments to enable high-speed processing, and when the number of arguments exceeds the RAM capacity, high-speed RAM
Although it takes longer to reference, it is stored in main memory, which can store a large number of arguments. In this way, by utilizing the program characteristics and arranging the storage locations of tagged data, which is the internal representation format of arguments, into three layers,
The effective tag analysis time for tagged data is increased to a level close to the analysis time when reading from internal registers.
Moreover, by using the main memory, it is possible to store a large amount of tagged data.

(実施例) 以上本発明の一実施例を図面を用いて詳細に説明する。(Example) An embodiment of the present invention will be described in detail using the drawings.

第1図は本発明の装置の一実施例を示すブロック図であ
る。図中10はタグ付きデータおよび命令列を格納する
記憶部、8は記憶部10を参照するためにアドレスを保
持するアドレスレジスタ、9は記憶部10から読み出し
たデータを格納して作業用のレジスタとして利用するデ
ータレジスタM、11は記憶部10から読み出した命令
を格納する命令レジスタ、12.13,14,15は記
憶部10から読み出した引数に関するタグ付きデータを
格納すると共に高速な参照を実現するデータレジスタA
、B、C,D、 16はアドレス可′能な高速ランダム
アクセスメモリで構成することにより、多くのタグ付き
データを格納可能にする内部記憶部であり、1024語
の容量を持つ。、この内部記憶部16は命令レジスタ1
1に格納された命令のオペランドシラブルであって内部
レジスタを指示するフィールドをアドレス情報として入
力することによって一語のタグ付きデータを出力する。
FIG. 1 is a block diagram showing an embodiment of the apparatus of the present invention. In the figure, 10 is a storage unit that stores tagged data and instruction sequences, 8 is an address register that holds an address for referencing the storage unit 10, and 9 is a working register that stores data read from the storage unit 10. A data register M, 11 used as an instruction register, stores instructions read from the storage unit 10, and 12.13, 14, and 15 store tagged data regarding arguments read from the storage unit 10, and realize high-speed reference. data register A
, B, C, D, 16 is an internal storage section that can store a large amount of tagged data by being configured with addressable high-speed random access memory, and has a capacity of 1024 words. , this internal storage section 16 is the instruction register 1
One word of tagged data is output by inputting as address information a field that is an operand syllable of an instruction stored in No. 1 and indicating an internal register.

また、データレジスタA12.B13.C14,D15
に比べ読み出し時間が遅い。17は前記のフィールド情
報を解析し、データレジスタA12.B13.C14,
D15および内部記憶部16の出力の一つを選択する選
択器、21はマイクロプログラムによる制御でデータ処
理装置での処理の流れを制御する制御部、19は命令レ
ジスタ11に格納されている前記フィールドを解析し、
内部記憶部16あるいは記憶部10からのデータ参照で
ある場合には参照時期を遅らせる信号を制御部21に送
り、データレジスタA12.B13.C14,D15へ
の参照である場合には高速に参照できることを制御部2
1に指示する遅延指示器、20は選択器17から出力さ
れるタグ部の情報を解析し、制御部21に処理の流れを
指示するタグ分岐指示器、22は命令レジスタ11に格
納された命令のコードを解析し、その結果を制御部21
に送る命令デコーダ、23は選択器17から出力される
タグ付きデータにおけるデータの値と命令レジスタ11
の中に格納された命令の中で即値として命令中に表現さ
れたデータの値との比較を行う比較器であり、遅延指示
器19は遅延制御手段を構成する一例として示す。タグ
分岐指示器20および比較結果を制御部21に送る。比
較器23はタグ付データ操作部30の一例として、アド
レスレジスタおよびデータレジスタ9はメモリ制御手段
31を構成する一例として示す。
Also, data register A12. B13. C14, D15
Read time is slower than . 17 analyzes the field information and stores the data register A12. B13. C14,
D15 and a selector that selects one of the outputs of the internal storage unit 16; 21 a control unit that controls the flow of processing in the data processing device under the control of a microprogram; 19 the field stored in the instruction register 11; Analyze and
If the data is referenced from the internal storage section 16 or the storage section 10, a signal for delaying the reference timing is sent to the control section 21, and the data register A12. B13. If the reference is to C14 or D15, the control unit 2 indicates that it can be referenced at high speed.
20 is a tag branch indicator that analyzes the information in the tag section output from the selector 17 and instructs the control unit 21 on the flow of processing; 22 is an instruction stored in the instruction register 11; The code is analyzed and the result is sent to the control unit 21.
An instruction decoder 23 sends the data value in the tagged data output from the selector 17 to the instruction register 11
The delay indicator 19 is a comparator that compares the value of data expressed in the instruction as an immediate value among the instructions stored in the instruction, and the delay indicator 19 is shown as an example of the delay control means. The tag branch indicator 20 and the comparison result are sent to the control unit 21. The comparator 23 is shown as an example of the tagged data manipulation unit 30, and the address register and data register 9 are shown as an example of the memory control means 31.

次に本発明の一実施例の動作をタグ付きデータの操作命
令の一つを例としてとり゛あげて説明する。タグ付きデ
ータの提作命令の一つとして内部レジスタのi番目のタ
グ付きデータ(Ai)と命令内で表現される整数の即値
(N)との−数比較処理を行う[整数比較命令」の例を
示す。この命令の形式を第3図に示す。この命令は命令
コードフィールドとi番目の内部レジスタ(Aりを示す
内部レジスタフィールドと、整数の即値(N)を示す整
数即値フィールドから成る。内部レジスタフィールドは
16ビツトで構成されているので(2161)番目まで
の内部レジスタを指定することができる。
Next, the operation of one embodiment of the present invention will be described using one of the tagged data manipulation commands as an example. One of the proposed instructions for tagged data is an [integer comparison instruction] that performs a -number comparison process between the i-th tagged data (Ai) in the internal register and the immediate value (N) of the integer expressed within the instruction. Give an example. The format of this instruction is shown in FIG. This instruction consists of an instruction code field, an internal register field indicating the i-th internal register (A), and an integer immediate field indicating the integer immediate value (N).The internal register field consists of 16 bits (2161 ) internal registers can be specified.

この整数比較命令の動作は第2図呼び出し側の引数のタ
グによる分岐以下の動作に対応する。これ□を第1図の
実施例を用いて説明する。この命令は記憶部10から読
み出され、命令レジスタ11に格納される。命令レジス
タ11の命令コードフィールドを命令デコーダ22で検
出し、制御部21において整数比較命令の処理を開始す
る。はじめに、命令レジスタ11の内部レジスタフィー
ルドで示されるAiレジスタを参照する。
The operation of this integer comparison instruction corresponds to the operation following the branch based on the argument tag of the caller in FIG. 2. This □ will be explained using the embodiment shown in FIG. This instruction is read from the storage unit 10 and stored in the instruction register 11. The instruction code field of the instruction register 11 is detected by the instruction decoder 22, and the control unit 21 starts processing the integer comparison instruction. First, the Ai register indicated by the internal register field of the instruction register 11 is referred to.

命令レジスタ11の内部レジスタフィールドを選択器1
7に入力することにより、AiがOから3番目の内部レ
ジスタを示す値であることが検出される場合には、これ
に対応してデータレジスタA12.B13゜C14,D
15の一つを選択器17で選択し、出力する。また、A
iが4以上1023以下の数を示すときには選択器17
では内部記憶部16の出力を選択する。さらにAiが1
024以上の数を示すときにはデータレジスタM9の出
力を選択する。内部記憶部16の読み出しは内部レジス
タフィールドの値をアドレスとして入力することにより
行い、−語のタグ付データが読み出される。
Selector 1 selects the internal register field of instruction register 11.
7, if it is detected that Ai is a value indicating the third internal register from O, the data register A12 . B13゜C14,D
15 is selected by the selector 17 and output. Also, A
When i indicates a number from 4 to 1023, the selector 17
Then, the output of the internal storage section 16 is selected. Furthermore, Ai is 1
When the number is 024 or more, the output of data register M9 is selected. Reading from the internal storage unit 16 is performed by inputting the value of the internal register field as an address, and the tagged data of the - word is read.

器17の出力としてタグ分岐指示器20に送り、タグ分
岐指示器20では分岐方向を検出して制御部21に送り
、制御部21では検出された分岐に従ってマイクロプロ
グラムの分岐を行う。この処理は第2図の呼び出し側の
引数のタグによる分岐処理に示される。ここでAiが[
2]であればデータレジスタC14が選択器17の出力
として選択される。さらにデータレジスタC14の内容
としてタグ部で示されるデータタイプが整数であり、値
が「6」であれば、タグ分岐指示器では第2図において
呼び出し側の引数のタグが数字の方向にマイクロプログ
ラムを分岐するための情報を制御部21に送る。データ
レジスタC14に格納されているデータの内容の例を第
4図に示す。
The tag branch indicator 20 detects the branch direction and sends it to the control section 21, and the control section 21 branches the microprogram according to the detected branch. This process is shown in FIG. 2 as a branch process based on the tag of the argument on the calling side. Here, Ai [
2], the data register C14 is selected as the output of the selector 17. Furthermore, if the data type indicated by the tag part as the contents of data register C14 is an integer and the value is "6", the tag branch indicator will move the tag of the caller's argument in the direction of the number in the microprogram. The information for branching is sent to the control unit 21. FIG. 4 shows an example of the contents of data stored in the data register C14.

次に、内部レジスタフィールドのAiが4以上1023
以下の数である場合を示す。このときには、選択!17
の出力として内部記憶部16の出力を選択する。遅延指
示器19では遅延を指示する信号を出力する。第1図の
制御部21の一部の機能として存在している遅延を制御
するためのハードウェアを第5図に示す。50はマイク
ロプログラム列を格納するマイクロメモリ、51はマイ
クロメモリ50から読み、出したマイクロプログラムを
格納するマイクロブ、f:1グラムレジスタ、52はマ
イクロプログラム実行却に割込みが発生したときに、マ
イクロプロゲラ法レジスタ51の内容を退避するリター
ンレジスタである。割込みに関する処理を終了した後、
再び割込み発生時のマイクロプログラムを実行するため
にリターンレジスタ52の内容をマイクロプログラムレ
ジスタ51に戻す。53はマイクロプログラムの分岐を
制御するマイクロ分岐制御部であり、割込み時、リター
ン時のマイクロプログラムのアドレスを制御する。この
他、遅延指示器19からの信号により命令の内部レジス
タフィールドの値が4以上であり、遅延終了フラグ54
がO”のときに内部記憶部16あるいは記憶部10の中
のタグ付きデータを参照するためにマイクロ分岐制御部
53では割込み処理用のマイクロプログラムへ分岐する
処理を行う。このときに遅延終了フラグ54を1′にセ
ットする。
Next, Ai in the internal register field is 4 or more and 1023
Indicates the following numbers. At this time, choose! 17
The output of the internal storage section 16 is selected as the output. The delay indicator 19 outputs a signal instructing a delay. FIG. 5 shows hardware for controlling delay, which exists as a part of the function of the control unit 21 in FIG. 1. 50 is a micromemory that stores a microprogram sequence; 51 is a microb that stores a microprogram read from the micromemory 50; f: a 1-gram register; 52 is a microprogram that is This is a return register that saves the contents of the galley method register 51. After completing the interrupt-related processing,
The contents of the return register 52 are returned to the microprogram register 51 in order to execute the microprogram at the time of the interrupt again. Reference numeral 53 denotes a microbranch control unit that controls branching of the microprogram, and controls the address of the microprogram at the time of interrupt and return. In addition, the signal from the delay indicator 19 indicates that the value of the internal register field of the instruction is 4 or more, and the delay end flag 54
In order to refer to the tagged data in the internal storage unit 16 or the storage unit 10 when the flag is O”, the micro branch control unit 53 performs a process of branching to a microprogram for interrupt processing.At this time, the delayed end flag is Set 54 to 1'.

内部レジスタフィールドの値が4以上、1023以下で
かつ遅延終了フラグ54が0″のときには内部記憶部1
6に格納されているタグ付きデータを参照する。この内
部記1;ヲ部16のデータを参照するためには1マシン
サイクルの遅延があれば十分であるので、1マシンサイ
クルの割込み処理を実行し、元のマイクロプログラムの
処理を開始する。このた5め11J込み処理としては、
リターンレジスタ52の内容をマイクロプログラムレジ
スタ51に戻す。
When the value of the internal register field is 4 or more and 1023 or less and the delay end flag 54 is 0'', the internal storage unit 1
Refer to the tagged data stored in 6. Since a delay of one machine cycle is sufficient to refer to the data in the internal memory section 16, one machine cycle of interrupt processing is executed and processing of the original microprogram is started. This 5th to 11th processing includes:
The contents of the return register 52 are returned to the microprogram register 51.

内部レジスタフィールドの値が1024以上のときには
記憶部10に格納されているタグ付きデータを参照する
。この記憶部10のデータを参照するためのアドレスは
引数ペースレジスタ56に格納されている記憶部10の
ベースアドレスに内部レジスタフィールドで示される値
を加算器57で加算することにより、対象データのアド
レスを求めアドレスレジスタ8へ格納する。このアドレ
スにより記憶部10から読み出したタグ付きデータをデ
ータレジスタM9に格納する。この割込み処理の最後で
、リターンレジスタ52の内容をマイクロプログラムレ
ジスタ51に戻し、遅延終了フラグ54をTにして元の
マイクロプログラムの処理を開始する。これらの割込み
処理に関係した処理の流れを第6図に示す。
When the value of the internal register field is 1024 or more, the tagged data stored in the storage unit 10 is referred to. The address for referencing the data in the storage unit 10 is determined by adding the value indicated in the internal register field to the base address of the storage unit 10 stored in the argument pace register 56 using an adder 57, thereby obtaining the address of the target data. is calculated and stored in the address register 8. The tagged data read from the storage unit 10 using this address is stored in the data register M9. At the end of this interrupt processing, the contents of the return register 52 are returned to the microprogram register 51, the delay end flag 54 is set to T, and the original microprogram processing is started. FIG. 6 shows the flow of processing related to these interrupt processing.

これらの割込み処理の後タグ分岐処理を行う。After processing these interrupts, tag branch processing is performed.

このときには、分岐処理対象のタグ付きデータは、命令
レジスタ11に格納された命令の内部レジスタフィール
ドの値に従って、選択器17で選択される。つまり、内
部レジスタフィールドの値がθ〜3のときには、データ
レジスタA12.B13.C14゜D15のデータがそ
れぞれ選択され、内部レジスタフィールドの値が4以上
1023以下のときには内部記憶部16の出力が選択さ
れ、内部レジスタフィールドの値が1024以上のとき
には記憶部10がら読み出したデータが格納されている
データレジスタM9のデータが選択される。
At this time, the tagged data to be branched is selected by the selector 17 according to the value of the internal register field of the instruction stored in the instruction register 11. That is, when the value of the internal register field is θ~3, data register A12. B13. The data of C14 and D15 are selected respectively, and when the value of the internal register field is 4 or more and 1023 or less, the output of the internal storage unit 16 is selected, and when the value of the internal register field is 1024 or more, the data read from the storage unit 10 is selected. The stored data in data register M9 is selected.

呼び出し側の引数のタグによる分岐処理を終了した後、
呼ばれ側の引数のタイプを検査する。この整数比較命令
の場合には命令コードによって、既に呼ばれ側の引数の
タイプが数字であることを制御部21で検出している。
After finishing the branching process based on the caller's argument tag,
Check the type of the called argument. In the case of this integer comparison instruction, the control unit 21 has already detected from the instruction code that the type of the argument on the called side is a number.

この結果、データタイプにおいて、呼び出し側の引数と
呼ばれ側の引数とは一致する。次に引数の値を含めた一
致を検査する。即ち呼び出し側の引数として選択器17
から出力されるAi番目のデータの値を比較器23の一
つの入力とし、呼ばれ側の引数として命令レジスタ11
にある整数即位フィールドで示される値を比較器23の
他の入力とする。ここで、選択器17の出力が数字「6
]である第4図の形式であるときに、整数即値フィール
ドの値が数字「6」であれば、比較器23では一致を検
出し、制御部21にこの一致信号を送る。また整数即値
の値が数字r6J以外であれ′■の進め方を決定する。
As a result, the caller's arguments and the called's arguments match in data type. Next, it checks for a match, including the argument values. That is, the selector 17 as an argument on the caller side.
The value of the Ai-th data output from
The value indicated by the integer coronation field in is used as the other input of the comparator 23. Here, the output of the selector 17 is the number "6".
] in the format shown in FIG. Furthermore, even if the value of the integer immediate value is other than the number r6J, the method of advancing '■ is determined.

(発明の効果) 本発明によればデータ処理装置中にタグ付きデータを格
納する内部レジスタとして、ハードウェア量としては大
量に必要であるが、高速に参照可能な少数のデータレジ
スタと比較的少ないハードウェアで比較的多くのタグ付
きデータを格納でき参照速度がデータレジスタより遅い
内部記憶と最も多くのデータを格納でき、参照速度が最
も遅い主記憶(本実施例の記憶部10に対応する)で実
現する。この結果、少数の引数で記述しているものがほ
とんどであるプロログ言語の述語あるいは関数型言語の
関数のタグ付データの操作をデータレジスタを用いて処
理することにより高速にする。さらに、プログラムが記
述されている引数の筒数が増加した場合には内部記憶部
を利用することによってタグ付きデータの操作を比較的
高速に実現する。さらに引数の筒数が増加した場合には
、主記憶を利用することによって大量の引数に対する処
理を可能にする。すなわち、プログラムの特性を考慮し
て、実効的には高速なタグ付デーと 第1図は本発明の
一実施例を示すブロック図、第2図はタグ付きデータを
提作する処理手順の一例を示y処理フロー図、第3図は
タグ操作関係の命令の一例として示す整数比較の命令形
式を示す図、第4図は内部レジスタに格納されるタグ付
データの例を示す図、第5図は遅延制御ハードウェアの
ブロック図、第6図はタグ付きデータが格納されている
記憶部に応じて必要な割込み処理フローを示す図である
(Effects of the Invention) According to the present invention, a large amount of hardware is required as an internal register for storing tagged data in a data processing device, but it is relatively small with a small number of data registers that can be referenced at high speed. An internal memory that can store a relatively large amount of tagged data in hardware and has a reference speed that is slower than the data register, and a main memory that can store the most data and have the slowest reference speed (corresponding to the storage unit 10 of this embodiment). Realize it. As a result, operations on tagged data of predicates in prolog languages or functions in functional languages, which are mostly described with a small number of arguments, can be processed at high speed by using data registers. Furthermore, when the number of arguments in which a program is written increases, tagged data can be manipulated at relatively high speed by using the internal storage section. Furthermore, when the number of arguments increases, it is possible to process a large number of arguments by using the main memory. That is, taking into consideration the characteristics of the program, it is possible to effectively create high-speed tagged data. Figure 1 is a block diagram showing an embodiment of the present invention, and Figure 2 is an example of a processing procedure for creating tagged data. FIG. 3 is a diagram showing an integer comparison instruction format as an example of tag operation related instructions. FIG. 4 is a diagram showing an example of tagged data stored in an internal register. The figure is a block diagram of delay control hardware, and FIG. 6 is a diagram showing a necessary interrupt processing flow depending on the storage section in which tagged data is stored.

図において、10は記憶部、11は命令レジスタ、12
.13,14.15はそれぞれデータレジスタA、B、
C,D、16はアドレス可能な内部記憶部、17はデー
タレジスタおよび内部記憶部の出力の一つを選択する選
択器、19は選択器の出力として内部記憶部が選択され
るときに出力するまでの時間がデータレジスタを選択す
る場合に比べ遅いことを指示する遅延指示器、20は選
択器の出力中のタグ部を解析して処理の流れを変え方向
を指示するためのタグ分岐指示器、21はタグ付きデー
タの操作および本データ処理装置の処理を制御する制御
部、22は命令レジスタ中の命令を解釈する命令デコー
ダ、30はタグ分岐指示器および比較器を一例として示
したタグ付データ操作部、31はアドレスレジスタおよ
びデータレジスタMによる構成を一例として示したメモ
リ制御手段である。
In the figure, 10 is a storage unit, 11 is an instruction register, 12
.. 13, 14.15 are data registers A, B, respectively.
C, D, 16 are addressable internal storage sections, 17 is a selector that selects one of the outputs of the data register and the internal storage section, and 19 is an output of the selector that is output when the internal storage section is selected. 20 is a tag branch indicator that analyzes the tag part being output from the selector to change the flow of processing and instruct the direction. , 21 is a control unit that controls the manipulation of tagged data and the processing of the present data processing device, 22 is an instruction decoder that interprets instructions in the instruction register, and 30 is a tagged unit that includes a tag branch indicator and a comparator as an example. The data manipulation section 31 is a memory control means whose configuration includes an address register and a data register M as an example.

Claims (1)

【特許請求の範囲】[Claims] データの属性を示すタグ領域と値領域とで各データが表
現されるデータ処理装置において、前記データ及び命令
列を格納する記憶部と、前記記憶部から読み出した命令
を格納する命令レジスタと、前記命令レジスタに格納さ
れた命令を解釈する命令デコーダと、処理対象データを
格納する1つ以上のデータレジスタと、前記データレジ
スタよりも参照時間が遅く多数の語で構成される内部記
憶部と、前記命令レジスタに格納された命令のオペラン
ドシラブルを解読して前記データレジスタと前記内部記
憶部と前記記憶部とから読み出されるデータのいずれか
の出力を選択する選択器と、前記命令を処理するときに
オペランドシラブルで指示されたデータが前記内部記憶
部あるいは前記記憶部に格納されていることを検出して
データを参照するまでに必要な遅延時間を制御する遅延
制御手段と、前記命令によってデータを前記記憶部から
読み出して前記選択器への入力にするメモリ制御手段と
、前記選択器から出力されるタグ付データを操作するタ
グ付データ操作部と、前記命令で規定される処理を制御
する制御部を備え、前記遅延制御手段と前記メモリデー
タレジスタによって前記制御部で前記データレジスタお
よび前記内部記憶および前記記憶部の出力を前記タグ付
データ操作部で処理対象にする時期を決定することによ
ってタグ付データの操作を可能にしたことを特徴とする
データ処理装置。
In a data processing device in which each piece of data is expressed by a tag area indicating an attribute of the data and a value area, the storage unit stores the data and the instruction string, the instruction register stores the instruction read from the storage unit, and the an instruction decoder for interpreting instructions stored in the instruction register; one or more data registers for storing data to be processed; a selector that decodes an operand syllable of an instruction stored in an instruction register and selects an output of data read from the data register, the internal storage section, and the storage section; a delay control means for detecting that the data specified by the operand syllable is stored in the internal storage unit or the storage unit and controlling a delay time necessary until the data is referenced; a memory control unit that reads data from a storage unit and inputs it to the selector; a tagged data operation unit that operates the tagged data output from the selector; and a control unit that controls processing specified by the command. The delay control means and the memory data register determine when the control unit makes the output of the data register, the internal storage, and the storage unit a target for processing by the tagged data operation unit. A data processing device characterized by being able to manipulate data.
JP61046316A 1986-03-05 1986-03-05 Data processor Pending JPS62204341A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61046316A JPS62204341A (en) 1986-03-05 1986-03-05 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61046316A JPS62204341A (en) 1986-03-05 1986-03-05 Data processor

Publications (1)

Publication Number Publication Date
JPS62204341A true JPS62204341A (en) 1987-09-09

Family

ID=12743759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61046316A Pending JPS62204341A (en) 1986-03-05 1986-03-05 Data processor

Country Status (1)

Country Link
JP (1) JPS62204341A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748755B2 (en) 2000-03-09 2004-06-15 Fujitsu Limited Refrigeration system utilizing incomplete evaporation of refrigerant in evaporator

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5528115A (en) * 1978-08-15 1980-02-28 Fujitsu Ltd Control system for data processor using different memory areas in access time
JPS5663656A (en) * 1979-10-25 1981-05-30 Nec Corp Information processing unit
JPS60107137A (en) * 1983-11-15 1985-06-12 Nec Corp Data processor with tag
JPS60136832A (en) * 1983-12-26 1985-07-20 Hitachi Ltd Logical type data processor for handling data having tag

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5528115A (en) * 1978-08-15 1980-02-28 Fujitsu Ltd Control system for data processor using different memory areas in access time
JPS5663656A (en) * 1979-10-25 1981-05-30 Nec Corp Information processing unit
JPS60107137A (en) * 1983-11-15 1985-06-12 Nec Corp Data processor with tag
JPS60136832A (en) * 1983-12-26 1985-07-20 Hitachi Ltd Logical type data processor for handling data having tag

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748755B2 (en) 2000-03-09 2004-06-15 Fujitsu Limited Refrigeration system utilizing incomplete evaporation of refrigerant in evaporator
US7007506B2 (en) 2000-03-09 2006-03-07 Fujitsu Limited Refrigeration system utilizing incomplete evaporation of refrigerant in evaporator

Similar Documents

Publication Publication Date Title
US5615357A (en) System and method for verifying processor performance
JPS6028015B2 (en) information processing equipment
KR960042340A (en) Program conversion device and processor
Anantharaman et al. A hardware accelerator for speech recognition algorithms
US20060253271A1 (en) Method for facilitating transformation of multi-threaded process-oriented object code to event-based object code
Liu et al. Techniques of program execution with a writable control memory
US5109523A (en) Method for determining whether data signals of a first set are related to data signal of a second set
JP7245817B2 (en) Continuous value matching in data processing equipment
JP4465081B2 (en) Efficient sub-instruction emulation in VLIW processor
JPS62204341A (en) Data processor
JPS62204340A (en) Data processor
JPH0527142B2 (en)
JPS62204339A (en) Data processor
JPS61245239A (en) Logical circuit system
Hai et al. Multi-threaded on-the-fly model generation of malware with hash compaction
JPH0581075A (en) Software development device
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPH02257218A (en) Electronic computer
JPS62295139A (en) Logical language processor
JPH0658632B2 (en) Data processing device
Iliffe DIGITAL SYSTEMS LABORATORY I
JPS628231A (en) Logical type data processor
JPS59173876A (en) Vector data processor
JPH0619714B2 (en) Prologue processing method
JPS6028014B2 (en) microprocessor