JPH0740257B2 - Memory access controller - Google Patents

Memory access controller

Info

Publication number
JPH0740257B2
JPH0740257B2 JP63013279A JP1327988A JPH0740257B2 JP H0740257 B2 JPH0740257 B2 JP H0740257B2 JP 63013279 A JP63013279 A JP 63013279A JP 1327988 A JP1327988 A JP 1327988A JP H0740257 B2 JPH0740257 B2 JP H0740257B2
Authority
JP
Japan
Prior art keywords
data
program
input
unit
packet
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
JP63013279A
Other languages
Japanese (ja)
Other versions
JPH01188949A (en
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 JP63013279A priority Critical patent/JPH0740257B2/en
Priority to US07/299,772 priority patent/US5117499A/en
Publication of JPH01188949A publication Critical patent/JPH01188949A/en
Publication of JPH0740257B2 publication Critical patent/JPH0740257B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明はメモリアクセス制御装置に関し、特に、演算
の対象になるデータが揃い次第命令の実行から可能にな
るデータフロー型の情報処理装置において、データフロ
ープログラムを記憶し、入力データパケットに応じて命
令フェッチを行なうキャッシュメモリをアクセスするメ
モリアクセス制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory access control device, and more particularly, to a data flow type information processing device which can be executed by executing an instruction as soon as data to be operated is prepared. The present invention relates to a memory access control device that stores a data flow program and accesses a cache memory that fetches instructions according to an input data packet.

[従来の技術および発明が解決しようとする課題] 従来のコンピュータは、プログラムとして種々の命令を
プログラムメモリに記憶しておき、プログラムカウンタ
によってプログラムメモリのアドレスを逐次指定して順
次命令を読出し、その命令を実行するというノイマン型
計算機が大部分である。
[Prior Art and Problems to be Solved by the Invention] In a conventional computer, various instructions are stored in a program memory as a program, addresses of the program memory are sequentially designated by a program counter, and the instructions are sequentially read. Most are Neumann computers that execute instructions.

一方、データフロー型計算機は、プログラムカウンタへ
逐次的な命令の実行という概念を持たない非ノイマン型
計算機の一種である。このようなデータフロー型計算機
は、命令の並列処理を基本にしたアーキテクチャを採用
している。そして、演算の対象になるデータが揃い次
第、命令の実行が可能となり、データによって複数の命
令を同時に駆動するため、データの自然な流れに従って
並列的にプログラムが実行される。その結果、演算の所
要時間が大幅に短縮するとみなされている。
On the other hand, the data flow type computer is a kind of non-Neumann type computer that does not have the concept of sequentially executing instructions to the program counter. Such a data flow type computer employs an architecture based on parallel processing of instructions. Instructions can be executed as soon as the data to be operated are prepared, and a plurality of instructions are simultaneously driven by the data, so that the programs are executed in parallel according to the natural flow of the data. As a result, it is considered that the time required for calculation is significantly shortened.

ところで、従来のデータフロー型計算機は、プログラム
メモリを内蔵するのが一般的であり、外部にプログラム
メモリを設けるという概念は存在しなかった。もし、外
部にプログラムメモリを設けた場合には、内蔵されてい
るキャッシュメモリと外部プログラムメモリをいかにし
てアクセスするかが問題となる。
Incidentally, the conventional data flow type computer generally has a built-in program memory, and there is no concept of providing the program memory externally. If a program memory is provided externally, the problem is how to access the built-in cache memory and external program memory.

それゆえに、この発明の主たる目的は、大容量のプログ
ラムメモリを外付けしかつ内蔵されたキャッシュメモリ
を高速でアクセスできるようなメモリアクセス制御装置
を提供することである。
Therefore, a main object of the present invention is to provide a memory access control device in which a large capacity program memory is externally attached and an internal cache memory can be accessed at high speed.

[課題を解決するための手段] この発明はプログラム制御部と対データ検出部と演算処
理部と外部プログラム記憶部とを備えた情報処理装置に
おいて、プログラム制御部は以下のように構成される。
すなわち、外部から実行パケットまたは外部プログラム
記憶部にロードするためのデータフロープログラムが与
えられる入力手段と、入力されたデータフロープログラ
ムを外部プログラム記憶部に出力するかまたは外部プロ
グラム記憶部から読出されたデータフロープログラムを
入力するかるあるいは外部プログラム記憶部によってフ
ェッチされた実行パケットを入力するかをデータフロー
プログラムまたは実行パケットが非同期で入力されるご
とに、それぞれに含まれる情報に基づいて出力先を制御
する入出力制御手段と、データフロープログラムを記憶
し、実行パケットに対応するプログラムデータを出力す
るキャッシュメモリと、入力手段から入力されたパケッ
トに含まれるアドレス情報に従ってキャッシュメモリを
アクセスする第1の制御手段と、入出力制御手段から入
力された実行パケットに含まれるアドレス情報に対して
少なくとも2回続けてキャッシュメモリをアクセスし、
コピー情報とともに出力する第2の制御手段と、キャッ
シュメモリでフェッチされた実行パケットおよび入出力
制御手段から入力された外部プログラム記憶部によって
フェッチされた実行パケットをコピー情報に従ってデー
タが非同期で入力されるごとに出力制御する出力制御手
段とから構成される。
[Means for Solving the Problem] The present invention is an information processing apparatus including a program control unit, a pair data detection unit, an arithmetic processing unit, and an external program storage unit, and the program control unit is configured as follows.
That is, an input means to which an execution packet or a data flow program to be loaded into the external program storage unit is given from the outside, and the input data flow program is output to the external program storage unit or read from the external program storage unit. Whether the data flow program or the execution packet fetched by the external program storage unit is input is controlled every time the data flow program or the execution packet is input asynchronously, based on the information included in each of them. First input / output control means, a cache memory that stores a data flow program and outputs program data corresponding to an execution packet, and a cache memory that accesses the cache memory according to address information included in the packet input from the input means. Accessing the cache memory in succession at least twice to the control unit and the address information included in the execution packet inputted from the input-output control means,
Data is asynchronously input according to the copy information, the second control means for outputting together with the copy information, the execution packet fetched in the cache memory and the execution packet fetched by the external program storage unit input from the input / output control means. And output control means for controlling the output for each.

[作用] この発明に係るメモリアクセス制御装置は、外部からデ
ータフロープログラムが与えられたときには、そのプロ
グラムを外部プログラム記憶部にロードし、外部から実
行パケットが与えられたときには、その実行パケットに
含まれるアドレス情報に対して、異なる次の命令を2回
続けてキャッシュメモリをアクセスし、そのフェッチさ
れた命令を出力し、キャッシュメモリでミスヒットした
ときには外部プログラム記憶部をアクセスして実行パケ
ットをフェッチして、その実行パケットを出力する。
[Operation] The memory access control device according to the present invention loads the data flow program into the external program storage unit when the data flow program is given from the outside, and includes the execution packet when the execution packet is given from the outside. For the address information to be fetched, the next different instruction is accessed twice in succession in the cache memory, the fetched instruction is output, and when there is a miss in the cache memory, the external program memory is accessed to fetch the execution packet. Then, the execution packet is output.

[実施例] 第1図はこの発明が適用される情報処理装置の概略ブロ
ック図である。まず、第1図を参照して、情報処理装置
の構成について説明する。
[Embodiment] FIG. 1 is a schematic block diagram of an information processing apparatus to which the present invention is applied. First, the configuration of the information processing apparatus will be described with reference to FIG.

情報処理装置1には外部プログラムメモリ2が外付けさ
れている。情報処理装置1は入出力制御回路を構成する
分岐結合部3,4,5,10およびバッファ11を含む。分岐結合
部3には入力データパケットが与えられ、この入力デー
タパケットは分岐結合部3によって分岐されて分岐結合
部4または5に与えられる。分岐結合部5は分岐結合部
3から出力された入力データパケットまたは後述のバッ
ファ11から与えられるデータパケットのいずれかをプロ
グラム制御部6に与える。プログラム制御部6はノード
N♯とG/C(Generation/Color)とを組合わせたキーコ
ードを複数記憶していて、該当するキーコードが入力さ
れると、プログラム上の行先ノードN♯とその行先ノー
ドN♯でどのような処理をするかを示すTAGが対データ
検出部7に出力される。
An external program memory 2 is externally attached to the information processing device 1. The information processing device 1 includes branch coupling units 3, 4, 5 and 10 and a buffer 11 which form an input / output control circuit. An input data packet is given to the branch coupling unit 3, and this input data packet is branched by the branch coupling unit 3 and given to the branch coupling unit 4 or 5. The branching / coupling unit 5 gives to the program control unit 6 either the input data packet output from the branching / coupling unit 3 or the data packet given from the buffer 11 described later. The program control unit 6 stores a plurality of key codes that are a combination of the node N # and G / C (Generation / Color). When the corresponding key code is input, the destination node N # and its destination on the program are stored. A TAG indicating what processing is to be performed at destination node N # is output to paired data detection unit 7.

対データ検出部7はプログラム制御部6から読出された
プログラムデータおよび被処理データに対して対となる
プログラムデータおよび被処理データが入力されたか否
かを判別するものである。1対のプログラムデータおよ
び被処理データが対データ検出部7で検出されかつ生成
されたとき、接点8が閉じられる。なお、プログラムデ
ータがnopの場合にも、対となるべきプログラムデータ
が不要であるため、接点8は閉じられる。また、対デー
タ検出部7の出力は外部プログラムメモリ2にも与えら
れている。対データ検出部7から出力されたプログラム
データおよび被処理データは、接点8を介してALU9に与
えられて演算され、その演算結果は分岐結合部10によっ
てバッファ11または分岐結合部4に分岐される。バッフ
ァ11に記憶された演算結果は分岐結合部5を介してプロ
グラム制御部6に与えられる。
The paired data detection unit 7 determines whether or not a pair of program data and processed data has been input to the program data and processed data read from the program control unit 6. When a pair of program data and processed data is detected and generated by the pair data detection unit 7, the contact 8 is closed. Even when the program data is nop, the contact 8 is closed because the program data to be paired is unnecessary. The output of the paired data detection unit 7 is also given to the external program memory 2. The program data and the processed data output from the paired data detection unit 7 are given to the ALU 9 via the contact 8 to be operated, and the operation result is branched to the buffer 11 or the branch connection unit 4 by the branch connection unit 10. . The calculation result stored in the buffer 11 is given to the program control unit 6 via the branch / coupling unit 5.

外部プログラムメモリ2は対データ検出部7から出力さ
れたプログラムデータに含まれるN♯とG/Cとをキーコ
ードとして、次の命令のプログラムデータを読出してプ
ログラム制御部6にアップロードする。
External program memory 2 uses the N # and G / C included in the program data output from paired data detection unit 7 as key codes to read the program data of the next command and upload it to program control unit 6.

前述のバッファ11は外部プログラムメモリ2がプログラ
ムデータを読出してから、ALU9の演算結果をプログラム
制御部6に与えるための遅延動作を行なうものとして設
けらている。なお、外部プログラムメモリ2は、プログ
ラム制御部6からプログラムデータの初期書込み(ダウ
ンロード)が可能なように構成されている。
The above-mentioned buffer 11 is provided to perform a delay operation for giving the operation result of the ALU 9 to the program control unit 6 after the external program memory 2 reads the program data. The external program memory 2 is configured so that the program controller 6 can initially write (download) the program data.

第2図は第1図に示した情報処理装置によって処理され
るプログラムの一例を示す図であり、第3図ないし第10
図は第1図に示した情報処理装置1によって、第2図に
示したプログラムを実行するときの各部のプログラムデ
ータの変化を示す図である。
FIG. 2 is a diagram showing an example of a program processed by the information processing apparatus shown in FIG. 1, and FIGS.
The figure is a diagram showing changes in the program data of each unit when the program shown in FIG. 2 is executed by the information processing apparatus 1 shown in FIG.

次に、第1図ないし第10図を参照して、情報処理装置に
よるプログラム処理の具体的な動作について説明する。
まず、第2図のプログラムから明らかなように、ノード
N♯Aに続くプログラムデータは、ノードでデータ0
のnop命令を実行するとともに、ノードDから与えられ
かつノードでNOP命令が実行されたデータとノード
で加算命令を実行できるようにプログラム制御部6に配
されることが望まれる。
Next, a specific operation of the program processing by the information processing device will be described with reference to FIGS. 1 to 10.
First, as is apparent from the program shown in FIG. 2, the program data following the node N # A is data 0 at the node.
It is desirable that the program control unit 6 be arranged so that it can execute the add instruction at the node and the data given from the node D and the NOP instruction is executed at the node while executing the nop instruction at.

このために、第3図に示すように、情報処理装置1に
は、入力データパケットとして、データ0,TAGソース,G/
C0,N♯Aが与えられる。ここで、ノードN♯AおよびG/
C0の各々の一部を併せたものがプログラム制御部6の物
理アドレスを示しており、TAGソースはノードN♯Aが
プログラムデータの入力部を指定するものであり、G/C
はデータ0がどの時刻でサンプリングされたデータであ
るのかを識別するための識別子として用いられている。
To this end, as shown in FIG. 3, the information processing device 1 has data 0, TAG source, G /
C0 and N # A are given. Here, nodes N # A and G /
A part of each C0 indicates the physical address of the program control unit 6, and the TAG source is that the node N # A designates the input unit of the program data.
Is used as an identifier for identifying at what time data 0 is the sampled data.

なお、ノードN♯AとG/C0はプログラム制御部6の前記
物理アドレスを与えるとともに該メモリをアクセスする
ためのキーコードとして取扱われている。上述の入力デ
ータパケットは分岐結合部3,5を介してプログラム制御
部6に与えられる。プログラム制御部6はノードN♯A,
G/C0をキーコードとして、対応するプログラムデータを
アクセスする。たとえば、対応するプログラムデータと
してノードN♯3,TAG+Lがフェッチされる。
The nodes N # A and G / C0 are used as key codes for giving the physical address of the program controller 6 and accessing the memory. The above-mentioned input data packet is given to the program control unit 6 via the branch / coupling units 3 and 5. The program control unit 6 uses the node N # A,
Use G / C0 as a key code to access the corresponding program data. For example, node N # 3, TAG + L is fetched as corresponding program data.

このプログラムデータは、第2図に示すプログラムのノ
ードにおける加算の左側入力を与えることを示してい
る。このとき、ノードにおけるnop命令を処理するた
めに同じデータ0が与えられるので、N♯A,G/C0のキー
コードに対して、予めコピーフラグがプログラム制御部
6内で設定されている。そして、プログラム制御部6に
よってN♯A,G/C0のキーコードに対して、nopの命令を
示すN♯8,TAGnopが続けてフェッチされる。
This program data is shown to provide the left input of the addition at the node of the program shown in FIG. At this time, since the same data 0 is given to process the nop instruction in the node, the copy flag is set in advance in the program control unit 6 for the key codes of N # A and G / C0. Then, the program control unit 6 successively fetches N # 8 and TAGnop indicating nop instructions for the key codes of N # A and G / C0.

プログラム制御部6はフェッチされたN♯3,TAG+Lと
いうプログラムデータに対して、入力データパケットに
含まれるG/C0とデータ0を付加するとともに、データが
正常にフェッチされたことを示すフラグ0を付加する。
なお、ミスヒットしたときにはフラグ1が付加される。
対データ検出部7はこのプログラムデータに対して対と
なるプログラムデータが既にフェッチされているか否か
を判別する。すなわち、第2図に示すノードにおける
右側のデータがフェッチされている否かを判別する。
今、ノードにおける右側のデータは未だフェッチされ
ていないので、対データ検出部7はこのプログラムデー
タを待機させる。
The program control unit 6 adds G / C0 and data 0 included in the input data packet to the fetched program data of N # 3, TAG + L, and sets a flag 0 indicating that the data is normally fetched. Add.
It should be noted that flag 1 is added when a mishit has occurred.
The pair data detection unit 7 determines whether or not the program data to be paired with this program data has already been fetched. That is, it is determined whether or not the data on the right side of the node shown in FIG. 2 has been fetched.
Since the data on the right side of the node has not been fetched yet, the paired data detection unit 7 puts this program data on standby.

一方、ノードにおけるnop命令のためのプログラムデ
ータは、対となるべきプログラムデータを必要としない
ので、プログラム制御部6はフェッチされたN♯8,TAGn
opに対して、入力データパケットに含まれるG/C0,デー
タ0を付加するとともに正常にフェッチされたことを示
すフラグ0を付加して出力する。また、プログラム制御
部6からプログラムデータがフェッチされたことによ
り、接点8が閉じられる。したがって、nop命令のため
のプログラムデータはALU9と外部プログラムメモリ2と
に与えられる。
On the other hand, the program data for the nop instruction in the node does not require the program data to be paired, so the program control unit 6 fetches the fetched N # 8, TAGn
G / C0 and data 0 included in the input data packet are added to op, and flag 0 indicating that the data has been normally fetched is added and output. The contact 8 is closed by fetching the program data from the program control unit 6. Therefore, the program data for the nop instruction is given to the ALU 9 and the external program memory 2.

このとき、情報処理装置1には、次の入力データパケッ
トが与えられたものとする。すなわち、次に第2図に示
すノードBにおける処理を次に行なうためのプログラム
データとして、データ1,TAGソース,G/C0,N♯Bが分岐結
合部3,5を介してプログラム制御部6に与えられる。こ
のプログラムデータは、前述の第3図で説明したN♯A
とほぼ同じであり、ノードでデータ1のnop命令を実
行し、ノードにおいて、データ1をノードDから与え
られかつノードでnop命令が実行されたデータと加算
することになる。
At this time, it is assumed that the information processing apparatus 1 is given the next input data packet. That is, the data 1, TAG source, G / C0, N # B as the program data for the next processing in the node B shown in FIG. Given to. This program data corresponds to N # A described in FIG.
This is almost the same as the above, and the node executes the nop instruction of the data 1 and adds the data 1 to the data given from the node D and executed by the node in the nop instruction.

このために、前述の第3図の説明と同様にして、プログ
ラム制御部6は第4図に示すようにN♯B,G/C0を該メモ
リの物理アドレスおよびキーコードとして、対応するプ
ログラムデータN♯4,TAG+Lをフェッチする。このプ
ログラムデータは、第2図に示すプログラムのノード
における加算の左側入力を与えるデータである。ノード
におけるnop命令を処理するために同じプログラムデ
ータ1が与えられるので、プログラム制御部6には、N
♯B,G/C0のキーコードに対してコピーフラグが予め設定
されている。
For this purpose, the program control section 6 uses N # B, G / C0 as the physical address and key code of the memory as shown in FIG. Fetch N # 4, TAG + L. This program data is data which gives the left input of addition at the node of the program shown in FIG. Since the same program data 1 is given to process the nop instruction in the node, the program control unit 6 is
A copy flag is preset for the #B and G / C0 key codes.

したがって、同じN♯B,G/C0をキーコードとする次のno
pの命令を示すN♯9,TAGnopのプログラムデータが続け
てフェッチされる。さらに、プログラム制御部6でフェ
ッチされたN♯4,TAG+Lというプログラムデータに対
して、入力データパケットに含まれるG/C0とデータ1と
正常にフェッチされたことを示すフラグ0が付加され
る。そして、対データ検出部7は、そのプログラムデー
タに対して、対となるプログラムデータが既にフェッチ
されているか否かを判別する。すなわち、第2図に示す
ノードにおける右側のデータがフェッチされているか
否かを判別するが、未だフェッチされていないので、こ
のプログラムデータを待機させる。
Therefore, the next no with the same N # B, G / C0 as the key code
Program data of N # 9 and TAGnop indicating the instruction of p are continuously fetched. Further, to the program data N # 4, TAG + L fetched by the program control unit 6, G / C0 and data 1 included in the input data packet and the flag 0 indicating that the data has been normally fetched are added. Then, the paired data detection unit 7 determines whether or not the paired program data has already been fetched for the program data. That is, it is determined whether or not the data on the right side of the node shown in FIG. 2 has been fetched, but since it has not been fetched yet, this program data is made to wait.

一方、前述の入力データパケットがプログラム制御部6
に入力されている間に、外部プログラムメモリ2は第3
図に示すように、対データ検出部7から与えられたnop
命令のためのプログラムデータに含まれるN♯8,G/C0の
組合わせで決まるキーコードに対応するアドレスから次
の命令を読出す。すなわち、ノードでnop命令の処理
が行なわれたデータをノードN♯xに出力するために、
N♯8,G/C0,N♯x,TAGシンクをプログラム制御部6に出
力する。
On the other hand, the above-mentioned input data packet is the program control unit 6
While the external program memory 2 is being input to the third
As shown in the figure, the nop given from the pair data detector 7
The next instruction is read from the address corresponding to the key code determined by the combination of N # 8 and G / C0 included in the program data for the instruction. That is, in order to output the data processed by the nop instruction at the node to the node N # x,
The N # 8, G / C0, N # x and TAG syncs are output to the program control unit 6.

また、ALU9にはnop命令のためのデータが与えられる
が、nop命令は何ら演算を行なわないことを示す命令で
あるため、このプログラムデータをそのまま出力する。
nop命令のプログラムデータは分岐結合部10,バッファ1
1,分岐結合部5を介してプログラム制御部6に与えられ
る。
Further, although data for the nop instruction is given to the ALU9, since the nop instruction is an instruction indicating that no operation is performed, this program data is output as it is.
Program data of nop instruction is branch / coupling unit 10, buffer 1
1, provided to the program control unit 6 via the branch coupling unit 5.

プログラム制御部6には、外部プログラムメモリ2から
読出されたプログラムデータが、バッファ11を介して遅
延が加えられたプログラムデータのフェッチよりも先に
入力される。したがって、プログラム制御部6は、、そ
のプログラムデータに含まれるN♯8,G/C0のキーコード
に対応するプログラムデータとして、第5図に示すよう
に、N♯x,TAGシンクをフェッチすることができ、続い
てバッファ11を介して与えられるプログラムデータに含
まれるN♯9,G/C0のキーコードに対応するプログラムデ
ータであるN♯y,TAGシンクをフェッチすることができ
る。
The program data read from the external program memory 2 is input to the program control unit 6 via the buffer 11 prior to fetching the delayed program data. Therefore, the program controller 6 fetches N # x, TAG sync as shown in FIG. 5 as the program data corresponding to the key code of N # 8, G / C0 included in the program data. Then, the N # y, TAG sync, which is the program data corresponding to the key code of N # 9, G / C0 included in the program data given via the buffer 11, can be fetched.

次に、情報処理装置1には、ノードDのプログラムデー
タとして、第5図に示すように、データ3,TAGソース,G/
C0,N♯Dが与えられる。すなわち、ノードDのプログラ
ムデータは、第2図に示すように、ノードでnop命令
を実行し、ノードでinc(インクリメント)命令を実
行するものである。このために、プログラム制御部6は
このプログラムデータに含まれるN♯D,G/C0をキーコー
ドとして、プログラムデータN♯1,nopをフェッチし、
同じキーコードN♯D,G/C0に対してコピー処理を行なっ
て、対応するプログラムデータN♯2,incをフェッチす
る。すなわち、プログラム制御部6は、キーコードN♯
2,TAGincに、入力データパケットに含まれるG/C0とデー
タ0とフラグ0を付加して対データ検出部7に出力す
る。
Next, in the information processing device 1, as the program data of the node D, as shown in FIG. 5, data 3, TAG source, G /
C0 and N # D are given. That is, as shown in FIG. 2, the program data of the node D executes the nop instruction at the node and the inc (increment) instruction at the node. Therefore, the program control unit 6 fetches the program data N # 1, nop using N # D, G / C0 included in this program data as a key code,
The same key code N # D, G / C0 is subjected to copy processing to fetch the corresponding program data N # 2, inc. That is, program control unit 6 determines key code N #.
2, G / C0, data 0, and flag 0 included in the input data packet are added to TAGinc and output to the pair data detection unit 7.

これらの処理を実行している間において、外部プログラ
ムメモリ2からはキーコードN♯9,G/C0に対応するプロ
グラムデータN♯9,G/C0,N♯y,TAGシンクが読出されて
プログラム制御部6に与えられる。このプログラムデー
タは、第2図に示すノードでnop命令が処理されたデ
ータをノードyに出力することを示している。
While these processes are being executed, the program data N # 9, G / C0, N # y and TAG sync corresponding to the key codes N # 9 and G / C0 are read out from the external program memory 2 and the program is read. It is given to the control unit 6. This program data indicates that the data processed by the nop instruction at the node shown in FIG. 2 is output to the node y.

また、ALU9は第5図に示すN♯1,G/C0,TAGnop,Lデータ
3,フラグ0のプログラムデータがnop命令であるため、
被処理データを素通りさせ、分岐結合部10,バッファ11,
分岐結合部10を介してプログラム制御部6に与える。プ
ログラム制御部6は、第6図に示すようにそのプログラ
ムデータのN♯1,G/C0をキーコードとして、N♯3,TAG
+Rをフェッチする。そして、プログラム制御部6は、
N♯3,G/C0,TAG+R,データ3,フラグ0からなるプログラ
ムデータを対データ検出部7に与える。
Also, ALU9 is N # 1, G / C0, TAGnop, L data shown in FIG.
3, because the program data of flag 0 is a nop instruction,
The data to be processed is passed through, and the branch / coupling unit 10, buffer 11,
It is given to the program control unit 6 via the branch connection unit 10. As shown in FIG. 6, the program control unit 6 uses N # 1, G / C0 of the program data as a key code and N # 3, TAG.
Fetch + R. Then, the program control unit 6
Program data consisting of N # 3, G / C0, TAG + R, data 3 and flag 0 is given to the paired data detection unit 7.

このような命令フェッチが可能となるのは外部プログラ
ムメモリ2が第5図に示すN♯1,G/C0,TAGnop,Lデータ
3,フラグ0からなるプログラムデータのキーコードN♯
1,G/C0に基づいて、対応する2組のプログラムデータ,G
/C0,N♯3,TAG+R,N♯4,TAG+Rを連続して読出し、これ
らの命令がフェッチされるよりも以前にプログラム制御
部6に与えられるからである。それゆえに、プログラム
制御部6はそのプログラムデータのN♯1,G/C0をキーコ
ードとして、N♯4,TAG+Rのデータをもフェッチし、
N♯4,G/C0,TAG+R,データ3のプログラムデータを対デ
ータ検出部7に与える。
Such instruction fetching is possible because the external program memory 2 has N # 1, G / C0, TAGnop, L data shown in FIG.
Key code N # of program data consisting of 3, flag 0
Based on 1, G / C0, two corresponding sets of program data, G
This is because / C0, N # 3, TAG + R, N # 4, TAG + R are continuously read and these instructions are given to the program control unit 6 before being fetched. Therefore, the program control unit 6 also fetches the data of N # 4, TAG + R using N # 1, G / C0 of the program data as a key code,
Program data of N # 4, G / C0, TAG + R, and data 3 is given to the paired data detection unit 7.

すなわち、対データ検出部7には、第2図に示したノー
ドの左側の被処理データと、ノードの右側の被処理
データが与えられたことになる。前述の第3図で説明し
たように、ノードの左側のプログラムデータおよび被
処理データは既に対データ検出部7に与えられており、
また、前述の第4図で説明したように、ノードの左側
のプログラムデータおよび被処理データが既に対データ
検出部7に与えられている。したがって、対データ検出
部7はノードの2つの被処理データおよびノードの
2つの被処理データが揃ったことを検出し、第7図に示
すように、まずN♯3,G/C0,TAG+,Lデータ0,Rデータ3,
フラグ0のプログラムデータをALU9に与える。応じて、
ALU9はノードにおける加算のための演算処理を実行す
る。さらに、対データ検出部7はN♯4,G/C0,TAG+,Lデ
ータ1,Rデータ3のプログラムデータをALU9に与え、ノ
ードにおける演算処理を実行させる。
That is, the paired data detection unit 7 is provided with the processed data on the left side of the node and the processed data on the right side of the node shown in FIG. As described above with reference to FIG. 3, the program data and processed data on the left side of the node have already been given to the paired data detection unit 7,
Further, as described with reference to FIG. 4 described above, the program data and processed data on the left side of the node have already been given to the paired data detection unit 7. Therefore, the paired data detection unit 7 detects that the two processed data of the node and the two processed data of the node are aligned, and as shown in FIG. 7, first, N # 3, G / C0, TAG +, L data 0, R data 3,
The program data of flag 0 is given to ALU9. Depending on,
The ALU9 executes arithmetic processing for addition in the node. Further, the paired data detection unit 7 supplies the program data of N # 4, G / C0, TAG +, L data 1 and R data 3 to the ALU 9, and causes the arithmetic processing in the node to be executed.

前述のごとく、ALU9はノード,の演算処理を行なっ
た後、第2図に示すように、ノード,でisel命令を
実行する。このisel命令は、整数タイプの読出命令であ
る。
As described above, the ALU 9 executes the arithmetic processing of the node, and then executes the isel instruction at the node, as shown in FIG. This isel instruction is an integer type read instruction.

次に、isel命令を実行するときに、プログラム制御部6
でハッシュ衝突が生じた場合の動作について説明する。
この例では、N♯とG/Cとを組合わせてプログラムデー
タをフェッチするためのキーコードとした。この場合、
N♯5とN♯6は4ビットのコードで表わせば、“010
1",“0110"となり、それぞれを識別することは可能であ
る。しかしながら、たとえば上位2ビットをキーコード
とし、下位2ビットを物理アドレスとして見た場合、と
もに“01"であるため同じになる。すなわち、上位2ビ
ットをキーコードとして用いた場合には、N♯5,N♯6
を識別することはできない。このために、第2図に示す
ノードでisel命令を実行した後、ノードのisel命令
を実行すると、ALU9は次のような処理を実行する。
Next, when executing the isel instruction, the program control unit 6
The operation when a hash collision occurs will be described.
In this example, a combination of N # and G / C is used as a key code for fetching program data. in this case,
If N # 5 and N # 6 are represented by a 4-bit code, “010
It becomes 1 "and" 0110 ", and it is possible to identify each. However, for example, when the upper 2 bits are used as a key code and the lower 2 bits are used as a physical address, both are the same because they are" 01 ". That is, when the upper 2 bits are used as a key code, N # 5, N # 6
Cannot be identified. Therefore, when the isel instruction of the node is executed after the isel instruction of the node shown in FIG. 2, the ALU 9 executes the following processing.

すなわち、ALU9はノードの演算を実行すると、第8図
に示すように、バッファ11にN♯5,G/C0,データ3の演
算結果を出力する。プログラム制御部6はN♯5,G/C0の
キーコードに対応して、N♯7,TAG*Rのデータをフェ
ッチする。一方、ALU9はノードでiselの演算処理を実
行した後、ノードでiselの演算処理を実行し、その演
算結果であるN♯6,G/C0,データ4をバッファ11に出力
する。
That is, when the ALU 9 executes the node operation, it outputs the operation result of N # 5, G / C0, and data 3 to the buffer 11, as shown in FIG. The program control unit 6 fetches the data of N # 7, TAG * R corresponding to the key code of N # 5, G / C0. On the other hand, the ALU 9 executes the isel operation processing at the node, then executes the isel operation processing at the node, and outputs the operation result N # 6, G / C0, and data 4 to the buffer 11.

ところで、プログラム制御部6は、まず最初の演算結果
のN♯5,G/C0をキーコードとして、対応するプログラム
データをフェッチしようとするが、前述のごとく、プロ
グラム制御部6ではN♯5とN♯6との識別ができない
ためにもともとN♯5,G/C0をキーコードとして外部プロ
グラムメモリ2より与えられたプログラムデータの上に
N♯6,G/C0をキーコードとして外部プログラムメモリ2
より与えられた次のプログラムデータが書込まれてお
り、プログラム制御部6はN♯5,G/C0のキーコードに対
応する正常なデータをフェッチできず、ミスヒットを生
じる。このような場合であっても、正常に動作させる必
要がある。
By the way, the program control unit 6 tries to fetch the corresponding program data by using N # 5, G / C0 of the first operation result as a key code. Since it cannot be distinguished from N # 6, external program memory 2 with N # 6, G / C0 as a key code is added to the program data given from external program memory 2 with N # 5, G / C0 as a key code.
Since the next program data given by the above is written, the program control unit 6 cannot fetch the normal data corresponding to the key code of N # 5, G / C0, resulting in a mishit. Even in such a case, it is necessary to operate normally.

そこで、この例では、プログラム制御部6はミスヒット
を生じた場合に、ハッシュ衝突の生じたことを示すため
に、第9図に示すようにプログラムデータにミスヒット
フラグ3を立てる。対データ検出部7はプログラムデー
タにミスヒットフラグが立っている場合には、接点8を
閉じない。このため、対データ検出部7から出力された
プログラムデータは外部プログラムメモリ2にのみ与え
られ、ALU9には与えられない。
Therefore, in this example, when a mishit occurs, the program control unit 6 sets a mishit flag 3 in the program data as shown in FIG. 9 to indicate that a hash collision has occurred. The pair-to-data detector 7 does not close the contact 8 when the program data has a mishit flag. Therefore, the program data output from the paired data detection section 7 is given only to the external program memory 2 and not to the ALU 9.

外部プログラムメモリ2は第9図に示すように、対デー
タ検出部7から与えられたプログラムデータのキーコー
ドN♯5,G/C0に基づいて、第10図に示すように、ノード
の命令を実行するためのプログラムデータN♯7,G/C
0,TAG*Lを読出すばかりでなく、演算しようするデー
タ3,フラグ3も読出す。
As shown in FIG. 9, the external program memory 2, based on the key code N # 5, G / C0 of the program data given from the paired data detection unit 7, sends the node command as shown in FIG. Program data for execution N # 7, G / C
Not only 0, TAG * L is read, but also data 3 and flag 3 to be operated are read.

すなわち、この例では、プログラム制御部6でミスヒッ
トした場合、外部プログラムメモリ2を直接アクセスし
て、次の命令とともにデータもプログラム制御部6に与
えることを特徴としている。
That is, in this example, when the program control unit 6 makes a mishit, the external program memory 2 is directly accessed, and data is also given to the program control unit 6 together with the next instruction.

外部プログラムメモリ2から読出されたノードのプロ
グラムデータはプログラム制御部6に与えられるが、こ
のプログラムデータにはデータも付加されているので、
ミスヒットフラグに従ってプログラム制御部6を素通り
し、対データ検出部7に与えられる。対データ検出部7
はそのプログラムデータと対となるべきデータが入力さ
れるまで待機する。外部プログラムメモリ2はノード
のプログラムデータを直接読出した後、第10図に示すよ
うにノードのプログラムデータN♯6,G/C0,TAGR,フラ
グ0がプログラム制御部6に入力される。
The program data of the node read from the external program memory 2 is given to the program control unit 6. Since the data is also added to this program data,
The data is passed through the program control unit 6 according to the mishit flag and given to the paired data detection unit 7. Pair data detector 7
Waits until the data to be paired with the program data is input. After the program data of the node is directly read from the external program memory 2, the program data N # 6, G / C0, TAGR and flag 0 of the node are input to the program control unit 6 as shown in FIG.

プログラム制御部6はN♯6,G/C0をキーコードとして、
N♯7,TAG*Rのプログラムデータをフェッチする。こ
のプログラムデータは対データ検出部7に与えられる。
対データ検出部7はノードにおける演算を実行するの
に必要な2つのデータが揃ったことを検出し、再び接点
8を閉じ、その2つのプログラムデータをALU9に与え、
演算処理を実行する。
The program control unit 6 uses N # 6, G / C0 as a key code,
Fetch program data of N # 7, TAG * R. This program data is given to the paired data detector 7.
The paired data detection unit 7 detects that two pieces of data necessary for executing the operation in the node are gathered, closes the contact 8 again, and gives the two program data to the ALU9,
Perform arithmetic processing.

以下、同様の動作を行ない、ノードの演算結果とノー
ドCで入力されるプログラムデータに基づいて、ノード
における加算のための演算処理が行なわれ、ノードu
に出力される。
Thereafter, the same operation is performed, and based on the operation result of the node and the program data input in the node C, the operation process for addition in the node is performed, and the node u
Is output to.

第11A図および第11B図はこの発明の一実施例のプログラ
ム制御部の具体的なブロック図である。
11A and 11B are specific block diagrams of the program control unit according to the embodiment of the present invention.

まず、第11A図および第11B図を参照して、外部から入力
されたプログラムデータを外部プログラムメモリ2とメ
モリアレイ49とにロードする場合におけるプログラム制
御部6の構成とともにその動作について説明する。な
お、プログラムデータは、外部からシリアルに順次入力
されるが、全てのプログラムデータが外部プログラムメ
モリ2にロードされ、そのうちの初期の1kワードのプロ
グラムデータはメモリアレイ49にもロードされる。
First, with reference to FIGS. 11A and 11B, the configuration of the program control unit 6 and the operation thereof when the program data input from the outside are loaded into the external program memory 2 and the memory array 49 will be described. Although the program data is serially input from the outside, all the program data are loaded into the external program memory 2, and the initial 1k word of the program data is also loaded into the memory array 49.

プログラムデータには、ULD,LDI,LDXのいずれかの命令
が含まれている。ULDはアンロードの意味であり、通常
の実行状態を表わしている。LDIはメモリアレイ49に初
期の1kワードのプログラムデータをロードせよという命
令であり、LDXは残りのプログラムを外部プログラムメ
モリ2にロードせよという命令である。このような命令
を含むプログラムデータは入力ポート11に与えられる。
入力ポート11は各命令に応じて、選択信号を経路選択部
13に与える。また、入力ポート11は入力されるプログラ
ムデータのアドレスをデコードし、1kワードのアドレス
を検出したとき、検出信号を入出力ポート32に与える。
入力ポート11はプログラムデータを順次データラッチ12
に与える。データラッチ12は前段が空き状態になってい
ることに応じてデータをシフトするいわゆるハンドシェ
イクの手法でデータを出力するように構成されており、
以下に述べる各データラッチ15,18,20…も同様にして構
成されている。
The program data includes any instruction of ULD, LDI, and LDX. ULD means unload and represents a normal execution state. LDI is an instruction to load the initial 1k word of program data into the memory array 49, and LDX is an instruction to load the remaining program into the external program memory 2. Program data including such an instruction is given to the input port 11.
The input port 11 sends a selection signal to the route selection unit according to each instruction.
Give to thirteen. Further, the input port 11 decodes the address of the inputted program data, and when it detects the address of 1k word, gives a detection signal to the input / output port 32.
Input port 11 sequentially latches program data in data latch 12
Give to. The data latch 12 is configured to output data by a so-called handshake method of shifting data according to the fact that the previous stage is in an empty state,
Each of the data latches 15, 18, 20 ... Described below is similarly configured.

データラッチ12から出力されたプログラムデータは経路
選択部13に与えられる。経路選択部13は入力ポート11か
ら与えられた選択信号に応じて、プログラムデータを合
流部14またはデータラッチ33に選択的に出力する。すな
わち、プログラムデータに含まれる命令がULDであれば
通常の実行処理を行なうものであるため、入力データパ
ケットを合流部14に出力し、命令がLDIまたはLDXであれ
ば、プログラムデータを外部プログラムメモリ2にロー
ドするために、プログラムデータをデータラッチ33に出
力する。データラッチ33はプログラムデータをラッチし
た後、そのプログラムデータを入出力ポート32に与え
る。入出力ポート32はそのプログラムデータを外部に出
力して、外部プログラムメモリ2に与えるとともに、デ
ータラッチ34にも出力する。なお、入出力ポート32は入
力ポート11が1kワードを越えるアドレスを検出したと
き、プログラムデータを外部プログラムメモリ2にのみ
出力し、データラッチ34には出力しない。
The program data output from the data latch 12 is given to the path selection unit 13. The path selection unit 13 selectively outputs the program data to the merging unit 14 or the data latch 33 according to the selection signal given from the input port 11. That is, if the instruction included in the program data is ULD, the normal execution processing is performed, so the input data packet is output to the confluence unit 14, and if the instruction is LDI or LDX, the program data is stored in the external program memory. The program data is output to the data latch 33 for loading into 2. The data latch 33 latches the program data and then supplies the program data to the input / output port 32. The input / output port 32 outputs the program data to the outside and supplies it to the external program memory 2 and also outputs it to the data latch 34. When the input port 11 detects an address exceeding 1 k word, the input / output port 32 outputs the program data only to the external program memory 2 and does not output it to the data latch 34.

なお、外部プログラムメモリ2から読出された命令パケ
ットは入出力ポート32に与えられる。データラッチ34に
ラッチされたプログラムデータは経路選択部35に出力さ
れる。経路選択部35はプログラムデータを分岐部36また
は合流部14に選択的に分岐するものである。すなわち、
キャッシュメモリへアップロードすべきプログラムデー
タまたは外部からの初期ロードデータが与えられたとき
には、その入力データパケットを分岐部36に出力し、外
部プログラムメモリ2でフェッチされたデータパケット
が与えられたときには、合流部14に分岐させる。
The instruction packet read from the external program memory 2 is given to the input / output port 32. The program data latched by the data latch 34 is output to the path selection unit 35. The path selection unit 35 selectively branches the program data into the branch unit 36 or the merge unit 14. That is,
When the program data to be uploaded to the cache memory or the initial load data from the outside is given, the input data packet is output to the branch unit 36, and when the data packet fetched by the external program memory 2 is given, it merges. Branch to section 14.

分岐部36はデータパケットが与えられると、そのデータ
パケットに含まれるN♯,G/Cの組合せからなるキーデー
タを書込アドレス情報としてデータラッチ42にラッチさ
せ、データパケットに含まれるN♯,TAGからなる書込デ
ータをデータラッチ37にラッチさせる。データラッチ42
のラッチされた書込アドレス情報は次段のデータラッチ
43にラッチされる。データラッチ43にラッチされた書込
アドレス情報に基づいて、コピーアドレス生成部44によ
ってコピーアドレスが生成され、G/CおよびN♯からな
るキーデータが書込データの一部としてデータラッチ45
にラッチされ、アドレス情報としてのキーコードはデー
タラッチ46にラッチされる。
Upon receiving the data packet, branching unit 36 causes data latch 42 to latch the key data composed of the combination of N # and G / C included in the data packet as write address information, and N #, included in the data packet. The write data composed of TAG is latched by the data latch 37. Data latch 42
The latched write address information of the
Latched to 43. A copy address is generated by a copy address generation unit 44 based on the write address information latched in the data latch 43, and key data composed of G / C and N # is used as a part of the write data in the data latch 45.
The key code as the address information is latched by the data latch 46.

一方、データラッチ37にラッチされた書込データはデー
タラッチ38にラッチされ、この書込データとデータラッ
チ45にラッチされている書込データの一部が書込データ
ラッチ39にラッチされる。書込データラッチ39にラッチ
された書込データは書込/読出制御部50に与えられる。
On the other hand, the write data latched by the data latch 37 is latched by the data latch 38, and this write data and a part of the write data latched by the data latch 45 are latched by the write data latch 39. The write data latched by write data latch 39 is applied to write / read controller 50.

一方、データラッチ46にラッチされた書込アドレス情報
は書込/読出調停制御部47に与えられる。書込/読出調
停制御部47には後で説明するが、データラッチ20からも
読出アドレス情報が与えられる。そして、書込/読出調
停制御部47は書込アドレス情報と読出アドレス情報のい
ずれか早く到達した方を選択してデコーダ48に与える。
書込/読出調停制御部47は、もし書込アドレス情報が与
えられた後、続いて読出アドレス情報が与えられたとき
には、書込アドレス情報をデコーダ48に出力した後、読
出アドレス情報をデコーダ48に出力する。デコーダ48は
書込アドレス情報および読出アドレス情報をそれぞれデ
コードし、コラムアドレス情報とロウアドレス情報をメ
モリアレイ49に与える。そして、メモリアレイ49には、
書込アドレス情報によってアドレス指定されたメモリセ
ルに書込データが書込まれる。
On the other hand, the write address information latched by the data latch 46 is given to the write / read arbitration control unit 47. As will be described later, read / write arbitration control unit 47 is also supplied with read address information from data latch 20. Then, the write / read arbitration control unit 47 selects the write address information or the read address information, whichever comes first, and gives it to the decoder 48.
The write / read arbitration control unit 47 outputs the write address information to the decoder 48 and then the read address information when the write address information is given and subsequently the read address information is given. Output to. The decoder 48 decodes the write address information and the read address information, and supplies the column address information and the row address information to the memory array 49. Then, in the memory array 49,
Write data is written in the memory cell addressed by the write address information.

上述の動作により、1kワードのプログラムデータがメモ
リアレイ49に書込まれ、入力ポート11が1kワードのアド
レスを検出したとき、入出力ポート32は以後プログラム
データを外部プログラムメモリ2にのみ出力し、データ
ラッチ34には出力しない。それによって、すべてのプロ
グラムデータが外部プログラムメモリ2にロードされ
る。
By the above-mentioned operation, 1 k word of program data is written in the memory array 49, and when the input port 11 detects the 1 k word address, the input / output port 32 thereafter outputs the program data only to the external program memory 2, It is not output to the data latch 34. As a result, all program data are loaded into the external program memory 2.

次に、実際のプログラム実行手順について説明する。入
力ポート11には入力データパケットが与えられる。この
入力データパケットには、通常の実行状態を表わす命令
ULDが含まれている。入力ポート11は命令ULDによりアン
ロードであることを判別し、経路選択部13を合流部14側
に切換える。そして、入力データパケットはデータラッ
チ12,経路選択部13を介して合流部14にのみ与えられ、
データラッチ33側には出力されない。合流部14は次段の
データラッチ15が空き状態であれば、その入力データパ
ケットをデータラッチ15にラッチさせる。データラッチ
15にラッチされた入力データパケットは分岐部16に与え
られ、その入力データパケットに含まれるN♯およびG/
Cからなるキーコードとオペランドデータが分岐され、
キーコードはデータラッチ18にラッチされるとともに、
モード制御部17に与えられる。データラッチ28にラッチ
されたオペランドデータは、データラッチ29,30および3
1に順次伝送される。
Next, an actual program execution procedure will be described. An input data packet is given to the input port 11. This input data packet contains instructions that indicate normal execution status.
Contains ULD. The input port 11 determines that it is unloaded by the instruction ULD, and switches the route selection unit 13 to the merging unit 14 side. Then, the input data packet is given only to the merging unit 14 via the data latch 12 and the route selecting unit 13,
It is not output to the data latch 33 side. The merging unit 14 causes the data latch 15 to latch the input data packet if the next-stage data latch 15 is in an empty state. Data latch
The input data packet latched by 15 is supplied to branching unit 16, and N # and G / included in the input data packet are included.
The key code consisting of C and the operand data are branched,
The key code is latched in the data latch 18 and
It is given to the mode control unit 17. Operand data latched in data latch 28 is transferred to data latches 29, 30 and 3
Sequentially transmitted to 1.

モード制御部17はメモリアレイ49にロードされた1kワー
ドのプログラムを読出して、そのプログラムデータが正
常であるかどうかを判別するためにダンプを行なうため
のダンプモードと、キーコードに基づいて対応する命令
をメモリアレイ49から読出す読出モードを設定するもの
である。モード制御部17によって読出モードが設定され
ていれば、データラッチ18にラッチされているキーコー
ドがコピーアドレス生成部19に与えられ、そのキーコー
ドに基づく同一のアドレス情報に対して異なる命令をフ
ェッチするために、コピーアドレスが生成され、同じア
ドレス情報が順次データラッチ20にラッチされる。デー
タラッチ20にラッチされたアドレス情報は書込/読出調
停制御部47に与えられるとともに、データラッチ21にラ
ッチされる。
The mode control unit 17 reads a 1k word program loaded in the memory array 49, and responds based on a key code and a dump mode for dumping to determine whether the program data is normal or not. The read mode for reading an instruction from the memory array 49 is set. If the read mode is set by the mode control unit 17, the key code latched by the data latch 18 is given to the copy address generation unit 19, and different instructions are fetched for the same address information based on the key code. To do so, a copy address is generated and the same address information is sequentially latched in the data latch 20. The address information latched in the data latch 20 is given to the write / read arbitration control unit 47 and also latched in the data latch 21.

書込/読出調停制御部47はデータラッチ20から与えられ
た読出情報と前述のごとくデータラッチ46から与えられ
る書込アドレス情報のいずれが早く到達したかを判別
し、読出アドレス情報が先に到達していれば、そのアド
レス情報をデコーダ48に与える。デコーダ48はその読出
アドレス情報をデコードし、メモリアレイ49の所定のア
ドレスを指定する。そして、メモリアレイ49の指定され
たアドレスから入力データパケットに含まれるN♯,G/C
に対応する命令のプログラムデータが読出され、読出デ
ータラッチ40にラッチされる。この読出データは命令フ
ェッチ制御論理部23に与えられるとともに、データラッ
チ41にもラッチされる。
The write / read arbitration control unit 47 determines which of the read information given from the data latch 20 and the write address information given from the data latch 46 arrives earlier, and the read address information arrives first. If so, the address information is given to the decoder 48. The decoder 48 decodes the read address information and designates a predetermined address of the memory array 49. Then, from the designated address of the memory array 49, N #, G / C included in the input data packet
The program data of the instruction corresponding to is read and latched in the read data latch 40. This read data is applied to the instruction fetch control logic unit 23 and also latched in the data latch 41.

一方、データラッチ21にラッチされたキーコードはデー
タラッチ22にラッチされ、そのラッチ出力が命令フェッ
チ制御論理部23に与えられるとともに、データラッチ24
にラッチされる。命令フェッチ制御論理部23はデータラ
ッチ22から与えられたキーコードと読出データラッチ40
にラッチされているメモリアレイ49から読出されたキー
コードが一致しているか否かを比較し、一致しているこ
とを判別すれば、そのキーコードに引き続いてメモリア
レイ49からプログラムデータを再度読出すかどうかのフ
ラグを判定し、読出すべきフラグが立っていれば、デー
タラッチ41にラッチされている読出データが出力ポート
選択部25によって選択され、出力ポート26に出力され
る。また、引き続き読出されたプログラムデータは、出
力ポート選択部25を介して出力ポート27に出力される。
On the other hand, the key code latched by the data latch 21 is latched by the data latch 22, and the latch output is given to the instruction fetch control logic unit 23 and the data latch 24.
Latched on. The instruction fetch control logic unit 23 includes a key code given from the data latch 22 and a read data latch 40.
If the key code read from the memory array 49 latched in the memory array is compared and it is determined that they match, the program data is read again from the memory array 49 following the key code. If the flag to be read is set, the read data latched in the data latch 41 is selected by the output port selection unit 25 and output to the output port 26. Further, the subsequently read program data is output to the output port 27 via the output port selection unit 25.

もし、メモリアレイ49で所定の命令に対するミスヒット
によりハッシュ衝突が生じていた場合には、読出データ
ラッチ40にラッチされている読出キーコードとデータラ
ッチ22にラッチされている入力データパケットに基づく
キーコードとが一致しないので、命令フェッチ制御論理
部23は不一致信号を出力ポート選択部25に与える。出力
ポート選択部25は不一致信号が与えられたことに応じ
て、ハッシュ衝突の生じたことを判別し、データラッチ
41にラッチされている読出データを出力することなく、
データラッチ24にラッチされているキーコードとデータ
ラッチ31にラッチされているオペランドデータを選択し
て出力ポート26に出力する。
If a hash collision occurs in the memory array 49 due to a miss hit for a predetermined instruction, a key based on the read key code latched in the read data latch 40 and the input data packet latched in the data latch 22. Since the codes do not match, the instruction fetch control logic unit 23 gives a mismatch signal to the output port selection unit 25. The output port selection unit 25 determines that a hash collision has occurred in response to the non-coincidence signal, and latches the data.
Without outputting the read data latched in 41,
The key code latched in the data latch 24 and the operand data latched in the data latch 31 are selected and output to the output port 26.

次に、外部プログラムメモリ2によってフェッチされた
次の命令の実行パケットが入出力ポート32に与えられる
と、入出力ポート32はその実行パケットをデータラッチ
34にラッチさせる。
Next, when the execution packet of the next instruction fetched by the external program memory 2 is given to the input / output port 32, the input / output port 32 data latches the execution packet.
Let 34 latch.

データラッチ34にラッチされた実行パケットは経路選択
部35に与えられる。経路選択部35は外部プログラムメモ
リ2からフェッチされた実行パケットであることをミス
ヒットフラグに従って判別すると、その実行パケットを
合流部14に出力し、データラッチ15にラッチさせる。分
岐部16はその実行パケットのキーコードとオペランドデ
ータを分岐し、キーコードをデータラッチ18にラッチさ
せるとともに、オペランドデータをデータラッチ28にラ
ッチさせる。この場合、メモリアレイ49からプログラム
データを読出す必要がないので、キーコードはデータラ
ッチ18,コピーアドレス生成部19,データラッチ20,21,22
および24を素通りして出力ポート選択部25に与えられ、
オペランドデータはデータラッチ28からデータラッチ2
9,30,31を素通りして出力ポート選択部25に与えられ
る。そして、出力ポート選択部25はそのキーコードおよ
びオペランドデータを出力ポート26に出力する。
The execution packet latched by the data latch 34 is given to the route selection unit 35. When the path selection unit 35 determines that the execution packet has been fetched from the external program memory 2 according to the mishit flag, it outputs the execution packet to the merging unit 14 and causes the data latch 15 to latch it. The branching unit 16 branches the key code and operand data of the execution packet, causes the data latch 18 to latch the key code, and causes the data latch 28 to latch the operand data. In this case, since it is not necessary to read the program data from the memory array 49, the key code is the data latch 18, the copy address generator 19, the data latches 20, 21, 22.
And is passed through 24 and given to the output port selection unit 25,
Operand data is from data latch 28 to data latch 2
It is passed through 9, 30, and 31 and given to the output port selection unit 25. Then, the output port selection unit 25 outputs the key code and the operand data to the output port 26.

[発明の効果] 以上のように、この発明によれば、外部からデータフロ
ープログラムが与えられたときには、そのプログラムを
外部プログラム記憶部にアップロードさせ、外部から実
行パケットが与えられたとき、その実行パケットに含ま
れるアドレス情報に対して、異なる次の命令を2回続け
てキャッシュメモリに対してアクセスし、そのフェッチ
された命令を出力し、もし、キャッシュメモリがミスヒ
ットした場合には、外部プログラム記憶部に対して次の
命令とともに被処理データをフェッチして出力すること
により、キャッシュプログラムメモリと外部プログラム
メモリとによって命令フェッチを無駄なく効率良く実行
することができる。
[Effects of the Invention] As described above, according to the present invention, when a data flow program is given from the outside, the program is uploaded to the external program storage unit, and when the execution packet is given from the outside, the execution is executed. For the address information contained in the packet, the next different instruction is accessed twice in succession to the cache memory, and the fetched instruction is output. If the cache memory misses, the external program By fetching and outputting the processed data together with the next instruction to the storage unit, the instruction fetch can be efficiently executed without waste by the cache program memory and the external program memory.

【図面の簡単な説明】[Brief description of drawings]

第1図はこの発明が適用される情報処理装置の概略ブロ
ック図である。第2図は第1図に示した情報処理装置に
よって処理されたプログラムの一例を示す図である。第
3図ないし第10図は第1図に示した情報処理装置によっ
てプログラム処理されるときの実行手順を説明するため
の図である。第11A図および第11B図はこの発明の一実施
例の具体的なブロック図である。 図において、1は情報処理装置、2は外部プログラムメ
モリ、6はプログラム制御部、7は対データ検出部、8
は接点、9はALU、11は入力ポート、12,15,18,20,21,2
2,24,28,29,30,31,33,34,37,38,41,42,43,45,46はデー
タラッチ、13,35は経路選択部、14は合流部、16,36は分
岐部、19,44はコピーアドレス生成部、23は命令フェッ
チ制御論理部、25は出力ポート選択部、26,27は出力ポ
ート、32は入出力ポート、39は書込データラッチ、40は
読出データラッチ、47は書込/読出調停制御部、48はデ
コーダ、49はメモリアレイ、50は書込/読出制御部を示
す。
FIG. 1 is a schematic block diagram of an information processing apparatus to which the present invention is applied. FIG. 2 is a diagram showing an example of a program processed by the information processing apparatus shown in FIG. FIGS. 3 to 10 are diagrams for explaining the execution procedure when the information processing apparatus shown in FIG. 11A and 11B are concrete block diagrams of an embodiment of the present invention. In the figure, 1 is an information processing device, 2 is an external program memory, 6 is a program control unit, 7 is a pair data detection unit, and 8 is a data detection unit.
Is a contact, 9 is an ALU, 11 is an input port, 12,15,18,20,21,2
2,24,28,29,30,31,33,34,37,38,41,42,43,45,46 are data latches, 13,35 are route selectors, 14 are merge sections, 16,36 are Branching unit, 19 and 44 copy address generating unit, 23 instruction fetch control logic unit, 25 output port selecting unit, 26 and 27 output ports, 32 I / O port, 39 write data latch, 40 read A data latch, 47 is a write / read arbitration control unit, 48 is a decoder, 49 is a memory array, and 50 is a write / read control unit.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】データフロープログラムを記憶し、実行パ
ケットに応じて命令フェッチを行なうプログラム制御部
と、前記プログラム制御部から対となるプログラムデー
タおよび被処理データが入力されたことを判別する対デ
ータ検出部と、前記対データ検出部によって対となるプ
ログラムデータおよび被処理データが検出されたことに
応じて、そのプログラムデータおよび被処理データに基
づく演算を実行する演算処理部と、前記プログラム制御
部にプログラムデータを与える外部プログラム記憶部と
を備えた情報処理装置において、 前記プログラム制御部は、 外部から実行パケットまたは前記外部プログラム記憶部
の経路にロードするためのデータフロープログラムが与
えられる入力手段、 前記入力手段に入力されたデータフロープログラムを前
記外部プログラム記憶部に出力するか、または前記外部
プログラム記憶部から読出されたデータフロープログラ
ムを入力するか、あるいは前記外部プログラム記憶部に
よってフェッチされた実行パケットを入力するかをデー
タフロープログラムまたは実行パケットが非同期で入力
されるごとに、それぞれに含まれる情報に基づいて出力
先を制御する入出力制御手段、 前記データフロープログラムを記憶し、実行パケットに
応じて該当するプログラムデータを出力するキャッシュ
メモリ、 前記入力手段または前記入出力制御手段から入力された
パケットに含まれるアドレス情報に従って、前記キャッ
シュメモリをアクセスする第1の制御手段、 前記入力手段または前記入出力制御手段から入力された
パケットに含まれるアドレス情報に対して、少なくとも
2回続けて前記キャッシュメモリをアクセスし、コピー
情報とともに出力する第2の制御手段、および 前記キャッシュメモリでフェッチされた実行パケットお
よび前記入出力制御手段から入力された前記外部プログ
ラム記憶部によってフェッチされた実行パケットを前記
コピー情報に従ってデータが入力されるごとに非同期で
選択的に出力制御する出力制御手段を備え、 前記キャッシュメモリから読出されたデータおよび外部
から入力されたパケットデータとの比較,照合,判定に
基づいて次に実行すべき命令をフェッチすることを特徴
とする、メモリアクセス制御装置。
1. A program control unit that stores a data flow program and fetches instructions in accordance with an execution packet, and paired data that determines that paired program data and processed data have been input from the program control unit. A detection unit, an arithmetic processing unit for executing an arithmetic operation based on the program data and the processed data in response to the detection of the paired program data and the processed data by the paired data detection unit, and the program control unit In an information processing device including an external program storage unit for giving program data to the, the program control unit, an input means to which a data flow program for loading an execution packet or a path of the external program storage unit from the outside is given, Data flow program input to the input means Data flow program to the external program storage unit, to input the data flow program read from the external program storage unit, or to input the execution packet fetched by the external program storage unit Alternatively, each time an execution packet is input asynchronously, input / output control means for controlling the output destination based on the information contained therein, storing the data flow program, and outputting the corresponding program data according to the execution packet Cache memory, first control means for accessing the cache memory according to address information included in the packet input from the input means or the input / output control means, packet input from the input means or the input / output control means Address information contained in On the other hand, second control means for accessing the cache memory at least twice in succession and outputting it together with copy information, and execution packets fetched in the cache memory and the external program storage input from the input / output control means. An output control means for asynchronously and selectively controlling the output of the execution packet fetched by the unit every time data is input according to the copy information, and the data read from the cache memory and the packet data input from the outside. A memory access control device characterized in that an instruction to be executed next is fetched based on the comparison, collation, and judgment of.
JP63013279A 1988-01-22 1988-01-22 Memory access controller Expired - Lifetime JPH0740257B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63013279A JPH0740257B2 (en) 1988-01-22 1988-01-22 Memory access controller
US07/299,772 US5117499A (en) 1988-01-22 1989-01-19 Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63013279A JPH0740257B2 (en) 1988-01-22 1988-01-22 Memory access controller

Publications (2)

Publication Number Publication Date
JPH01188949A JPH01188949A (en) 1989-07-28
JPH0740257B2 true JPH0740257B2 (en) 1995-05-01

Family

ID=11828762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63013279A Expired - Lifetime JPH0740257B2 (en) 1988-01-22 1988-01-22 Memory access controller

Country Status (1)

Country Link
JP (1) JPH0740257B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991010967A1 (en) * 1990-01-09 1991-07-25 Hajime Seki Electronic computer system and operation processor used for the system

Also Published As

Publication number Publication date
JPH01188949A (en) 1989-07-28

Similar Documents

Publication Publication Date Title
US5680631A (en) Data processor with on-chip cache memory and purge controller responsive to external signal for controlling access to the cache memory
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
US5511215A (en) Debugging system for the loading and execution of data flow programs
JP3593346B2 (en) Multiport memory and data processing device accessing the same
JPH0814801B2 (en) Programmable access memory
JPS635777B2 (en)
US5117499A (en) Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs
US5125097A (en) Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path
JPS6250856B2 (en)
JP3738128B2 (en) Data-driven information processing device
US4969117A (en) Chaining and hazard apparatus and method
JP4180115B2 (en) Processing system, program creation method, and processing unit
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
JPS6049340B2 (en) Branch instruction prefetch method
JPH0740257B2 (en) Memory access controller
US20230153110A1 (en) Pre-staged instruction registers for variable length instruction set machine
JP3145545B2 (en) Memory access device
JP3696625B2 (en) Data-driven information processing device
JPH07200406A (en) Cash system
JPH0695349B2 (en) Program execution control method
JPS6116334A (en) data processing equipment
JP2622026B2 (en) Register writing control method in central processing unit
US20010021973A1 (en) Processor
JP2629479B2 (en) Information processing device
JP2798492B2 (en) List vector processing device

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080501

Year of fee payment: 13