JPH0628187A - Data loading method and arithmetic processor using the same - Google Patents

Data loading method and arithmetic processor using the same

Info

Publication number
JPH0628187A
JPH0628187A JP18327692A JP18327692A JPH0628187A JP H0628187 A JPH0628187 A JP H0628187A JP 18327692 A JP18327692 A JP 18327692A JP 18327692 A JP18327692 A JP 18327692A JP H0628187 A JPH0628187 A JP H0628187A
Authority
JP
Japan
Prior art keywords
instruction
load
execution
sequence
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP18327692A
Other languages
Japanese (ja)
Other versions
JP2853460B2 (en
Inventor
Kaoru Uchida
薫 内田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP18327692A priority Critical patent/JP2853460B2/en
Publication of JPH0628187A publication Critical patent/JPH0628187A/en
Application granted granted Critical
Publication of JP2853460B2 publication Critical patent/JP2853460B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PURPOSE:To execute parts of a process, which can be made to overlap, in parallel and to obtain a higher throughput by providing a mechanism which restarts instruction execution when return tokens from a necessary number of memories arrive after the execution of respective load instructions generating readout request tokens on condition that there is an instruction to be executed in synchronism with the end of the loading of plural data from the memories. CONSTITUTION:An arithmetic processing part 10 which performs arithmetic processing while referring to and updating a register group 11 under the control of an instruction sequence control part 14. When data are loaded in a register from an external memory, a token is generated and sent to a memory access controller. The execution of the instruction sequence is interrupted according to a sequence end flag in each instruction. A load control part 21 decides on the tokens returned from the outside whether or not a necessary number of tokens required for target load instruction execution are ready and when so, they are put in the arithmetic processing part 10 through a token memory 13 in turn, so that the previous instruction execution is carried on.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数の命令列を並行し
て処理し、実行命令列内の命令を実行する演算プロセッ
サにおけるデータロード方法及びそれを用いた演算プロ
セッサに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data loading method in an arithmetic processor which processes a plurality of instruction sequences in parallel and executes the instructions in the execution instruction sequence, and an arithmetic processor using the same.

【0002】[0002]

【従来の技術】従来のフオン・ノイマン方式で動作する
演算プロセッサにおいては、命令列を順に実行している
中で、メモリにアクセスする命令があった場合、その命
令を実行し、そのメモリアクセスが終了するまで、演算
部の処理動作は次の命令の処理に進まずにそこで待って
いるという制御方式をとっていた。特にアクセスがメモ
リ読み出し(ロード)動作の場合には読み出した値をそ
れ以降の命令で使用するために、このように待つという
動作は必須となる。
2. Description of the Related Art In a conventional arithmetic processor operating by the Huon-Neumann method, when an instruction to access a memory is issued while executing a sequence of instructions, the instruction is executed and the memory access is executed. Until the processing ends, the processing operation of the arithmetic unit does not proceed to the processing of the next instruction, but waits there. In particular, when the access is a memory read (load) operation, the read value is used in subsequent instructions, and thus such a waiting operation is essential.

【0003】このような制御方式をとると、メモリのア
クセスを起動してからそれを終了するまでにかかる時間
が演算プロセッサの一命令を実行する時間に比べて長い
場合には、演算プロセッサが演算処理を実行せずに無駄
に費やすサイクルが生じることになり、処理性能を低下
させる原因となる。
With such a control method, if the time taken from the activation of the memory access to its termination is longer than the time required to execute one instruction of the arithmetic processor, the arithmetic processor executes the arithmetic operation. This results in a wasteful cycle without executing the process, which causes a decrease in the processing performance.

【0004】それを解決するために、本出願人出願の特
願平04−108071に記載の発明ではメモリをアク
セスするロード命令実行時に実行命令列を切り替え、メ
モリアクセスと他の命令列実行を並列に行なうことによ
り処理性能を高く保つことを可能にしている。
In order to solve this, in the invention described in Japanese Patent Application No. 04-108071 filed by the present applicant, the execution instruction sequence is switched at the time of executing a load instruction for accessing the memory, and the memory access and the execution of another instruction sequence are performed in parallel. By doing so, it is possible to maintain high processing performance.

【0005】[0005]

【発明が解決しようとする課題】上述の方式では、メモ
リをアクセスするロード命令実行時に実行命令列を切り
替え、メモリアクセスと他の命令列実行を並列に行なう
ことにより処理性能を高く保つことを可能にしている
が、高速化のために命令キャッシュを使用している場合
には、命令列の切り替えにより命令キャッシュのミスの
確率が高くなり、実行命令フエッチ速度が低下する。
In the above-described method, it is possible to maintain high processing performance by switching execution instruction sequences when executing a load instruction for accessing a memory and performing memory access and execution of another instruction sequence in parallel. However, when the instruction cache is used for speeding up, the probability of instruction cache miss increases due to the switching of the instruction sequence, and the execution instruction fetch speed decreases.

【0006】また、特に並列に実行可能な命令列の数が
少ない場合には、たとえ前述の特願平04−10807
1記載の発明を利用しても、連続実行される部分が短か
いと、トークンメモリが空の場合にそれだけ演算処理部
がアイドルであるサイクルが多くなる。
Further, particularly when the number of instruction sequences that can be executed in parallel is small, even if the above-mentioned Japanese Patent Application No. 04-10807 is used.
Even if the invention described in 1 is used, if the portion that is continuously executed is short, the number of cycles in which the arithmetic processing unit is idle increases when the token memory is empty.

【0007】例えば、 データAをレジスタにロードするためのアドレス計算 データAのロード (「ロード」とはローカルまたはリモートのメモリから
データをフエッチし演算プロセッサの指定されたレジス
タへ移す動作を指す) データBをレジスタにロードするためのアドレス計算 データBのロード データAとBを使用する演算 という処理の流れがあったとする。
For example, address calculation for loading data A into a register Loading data A (“load” refers to the operation of fetching data from a local or remote memory and moving it to a specified register of the arithmetic processor) Data Address calculation for loading B into register Load data B Assume that there is a processing flow called an operation using data A and B.

【0008】上で提案した方式でもトークンメモリが空
の場合には、この命令列に関する処理の時間経過は図6
(A)のように図示できる(図で「Aのロード」の部分
はメモリより戻ってからトークンメモリに並び、それを
出て演算処理部に入るまでの時間を含んでいる)。
Even if the token memory is empty even with the method proposed above, the time lapse of processing relating to this instruction sequence is shown in FIG.
It can be illustrated as (A) (in the figure, the "load of A" portion includes the time from returning from the memory to arranging in the token memory and exiting from it to enter the arithmetic processing unit).

【0009】このとき、「データAのロードの動作」と
「データBをレジスタにロードするためのアドレス計
算」とは本来は並列に実行できるが、制御の関係で直列
に処理されることになり、この命令列処理全体の始まっ
てから終わるまでにかかる時間が長くなり、特に、他に
十分な数の並列に実行可能な命令列がない場合には、
「Aのロード」の間、他に進める処理がなく、演算部の
稼働率が下る可能性がある、という問題が生じる。
At this time, the "data A loading operation" and the "address calculation for loading the data B into the register" can be originally executed in parallel, but they are processed in series because of control. , It takes a long time from the beginning to the end of the whole processing of this instruction sequence, especially when there is not enough other instruction sequence that can be executed in parallel.
During the “load of A”, there is a problem that the operation rate of the arithmetic unit may decrease because there is no other process to proceed.

【0010】そこで、一つの命令列のなかで中断動作を
起こさずに連続的に実行される部分(部分命令列)であ
るシーケンス長をできるだけ長くするようにして一つの
命令列の実行を継続し続けた方が、処理高速化には好ま
しい。言い換えれば命令列のうち中断する必要の無いと
ころでは中断せずに、行けるところまで同じ命令列の実
行を続行してから、どうしても中断が必要なところで中
断動作をすることが、より望ましいということになる。
Therefore, the execution of one instruction sequence is continued by increasing the sequence length, which is a portion (partial instruction sequence) that is continuously executed in one instruction sequence without causing an interruption operation. Continuing is preferable for speeding up the processing. In other words, it is more desirable to continue the execution of the same instruction sequence to the point where it can be reached without interrupting the portion of the instruction sequence that does not need to be interrupted, and then perform the interrupting operation where it is absolutely necessary to interrupt. Become.

【0011】すなわち、もし図6(B)のように「Aの
ロード」「Bのアドレス計算」を並列して実行できれば
この問題を緩和することができることになるが、まだ本
来並列に実行できる「Aのロード」と「Bのロード」を
オーバーラップさせることができないため上の問題は残
る。すなわち図6(C)のような処理ができることが望
ましい。
That is, if the "load of A" and the "address calculation of B" can be executed in parallel as shown in FIG. 6B, this problem can be alleviated. The above problem remains because the "load of A" and the "load of B" cannot be overlapped. That is, it is desirable that the processing as shown in FIG.

【0012】本発明の目的は、このような問題点を解決
し、より高い処理性能を実現する命令列切り替え方法及
びそれを用いた演算プロセッサを提供することにある。
An object of the present invention is to solve the above problems and to provide an instruction sequence switching method for realizing higher processing performance and an arithmetic processor using the same.

【0013】[0013]

【課題を解決するための手段】第1の発明のデータロー
ド方法は、並行して実行可能な命令列をあらかじめ複数
用意しておきそれらを切り替えながらそのうちから1つ
を実行命令列として選択しその実行命令列中の命令を順
に実行する演算プロセッサで第1および第2の2個のデ
ータのロード動作の終了後に前記2個のデータを使用し
て実行すべきターゲット命令を含む第1の命令列を実行
中に前記2個のデータをメモリから前記演算プロセッサ
内へロードするデータロード方法において、前記メモリ
から前記第1のデータをロードする第1のロード命令実
行時には前記第1のデータを使用する前記ターゲット命
令のアドレスを含む第1のトークンを外部に発行してメ
モリアクセス動作を起動すると共に前記第1の命令列の
実行を続行し、ついで前記メモリから前記第2のデータ
をロードする第2のロード命令実行時には前記第2のデ
ータを使用する前記ターゲット命令のアドレスを含む第
2のトークンを外部に発行してメモリアクセス動作を起
動すると共に前記第1の命令列の実行を続行し、その後
に前記ターゲット命令の直前で前記第1の命令列の実行
を中断して他の命令列実行に移り、前記メモリアクセス
動作を終了して前記ターゲット命令に必要なデータを有
する前記演算プロセッサに入力する入力トークンの数を
計数し、前記計数の結果が2になったときには前記第1
の命令列の実行を前記入力トークンに含まれる前記ター
ゲット命令のアドレスにより前記ターゲット命令から再
開することを特徴としている。
According to the data loading method of the first invention, a plurality of instruction sequences that can be executed in parallel are prepared in advance, and one of them is selected as an execution instruction sequence while switching them. A first instruction sequence including a target instruction to be executed using the two data after the load operation of the first and second two data is completed in an arithmetic processor that sequentially executes the instructions in the execution instruction sequence A data loading method for loading the two pieces of data from a memory into the arithmetic processor during execution of the first data, the first data is used when a first load instruction for loading the first data from the memory is executed. Issuing a first token including the address of the target instruction to the outside to activate a memory access operation and continue execution of the first instruction sequence; At the time of executing a second load instruction that loads the second data from the memory, a second token including the address of the target instruction that uses the second data is externally issued to activate the memory access operation. Together with the execution of the first instruction sequence, after that, immediately before the target instruction, execution of the first instruction sequence is interrupted and execution of another instruction sequence is performed, and the memory access operation is terminated and the The number of input tokens input to the arithmetic processor having the data necessary for the target instruction is counted, and when the result of the counting is 2, the first
The execution of the instruction sequence is restarted from the target instruction according to the address of the target instruction included in the input token.

【0014】第2の発明の演算プロセッサは、並行して
実行可能な命令列をあらかじめ複数用意しておきそれら
を切り替えながらそのうちから1つを実行命令列として
選択しその実行命令列中の命令を順に実行する演算プロ
セッサにおいて、1つの命令列内の命令を順に実行する
演算処理部と、外部から入力されたトークンを保持し前
記演算処理部に供給するトークンメモリと、前記演算処
理部からアクセスされるデータを保持するレジスタ群
と、外部で行なう動作の記述とそのとき実行中の命令コ
ード中に記述された命令列実行を中断した後に再開する
べき再開命令アドレスとを含むトークンの入出力情報を
管理しまたその入力数を計数するとともに外部から前記
演算プロセッサに戻ったトークンをトークンメモリに保
持するのに先立ってトークン中のメモリ読み出しデータ
をレジスタ群中のレジスタに書き込むロード制御部と、
各ロード命令には前記再開命令アドレスと再開に必要な
到着トークン数である発火必要数を有し各命令について
はその命令実行後に直後の命令を続行実行すか否かを示
したフラグを有する命令群よりなるプログラムを格納し
前記演算処理部へ命令列を供給するとともに前記各部の
動作を制御する命令列制御部とを有することを特徴とし
ている。
In the arithmetic processor of the second invention, a plurality of instruction sequences that can be executed in parallel are prepared in advance, one of them is selected as an execution instruction sequence while switching them, and the instructions in the execution instruction sequence are selected. In an arithmetic processor that executes sequentially, an arithmetic processing unit that sequentially executes instructions in one instruction sequence, a token memory that holds a token input from the outside and supplies the token to the arithmetic processing unit, and an arithmetic processing unit that is accessed from the arithmetic processing unit. I / O information of the token including a register group for holding data, a description of an operation performed externally, and a restart instruction address to be resumed after interrupting the instruction sequence execution described in the instruction code being executed at that time. Before managing and counting the number of inputs and holding the token returned from the outside to the arithmetic processor in the token memory A load control unit that writes the memory read data in the token to register in the register group,
Each load instruction has the restart instruction address and the required number of firings, which is the number of arrival tokens required for restart, and for each instruction, an instruction group having a flag indicating whether or not the instruction immediately after the instruction is executed is continued. And a command sequence control unit for controlling the operation of each unit while storing a program including the program and supplying a command sequence to the arithmetic processing unit.

【0015】第3の発明の方法は、第1の発明に加え
て、第1の命令列中にn個のデータのロード動作の終了
後に前記n個のデータを使用して実行すべきターゲット
命令を含んでいるときには、前記n個のデータのそれぞ
れをロードするロード命令の実行時にそれぞれ前記ター
ゲット命令のアドレスを含むトークンを外部に発行して
メモリアクセス動作を起動すると共に前記第1の命令列
の実行を続行し、その後に前記ターゲット命令の直前で
前記第1の命令列の実行を中断して他の命令列実行に移
り、前記メモリアクセス動作を終了して前記ターゲット
命令に必要なデータを有する入力トークンの数を計数
し、前記計数の結果がnになったときには前記第1の命
令列の実行を前記入力トークンに含まれる前記ターゲッ
ト命令のアドレスにより前記ターゲット命令から再開す
ることを特徴としている。
The method of the third invention is, in addition to the method of the first invention, a target instruction to be executed by using the n data after completion of a load operation of n data in the first instruction sequence. When the load instruction for loading each of the n pieces of data is executed, a token including the address of the target instruction is issued to the outside to activate the memory access operation, and Execution is continued, and then, immediately before the target instruction, the execution of the first instruction sequence is interrupted to move to another instruction sequence execution, the memory access operation is terminated, and the target instruction has data. The number of input tokens is counted, and when the result of the counting is n, the execution of the first instruction sequence is executed according to the address of the target instruction included in the input token. It is characterized by resuming from the target instruction.

【0016】第4の発明の方法は、第3の発明に加え
て、ロード命令実行時にはそのターゲット命令の代わり
にロード命令とターゲット命令のあいだのいずれかの命
令(これを再開命令と呼ぶ)のアドレスを含むトークン
を外部に発行してメモリアクセス動作を起動し、その後
前記再開命令の直前でその命令列の実行を中断し、前記
再開命令のアドレスを持つトークンがあらかじめ定めら
れた回数入力されたときに前記トークン中に含まれるア
ドレスにより前記再開命令から再開可能とすることを特
徴としている。
In addition to the third aspect of the invention, the method of the fourth aspect of the present invention, when executing a load instruction, replaces the target instruction with any one of the instructions between the load instruction and the target instruction (this is called a restart instruction). The token including the address is issued to the outside to activate the memory access operation, and then the execution of the instruction sequence is interrupted immediately before the restart instruction, and the token having the address of the restart instruction is input a predetermined number of times. It is characterized in that it is possible to restart from the restart instruction by an address contained in the token.

【0017】第5の発明の方法は、第4の発明に加え
て、命令列の中に、命令実行に2個のデータを必要とす
る命令に対して複数のロード命令とそれぞれのターゲッ
ト命令が存在する場合に、全てのロード命令について、
第1のロード命令実行時には、前記第1のロード命令と
そのターゲットである第1のターゲット命令との間に他
のロード命令がないときには前記第1のロード命令は前
記第1のターゲット命令を再開命令とし、他のロード命
令が存在しかつ前記第1のロード命令に最も近いロード
命令が別の第2のターゲット命令を持つ第2のロード命
令であるときには前記第1のロード命令は前記第2のロ
ード命令を再開命令とし、他のロード命令が存在しかつ
前記第1のロード命令に最も近いロード命令が同じ前記
第1のターゲット命令を持つ第3のロード命令であると
きには前記第1のロード命令は前記第3のロード命令の
再開命令と同じ命令をその再開命令とし、全ての命令に
ついて、ある命令がいずれかのロード命令の再開命令に
なっているときにはその直前で前記ある命令の属する命
令列の実行を中断し、前記ある命令をその再開命令とす
る前記ロード命令が2個あるときにはその再開命令を持
つトークンが2個到着したときに前記ある命令からそれ
の属する命令列を再開可能とすることを特徴としてい
る。
According to the method of the fifth invention, in addition to the fourth invention, a plurality of load instructions and respective target instructions are included in an instruction sequence for an instruction that requires two data for instruction execution. If present, for all load instructions,
During execution of the first load instruction, the first load instruction resumes the first target instruction when there is no other load instruction between the first load instruction and the target first target instruction. When the other load instruction exists and the load instruction closest to the first load instruction is a second load instruction having another second target instruction, the first load instruction is the second load instruction. Load instruction is a restart instruction, and when there is another load instruction and the load instruction closest to the first load instruction is the third load instruction having the same first target instruction, the first load instruction For the instruction, the same instruction as the restart instruction of the third load instruction is used as the restart instruction, and when all the instructions are the restart instructions of any load instruction, Immediately before that, execution of the instruction sequence to which the certain instruction belongs is interrupted, and when there are two load instructions that use the certain instruction as the restart instruction, when two tokens having the restart instruction arrive, The feature is that the instruction sequence to which it belongs can be restarted.

【0018】[0018]

【作用】第1および第2の発明では、ロード命令に対応
するターゲット命令のアドレスをあらかじめ調べてお
き、ターゲット命令のアドレスを持つトークンを2つ発
行した後にターゲット命令直前で命令列実行を中断し、
2つのトークンが入力されたことを発見することにより
命令列実行を再開する。
In the first and second inventions, the address of the target instruction corresponding to the load instruction is checked in advance, and after issuing two tokens having the address of the target instruction, the execution of the instruction sequence is suspended immediately before the target instruction. ,
The instruction sequence execution is restarted by discovering that two tokens have been input.

【0019】第3の発明では、ターゲット命令実行に必
要なデータが2つより多いときも再開時にそれを必要数
まで計数することにより同様な動作を行なう。
According to the third aspect of the invention, even when the data required for executing the target instruction is more than two, the same operation is performed by counting the necessary number at the time of restart.

【0020】第4の発明では、ロード命令とターゲット
命令との間に第3の発明の方法を実施するうえでの障害
になる命令があってもコンパイル時に静的にこれを検出
してその命令のアドレスを再開アドレスとするように設
定することで同様な動作を行なう。
In the fourth invention, even if there is an instruction which is an obstacle in implementing the method of the third invention between the load instruction and the target instruction, this is statically detected at compile time, and the instruction is detected. The same operation is performed by setting the address of 1 as the restart address.

【0021】第5の発明では、2つ以上のロード命令と
ターゲット命令の組が干渉しあっていても中断後の再開
アドレスを干渉を解決するように設定することにより同
様な動作を行なう。
According to the fifth aspect of the invention, even if a set of two or more load instructions and a target instruction interfere with each other, the restart address after interruption is set so as to resolve the interference, and the same operation is performed.

【0022】[0022]

【実施例】まず第1の発明の方法を使用する第2の発明
の装置の実施例について、図面を用いて説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS First, an embodiment of the apparatus of the second invention using the method of the first invention will be described with reference to the drawings.

【0023】図1は第2の発明の演算プロセッサの一実
施例の基本構成図、図2は本演算プロセッサで使用され
るトークンの形式を示す形式図、図3は本演算プロセッ
サで使用される命令の形式を示す形式図である。
FIG. 1 is a basic configuration diagram of an embodiment of an arithmetic processor of the second invention, FIG. 2 is a format diagram showing a format of a token used in this arithmetic processor, and FIG. 3 is used in this arithmetic processor. It is a format diagram which shows the format of an instruction.

【0024】図1の演算プロセッサ1は、命令列が与え
られたときに内部に持つプログラムカウンタの値を1つ
ずつ増やしながらそれで参照される命令列内の命令に従
った演算処理を行なう演算処理部10と、演算処理部1
0から参照・更新される複数のレジスタの集合であるレ
ジスタ群11と、演算処理部10内の命令とプログラム
カウンタの値からトークンを生成し、これを図示されて
いないメモリアクセスコントローラに対して発行するト
ークン生成部12と、メモリアクセスコントローラから
ロード制御部21を介して入力されるトークンをFIF
O的に順に保持するトークンメモリ13と、ロード制御
部21と、トークンメモリ13と演算処理部10とトー
クン生成部12の動作を制御し、またプログラムを保持
するプログラムメモリを内部に持つ命令列制御部14と
から構成されている。レジスタ群11の中は、グローバ
ルレジスタフレームと、R個のローカルレジスタフレー
ムとに分かれている。Rは2以上の整数、例えば16と
する。
The arithmetic processor 1 of FIG. 1 performs arithmetic processing in accordance with an instruction in the instruction sequence referred to by incrementing the value of the internal program counter by one when the instruction sequence is given. Unit 10 and arithmetic processing unit 1
A token is generated from a register group 11 which is a set of a plurality of registers referenced and updated from 0, an instruction in the arithmetic processing unit 10 and a value of a program counter, and is issued to a memory access controller (not shown). And the token input from the memory access controller via the load control unit 21 to the FIFO.
An instruction sequence control that controls the operations of the token memory 13 that sequentially holds the O, the load control unit 21, the token memory 13, the arithmetic processing unit 10, and the token generation unit 12 and that has a program memory that internally holds a program And part 14. The register group 11 is divided into a global register frame and R local register frames. R is an integer of 2 or more, for example, 16.

【0025】図4は入力トークンテーブル20と入力管
理部25からなるロード制御部21の構成を示す。入力
トークンテーブル20はR行からなり、各行は発火必要
数22と既到着数23のフイールドを持つ。既到着数2
3は″0″に初期化されている。
FIG. 4 shows the configuration of the load control unit 21 including the input token table 20 and the input management unit 25. The input token table 20 consists of R rows, and each row has a field of the required number of firing 22 and the number of already arrived 23. Number of arrivals 2
3 is initialized to "0".

【0026】このような演算処理プロセッサ1を用いて
演算処理を行なう場合、次のような手順で進める。
When performing arithmetic processing using such arithmetic processor 1, the procedure is as follows.

【0027】まず外部から信号線90を介して命令列制
御部14に対して、全体の動作を記述したプログラム
を、ついでそれぞれが実行開始アドレスを持ったトーク
ンをいくつか与える。
First, from the outside, a program describing the entire operation is given to the instruction sequence control unit 14 via the signal line 90, and then some tokens each having an execution start address are given.

【0028】同時に与えられ、また演算プロセッサ1内
外に存在できるトークン数の上限はレジスタ群11中の
ローカルレジスタフレーム数Rである。初期起動時にト
ークン数がこれを越さない様にプログラムコード作成時
にコンパイラで調整される。これにより同時にシステム
内に存在する実行可能な命令列数はR個以下となる。プ
ログラム起動時にR個以下のトークンが外部から与えら
れると、命令列制御部14はそれぞれのトークンに異な
るフレーム識別子を与える。フレーム識別子はR個ある
ローカルレジスタフレームのうちそのトークンが表現す
る命令列がどれを独占的に使用するかを識別するもので
ある。
The upper limit of the number of tokens which are given at the same time and can exist inside and outside the arithmetic processor 1 is the number R of local register frames in the register group 11. At the time of initial startup, the number of tokens is adjusted by the compiler when creating the program code so that it does not exceed this number. As a result, the number of executable instruction sequences existing in the system at the same time becomes R or less. When R or less tokens are given from the outside when the program is started, the instruction sequence control unit 14 gives different frame identifiers to the respective tokens. The frame identifier identifies which of the R local register frames the instruction string represented by the token exclusively uses.

【0029】命令列制御部14内のプログラムは一連の
命令の連続であり、実行開始アドレスはその内の1つの
アドレスである。以下、プログラム内の、実行開始アド
レスからある終了点までの部分列を命令列と呼ぶ。
The program in the instruction sequence controller 14 is a series of a series of instructions, and the execution start address is one of them. Hereinafter, a subsequence from the execution start address to a certain end point in the program is called an instruction sequence.

【0030】トークンはすべてトークンメモリ13内に
おかれる。トークンメモリ13内のトークンは図2の形
式50に示されており、実行開始アドレスのフイールド
51を持つ。このとき、フイールド60は使用しない
し、またフラグ52の値は″0″である。前述のフレー
ム識別子はフイールド63に書き込まれる。また外から
トークンメモリ13へ与えたトークンの数を命令列制御
部14内のトークン数カウンタにセットする。
All tokens are stored in the token memory 13. The token in token memory 13 is shown in format 50 of FIG. 2 and has a field 51 of execution start addresses. At this time, the field 60 is not used, and the value of the flag 52 is "0". The aforementioned frame identifier is written in the field 63. Further, the number of tokens given from the outside to the token memory 13 is set in the token number counter in the instruction sequence control unit 14.

【0031】外部から命令列制御部14に対して処理開
始信号が与えられると、トークンメモリ13内の先頭の
トークンが演算処理部10に送られ、そのトークンのフ
ラグ52の値が″0″であるので、演算処理部10では
そのトークン内の実行開始アドレス51の値がプログラ
ムカウンタに設定される。同時にそのフレーム識別子6
3の値が演算処理部10の中のフレームレジスタにセッ
トされる。これを以下命令列フエッチ動作と呼ぶ。その
後、その命令列の実行が開始される。
When a processing start signal is given to the instruction sequence control unit 14 from the outside, the first token in the token memory 13 is sent to the arithmetic processing unit 10, and the value of the flag 52 of the token is "0". Therefore, in the arithmetic processing unit 10, the value of the execution start address 51 in the token is set in the program counter. At the same time, the frame identifier 6
The value of 3 is set in the frame register in the arithmetic processing unit 10. This is hereinafter referred to as an instruction string fetch operation. Then, the execution of the instruction sequence is started.

【0032】演算処理部10の演算処理では、まずプロ
グラムカウンタの値を命令列制御部14に送り、それを
アドレスとしてそれで示される命令列制御部14内のプ
ログラムメモリ中の命令が演算処理部10にフエッチさ
れる。これを命令フエッチ動作と呼ぶ。
In the arithmetic processing of the arithmetic processing unit 10, first, the value of the program counter is sent to the instruction sequence control unit 14, and the instruction in the program memory in the instruction sequence control unit 14 indicated by it is used as an address. To be fucked. This is called an instruction fetch operation.

【0033】ついで演算処理部10では、フエッチされ
た命令に記述された命令の実行を行なった後に、命令の
シーケンス終了フラグ(後述の図3の命令形式の参照数
字65)が″0″であればプログラムカウンタの値を1
つインクリメントして次の命令の実行へ進む。命令のシ
ーケンス終了フラグが″1″であれば、後で述べる命令
列終了命令が実行された場合と同様に、その命令列の実
行を終了し別の命令列フエッチ動作を行なう。以上が命
令実行の基本動作である。
Next, in the arithmetic processing unit 10, after executing the instruction described in the fetched instruction, if the sequence end flag of the instruction (reference numeral 65 of the instruction format in FIG. 3 described later) is "0". If the value of the program counter is 1
Increments by one and proceeds to execution of the next instruction. If the sequence end flag of the instruction is "1", the execution of the instruction sequence is terminated and another instruction sequence fetch operation is performed, as in the case where the instruction sequence end instruction described later is executed. The above is the basic operation of instruction execution.

【0034】命令フエッチで得られる命令の種類として
は、レジスタ群11内のレジスタの値を最大2つ参照し
て加減乗除などの演算を行ない結果を指定されたレジス
タに書き込むALU演算命令、外部メモリ上のデータを
そのアドレスを指定することにより読み出してレジスタ
にロードするロード命令、レジスタ上のデータを外部メ
モリの指定された場所へ書き出すストア命令、プログラ
ムカウンタの値を命令で指示された値だけ変化させるジ
ャンプ命令およびブランチ命令、命令列の終わりで命令
列実行を終了する命令列終了命令、がある。
As the types of instructions obtained by the instruction fetch, an ALU operation instruction for writing an operation result such as addition, subtraction, multiplication, division, etc. to a designated register by referring to a maximum of two register values in the register group 11 and an external memory A load instruction that reads the above data by specifying its address and loads it into a register, a store instruction that writes the data in the register to a specified location in external memory, and changes the value of the program counter by the value specified by the instruction There are a jump instruction and a branch instruction to be performed, and an instruction sequence end instruction to terminate the instruction sequence execution at the end of the instruction sequence.

【0035】ALU演算命令、ロード命令、ストア命令
を実行する場合、命令は、図3の参照数字80、70お
よび75の形式を使用するが、この中のレジスタ識別子
は直接にレジスタを識別するためではなく、その命令列
に割り当てられたフレーム内での識別に利用される。レ
ジスタ識別子はまずそれがグローバルフレームのレジス
タを指すかローカルフレームのレジスタを指すかを示
し、前者である場合は残りの部分がその内の一つをアド
レスする。後者である場合には、演算処理部10内フレ
ームレジスタに保持されているフレーム識別子で1つの
フレームが決まり、命令の中のレジスタ識別子でその中
の一つのレジスタがアドレスされる。
When executing ALU operation instructions, load instructions, and store instructions, the instructions use the format of reference numerals 80, 70 and 75 in FIG. 3, but the register identifiers therein directly identify the registers. Instead, it is used for identification within the frame assigned to the instruction sequence. The register identifier first indicates whether it points to a global frame register or a local frame register, and if the former, the rest address one of them. In the latter case, one frame is determined by the frame identifier held in the frame register in the arithmetic processing unit 10, and one register is addressed by the register identifier in the instruction.

【0036】命令フエッチで得られた命令がALU演算
命令のときは上述の基本動作を行なう。ALU演算命令
の形式は図3の参照数字80に示す。読みレジスタ識別
子A83と読みレジスタ識別子B84が演算に用いるデ
ータの入ったレジスタを、書き込みレジスタ識別子82
が結果を格納すべきレジスタを示す。
When the instruction obtained by the instruction fetch is an ALU operation instruction, the above basic operation is performed. The format of the ALU operation instruction is shown by reference numeral 80 in FIG. The register containing the data used by the read register identifier A83 and the read register identifier B84 for the calculation is designated as the write register identifier 82.
Indicates the register in which the result should be stored.

【0037】命令フエッチで得られた命令がロード命令
の場合には、命令列制御部14からトークン生成部12
に対しての指示により、トークン生成部12で図2の形
式55に示す読み出し要求トークンが生成される。
When the instruction obtained by the instruction fetch is a load instruction, the instruction sequence control unit 14 to the token generation unit 12
2 is generated, the token generation unit 12 generates the read request token shown in the format 55 of FIG.

【0038】ロード命令の形式を図3の参照数字70に
示す。ロード命令の形式70はロード命令を示す命令コ
ード71と、メモリ読み出しを行なう読み出しアドレス
73と、読み出したデータを書き込むレジスタの識別子
72と、ロード命令実行により命令列実行を中断した後
に再開する命令であるターゲット命令のプログラムメモ
リ内のアドレス66と、ターゲット命令アドレスから命
令列実行を再開するために必要な入力トークン数を保持
する発火必要数67を有しており、この発火必要数67
には第1の発明の方法を実現するための演算プロセッサ
では″1″または″2″を、第3の発明以下の方法を実
現するための演算プロセッサではプログラムで決まる数
nを入れる。
The format of the load instruction is shown at reference numeral 70 in FIG. The format 70 of the load instruction is an instruction code 71 indicating the load instruction, a read address 73 for reading the memory, an identifier 72 of a register for writing the read data, and an instruction for restarting after interrupting the instruction sequence execution by executing the load instruction. It has an address 66 in the program memory of a certain target instruction and a required firing number 67 for holding the number of input tokens required to restart the instruction sequence execution from the target instruction address. This required firing number 67
In the arithmetic processor for realizing the method of the first invention, "1" or "2" is inserted, and in the arithmetic processor for realizing the method of the third invention or later, the number n determined by the program is entered.

【0039】読み出し要求トークンの形式55はそのと
きのロード命令70内のターゲット命令アドレス66の
値を実行開始アドレス58に、ロード命令70中の外部
メモリのアクセスすべき読み出しアドレス73をアクセ
スアドレス57に、ロード命令70中のレジスタ識別子
72をレジスタ識別子61に、メモリアクセスコントロ
ーラで行なう動作としてメモリ読み出しを指示するコー
ドをオペレーションコード56に持つ。またフイールド
64には演算処理部10内に保持されたフレーム識別子
が書き込まれる。このときフイールド59は使用しな
い。
In the read request token format 55, the value of the target instruction address 66 in the load instruction 70 at that time is used as the execution start address 58, and the read address 73 of the external memory in the load instruction 70 to be accessed is used as the access address 57. The register identifier 72 in the load instruction 70 is used as the register identifier 61, and the operation code 56 has a code for instructing memory read as an operation performed by the memory access controller. Further, the frame identifier held in the arithmetic processing unit 10 is written in the field 64. At this time, the field 59 is not used.

【0040】ロード命令実行時、この読み出し要求トー
クンは生成後信号線91を介してメモリアクセスコント
ローラへ送られる。同時に命令制御部14から信号線9
3,94を介して、ロード制御部21内の入力トークン
テーブル20(図4参照)の、そのときの演算処理部1
0内に保持されたフレーム識別子でアドレスされる行の
発火必要数のフイールド22に、ロード命令70(図3
参照)の発火必要数67のフイールドの値が書き込まれ
る。
When the load instruction is executed, this read request token is sent to the memory access controller via the signal line 91 after generation. At the same time, the command controller 14 sends the signal line 9
The operation processing unit 1 of the input token table 20 (see FIG. 4) in the load control unit 21 at that time via 3, 94.
The load instruction 70 (see FIG. 3) is loaded into the field 22 of the required number of firing of the row addressed by the frame identifier held in 0.
The field value of the required number of firings 67 in (see) is written.

【0041】命令フエッチで得られた命令がレジスタ上
のデータを外部メモリの指定された場所へ書き出すスト
ア命令であった場合には、命令列制御部14からトーク
ン生成部12に対しての指示により、トークン生成部1
2で図2の形式55に示す書き込み要求トークンが生成
される。
When the instruction obtained by the instruction fetch is the store instruction for writing the data in the register to the specified location in the external memory, the instruction sequence control unit 14 instructs the token generation unit 12 to execute the instruction. , Token generator 1
At 2, the write request token shown in format 55 of FIG. 2 is generated.

【0042】ストア命令の形式を図3の参照数字75に
示す。形式75はストア命令を示す命令コード76と、
メモリ書き込みを行なう書き込みアドレス77と、書き
込むデータを読み出すレジスタの識別子78とを有す
る。
The format of the store instruction is shown by reference numeral 75 in FIG. The format 75 is an instruction code 76 indicating a store instruction,
It has a write address 77 for writing to the memory and a register identifier 78 for reading the data to be written.

【0043】書き込み要求トークンの形式55はストア
命令75中の外部メモリの書き込みアドレス77をアク
セスアドレス57に、メモリアクセスコントローラで行
なう動作としてメモリ書き込みを指示するコードをオペ
レーションコード56に、ストア命令のフイールド78
で指定されたレジスタから読み出した書き込むべきデー
タをフイールド59に持つ。このときフイールド58、
61、64は使用しない。この書き込き要求トークンは
生成後信号線91を介してメモリアクセスコントローラ
へ送られる。
The format 55 of the write request token is such that the write address 77 of the external memory in the store instruction 75 is the access address 57, the code for instructing the memory write as the operation performed by the memory access controller is the operation code 56, and the field of the store instruction is the field. 78
The field 59 has the data to be written, which is read from the register designated by. Field 58,
61 and 64 are not used. This write request token is sent to the memory access controller via the signal line 91 after generation.

【0044】命令フエッチで得られた命令がプログラム
カウンタの値を命令で指示された値だけ変化させるジャ
ンプ命令であった場合には、プログラムカウンタに命令
中で指定された値が加算され、そのアドレスから処理が
続行される。またこれに類似したブランチ命令では、直
前の演算結果に応じてジャンプするか直後の命令の実行
にそのまま進むかを決定する。
If the instruction obtained by the instruction fetch is a jump instruction that changes the value of the program counter by the value indicated by the instruction, the value specified in the instruction is added to the program counter and its address is added. The process continues from. Also, for a branch instruction similar to this, it is determined whether to jump or to proceed directly to the execution of the instruction immediately after, depending on the immediately preceding calculation result.

【0045】命令フエッチで得られた命令が命令列の終
わりで命令列実行を終了する命令列終了命令であった場
合、および他の命令でそのシーケンス終了フラグ65
が″1″であった場合には、次の様な動作を行なう。
When the instruction obtained by the instruction fetch is the instruction sequence end instruction which terminates the instruction sequence execution at the end of the instruction sequence, and the sequence end flag 65 in another instruction.
If is "1", the following operation is performed.

【0046】命令列制御部14内のトークン数カウンタ
の値を1つデクリメントする。デクリメント後これが0
になったら信号線90を介して外部にプログラム実行終
了を知らせ、演算プロセッサ1は停止する。0でなけれ
ば、その後命令列制御部14の制御により命令列フエッ
チ動作が行なわれ、フエッチされた命令列の実行が開始
される。トークンメモリ13中にトークンが1つも存在
しない場合には演算処理部10はトークンが得られるま
で待ち続ける。
The value of the token number counter in the instruction string control unit 14 is decremented by one. After decrement this is 0
Then, the end of the program execution is notified to the outside through the signal line 90, and the arithmetic processor 1 stops. If it is not 0, then the instruction sequence control unit 14 controls the instruction sequence fetch operation to start the execution of the fetched instruction sequence. If no token exists in the token memory 13, the arithmetic processing unit 10 continues to wait until a token is obtained.

【0047】メモリアクセスコントローラは読み出し要
求トークン(形式55)を受け取ると、このオペレーシ
ョンコード56に従ってアクセスアドレス57で示され
る番地からデータを読み出し、図2の形式50のトーク
ンを生成して演算プロセッサ1に対して送る。このとき
フイールド51には形式55のフイールド58の値を、
フイールド60には形式55のフイールド61の値を、
データ53にはメモリから読み出した値を、フラグ52
には″1″を与える。また受け取ったトークンのフレー
ム識別子64の値をそのまま戻りトークンの対応するフ
イールド63に埋め込む。
When the memory access controller receives the read request token (format 55), it reads data from the address indicated by the access address 57 according to the operation code 56, generates the token of format 50 in FIG. Send to. At this time, the value of the field 58 of the format 55 for the field 51,
For field 60, the value of field 61 of format 55,
The value read from the memory is stored in the data 53 as the flag 52.
"1" is given to. Further, the value of the frame identifier 64 of the received token is directly embedded in the corresponding field 63 of the return token.

【0048】メモリアクセスコントローラでは書き込み
要求トークン(形式55)を受け取ると、このオペレー
ションコード56に従って、データ59をアクセスアド
レス57で示される番地に書き込む。
When the memory access controller receives the write request token (format 55), it writes the data 59 in the address indicated by the access address 57 according to the operation code 56.

【0049】メモリアクセスコントローラからの図2の
形式50でフイールド52のフラグが″1″であるよう
なトークンが信号線92を介して演算処理プロセッサ1
に入力された場合にはロード制御部21において、次の
ような動作が行なわれる。
A token from the memory access controller whose format 52 of FIG. 2 has a field 52 flag of "1" is sent via the signal line 92 to the processor 1.
When it is input to, the load controller 21 performs the following operation.

【0050】まず図2のトークンの形式50のフイール
ド63で指定されるフレーム中のフイールド60で指定
されるレジスタに対してデータ53を書き込む。なお演
算処理部10がレジスタに対して書き込みを行なってい
るサイクルではロード制御部21から同時に書き込むこ
とはできないので、そのときは入力管理部25内のFI
FOに書き込み要求を保持し、最初に書き込みが可能に
なったときに書き込む。また演算処理部10で命令列が
切り替わるときには、必要なら新たな命令列の実行開始
を遅らせてFIFO内にある書き込み要求を全て完了さ
せる。
First, the data 53 is written into the register designated by the field 60 in the frame designated by the field 63 of the token format 50 of FIG. In the cycle in which the arithmetic processing unit 10 is writing to the register, the load control unit 21 cannot write data at the same time.
The write request is held in the FO, and the write is performed when the write becomes possible for the first time. Further, when the instruction sequence is switched in the arithmetic processing unit 10, the start of execution of a new instruction sequence is delayed if necessary to complete all write requests in the FIFO.

【0051】書き込みが終了すると、ついでトークン形
式50中のフレーム識別子63に基づいて入力トークン
テーブル20の一行がアドレスされ、その行の既到着数
のフイールド23がインクリメントされ、インクリメン
ト後の値がその行の発火必要数フイールド22の値と比
較される。
When the writing is completed, then one row of the input token table 20 is addressed based on the frame identifier 63 in the token format 50, the field 23 of the number of already arrived of that row is incremented, and the value after the increment is the row. Is compared with the value of the required number of fires field 22.

【0052】それらが等しくない場合には、命令列再開
に必要な数のトークンが全て到着していないので、その
トークンはそこで消滅する。等しければ、命令列再開に
必要な数のトークンが入力されたことが分かるので、既
到着数23を″0″にリセットし、トークン形式50の
フラグ52を″0″にセットした後に到着トークンはト
ークンメモリ13のFIFOの最後尾に加えられる。F
IFOでは先頭のトークンが演算処理部10からフエッ
チされる度にそれが取り除かれそれまで2番目であった
トークンが先頭になり、以下順に順序が繰り上がる。
If they are not equal to each other, the tokens necessary for restarting the instruction sequence have not arrived at all, and the tokens disappear there. If they are equal, it can be seen that the number of tokens necessary for restarting the instruction sequence has been input. Therefore, the number of arrived tokens 23 is reset to "0" and the arrival token is set after the flag 52 of the token format 50 is set to "0". It is added to the end of the FIFO of the token memory 13. F
In the IFO, every time the first token is fetched from the arithmetic processing unit 10, it is removed and the second token up to that point becomes the first token, and the order is incremented in the following order.

【0053】演算処理部10での命令列フエッチ動作に
おいては、フエッチしたトークン内の実行開始アドレス
51の値をプログラムカウンタに設定される。同時にそ
のフレーム識別子63の値が演算処理部10の中のフレ
ームレジスタにセットされる。そしてプログラムカウン
タで指示される命令からその命令列の演算処理が再開さ
れる。
In the instruction sequence fetch operation in the arithmetic processing unit 10, the value of the execution start address 51 in the fetched token is set in the program counter. At the same time, the value of the frame identifier 63 is set in the frame register in the arithmetic processing unit 10. Then, the arithmetic processing of the instruction sequence is restarted from the instruction designated by the program counter.

【0054】以上の構成を持つ装置において本発明の目
的とする効果の達成を可能にする動作について説明す
る。まず第1の発明の方法の実現について述べる。
The operation of the apparatus having the above-described structure that enables the achievement of the object of the present invention will be described. First, the realization of the method of the first invention will be described.

【0055】ロード命令LaとLbでメモリアドレスad
dr1 、addr2 からフエッチされレジスタr1、r2にロード
されるデータが命令Tabで初めて必要であるとする。つ
まり命令列は、 であるとする。このときTabはロード命令La,Lbに
対する「ターゲット命令」である。
Memory address ad with load instructions La and Lb
It is assumed that the instruction Tab first needs the data to be fetched from dr1 and addr2 and loaded into the registers r1 and r2. In other words, the instruction sequence is Suppose At this time, Tab is a "target instruction" for the load instructions La and Lb.

【0056】一方、命令列が与えられたとき、コンパイ
ル時に全てのロード命令についてそれぞれ対応するター
ゲット命令を発見しそのコードアドレスの値を得ること
が可能であるので、La、Lbにおける読み出し要求ト
ークンの中の実行開始アドレスとしてTabのアドレスを
与えれば、再開時にそこから実行を再開することができ
る。
On the other hand, when the instruction string is given, it is possible to find the corresponding target instruction for all load instructions and obtain the value of the code address thereof at the time of compilation, so that the read request tokens at La and Lb can be obtained. If the address of Tab is given as the execution start address, the execution can be restarted from that time.

【0057】この方式を実現するために、コンパイル時
に、 1.前述のように全てのロード命令についてそのターゲ
ット命令のアドレスを求め、 2.プログラムメモリの中の各ロード命令のところにそ
れを埋め込み(図3のフイールド66)、 3.ターゲット命令が命令列実行再開にn個のデータを
必要とするとする場合は″n″をその命令のフイールド
67に埋め込む。第1の発明の方法ではこれは″2″ま
たは″1″である 4.さらにそれぞれのターゲットとなっている命令につ
いて、その直前の命令のシーケンス終了フラグ65を″
1″とする 5.他の命令については命令のシーケンス終了フラグ6
5を″0″とするという前処理をする。
In order to realize this method, at the time of compilation, 1. 1. Obtain the address of the target instruction for all load instructions as described above, 2. Embed it at each load instruction in program memory (field 66 in Figure 3); When the target instruction requires n pieces of data to restart the execution of the instruction sequence, "n" is embedded in the field 67 of the instruction. 3. In the method of the first invention, this is "2" or "1". For each target instruction, set the sequence end flag 65 of the instruction immediately before it.
1 ″ 5. For other instructions, instruction sequence end flag 6
Pre-processing of setting 5 to "0" is performed.

【0058】実行時にはこれに従い、動作の説明で述べ
たように、 1.ある命令列中でロード命令Laがあったらそこでそ
のターゲット命令Tabのアドレスを実行開始アドレスと
するトークンを発行し、同時にあらかじめロード命令の
形式70のフイールド67に書き込まれていた、再開に
必要なデータ数を入力トークンテーブル20の発火必要
数フイールド22に書き込む 2.そこで命令列を中断せずに続行する 3.実行した命令のシーケンス終了フラグ65が″1″
であったらそこで単にその命令列の実行をやめ(単に
「消える」) 4.次の命令列をトークンメモリ13から読み込む 5.トークンがメモリアクセスから戻るとそのたびごと
にトークン中のデータがレジスタに書き込まれると共
に、入力トークンテーブル20の既到着数フイールド2
3をカウンターとして到着数が計数され、発火必要数2
2に等しくなったらトークンがトークンメモリ13へ送
られる 6.トークンメモリ13からトークンがフエッチされ演
算される順番になると 7.Tabの命令から処理を続行するという手順で処理が
進む。
According to this at the time of execution, as described in the explanation of the operation, 1. If there is a load instruction La in a certain instruction sequence, a token with the address of the target instruction Tab as the execution start address is issued there, and at the same time, the data necessary for restart that was written in the field 67 of the load instruction format 70 in advance. 1. Write the number into the required firing field 22 of the input token table 20. Therefore, the instruction sequence is continued without interruption. The sequence end flag 65 of the executed instruction is "1".
If so, then simply stop executing the sequence of instructions (simply “disappear”). 4. Read the next instruction sequence from the token memory 13. Whenever the token returns from the memory access, the data in the token is written in the register and the number of fields 2 of the arrival of the input token table 20 has already arrived.
The number of arrivals is counted using 3 as a counter, and the number of required firings is 2
5. When equal to 2, token is sent to token memory 13. When the tokens are fetched from the token memory 13 and the order is calculated, 7. The process proceeds in the procedure of continuing the process from the Tab command.

【0059】この様子は図5のように図示できる。ここ
で下の細破線矢印はロード命令からそのターゲット命令
へのデータ依存関係を、縦棒はそのターゲット命令の直
前で命令シーケンスが切られ、命令列実行が中断される
ことを、また上の太い破線矢印はターゲット命令Tabの
アドレスを実行開始アドレスとして持つ読み出し要求ト
ークンが発行されてターゲット命令から命令列実行が再
開されることを示している。
This state can be illustrated as shown in FIG. Here, the thin broken arrow below indicates the data dependency from the load instruction to its target instruction, the vertical bar indicates that the instruction sequence is cut immediately before the target instruction and the instruction sequence execution is interrupted, and the thick bold arrow above. The dashed arrow indicates that the read request token having the address of the target instruction Tab as the execution start address is issued and the instruction sequence execution is restarted from the target instruction.

【0060】例えば上のプログラムの例では、La、L
b実行時にはTabを実行開始アドレスとし、発火必要数
が″2″であるようなトークンが発行された後に処理が
継続され、Tabの直前で命令列実行が中断される。その
後トークンが2つ戻ったことを計数すると命令列は実行
可能となり、トークンメモリ13内で順番が回ってきた
ときに命令Tabから実行を再開する。
For example, in the above program example, La, L
At the time of execution of b, with Tab as the execution start address, the processing is continued after the token whose required number of firings is "2" is issued, and the instruction sequence execution is interrupted immediately before Tab. After that, when counting the return of two tokens, the instruction sequence becomes executable, and when the turn comes in the token memory 13, the execution is restarted from the instruction Tab.

【0061】以上、ターゲット命令の必要とするデータ
数がたかだか2である場合にそれらをロードし、ターゲ
ット命令から再開する方法について説明した。
The method for loading the target instruction when the number of data required by the target instruction is at most 2 and restarting from the target instruction has been described above.

【0062】一般に3以上の数nについてn個のデータ
が到着したときに命令列実行を再開する必要がある場合
には、第3の発明の方法を用いる。この場合コンパイル
時には図3のロード命令の形式70の発火必要数67に
は″n″が設定され、また実行時、図4の入力トークン
テーブル20内の発火必要数フイールド22には″n″
がセットされる。また既到着数フイールド23は初期
値″0″から計数され、″n″に等しくなったときにト
ークンがトークンメモリ13へ送られる。
Generally, when it is necessary to restart the instruction sequence execution when n pieces of data arrive for the number n of 3 or more, the method of the third invention is used. In this case, "n" is set to the required firing number 67 of the load instruction format 70 of FIG. 3 at the time of compilation, and "n" is set to the required firing number field 22 in the input token table 20 of FIG. 4 at the time of execution.
Is set. The number of already arrived fields 23 is counted from the initial value "0", and the token is sent to the token memory 13 when it becomes equal to "n".

【0063】以上、2項データを必要とするターゲット
命令に対する全てのロード命令についてターゲット命令
の直前で中断し、全てのデータトークンが到着したとき
にターゲット命令から再開する方法について説明した。
The method of interrupting all the load instructions for the target instruction requiring the binary data immediately before the target instruction and restarting from the target instruction when all the data tokens have arrived has been described above.

【0064】しかしこれら2つの命令の間に例えばジャ
ンプ命令があって命令列と逆の方向(プログラムカウン
タが小さくなる方向)へ飛ぶ場合には、コンパイル時の
解析においてロード命令のターゲットを発見しにくいこ
とがある。このときは1パスではターゲットの発見が困
難であり、またはテーブル管理が複雑になる。
However, when there is a jump instruction between these two instructions and the instruction jumps in the direction opposite to the instruction sequence (the direction in which the program counter decreases), it is difficult to find the target of the load instruction in the analysis during compilation. Sometimes. In this case, it is difficult to find the target with one pass, or table management becomes complicated.

【0065】そのような場合には第4の発明の方法によ
り、このジャンプ命令を第1および第3の発明でのター
ゲット命令と見立ててその手前で中断し、再開アドレス
としてそのアドレスをプログラム中のターゲット命令ア
ドレスとして与える。
In such a case, according to the method of the fourth invention, this jump instruction is regarded as the target instruction in the first and third inventions, interrupted before it, and the address in the program is restarted. It is given as the target instruction address.

【0066】また演算結果に応じて条件分岐するブラン
チ命令ではさらに、ブランチの一方ではレジスタを使用
するのでターゲットが有るが、他方ではターゲットが発
見できないという場合もある。この場合には同様にその
ブランチ命令をターゲット命令とすることで対処する。
Further, in a branch instruction that branches conditionally according to the operation result, there is a case where one of the branches uses a register and therefore has a target, but the other cannot find the target. In this case, the branch instruction is dealt with similarly as the target instruction.

【0067】このように第4の発明により、ロード命令
とターゲット命令との間に第1の発明の方法の実施の障
害となる命令が存在するケースであっても、コンパイル
時に静的にこれを検出して適切なターゲットを発見し使
用するという制御を埋め込むことができる。
As described above, according to the fourth invention, even in the case where an instruction which hinders the implementation of the method of the first invention exists between the load instruction and the target instruction, this is statically compiled at the time of compilation. Controls can be embedded to detect and discover and use suitable targets.

【0068】以上、2項データを必要とするターゲット
命令に対する全てのロード命令についてターゲット命令
の直前、またはロード命令とターゲット命令の間のある
命令の地点で中断し、すべてのデータトークンが到着し
たときにターゲット命令から再開する方法について説明
した。
As described above, when all data tokens arrive by interrupting immediately before the target instruction or at an instruction point between the load instruction and the target instruction for all the load instructions for the target instruction requiring the binary data I explained how to restart from the target instruction.

【0069】しかしロード命令からターゲット命令まで
の区間が複数重なっている場合には、同時に異なるター
ゲットアドレスを持つトークンが演算プロセッサ1から
発行された後、後ろにあるターゲット命令に対するトー
クンが先に入力される際には誤った動作を行なうという
ように、正しい動作が保証されないという問題がある。
However, when a plurality of sections from the load instruction to the target instruction are overlapped, a token having a different target address is issued from the arithmetic processor 1 at the same time, and then a token for the target instruction located later is first input. There is a problem in that correct operation is not guaranteed, such as performing an erroneous operation.

【0070】第5の発明はこの問題を次のように解決す
る。ロード命令La、Lbとそれらのターゲット命令T
abがこの順に並んでいるとし、それに加えてロード命令
Lcとそのターゲット命令Tcが同じ命令列中にあると
する。
The fifth invention solves this problem as follows. Load instructions La and Lb and their target instructions T
It is assumed that ab are arranged in this order, and in addition, the load instruction Lc and its target instruction Tc are in the same instruction sequence.

【0071】コンパイル時に、複数のロード命令とそれ
ぞれのターゲット命令の順序を解析し、 1.ロード命令Laとそのターゲット命令Tabとの間に
他のロード命令がない場合には第1の発明の方法と同様
に、(a)そのターゲット命令をロード命令La、Lb
の再開命令に、発火必要数を″2″にし、(b)ターゲ
ット命令直前で中断するようにシーケンス終了フラグを
セットしておく 2.ロード命令LaとLbとの間に他のロード命令がは
さまれている場合には、(a)はさまれているロード命
令Lcのアドレスをロード命令La実行の再開命令に、
発火必要数を″1″とし、(b)ロード命令Lc実行直
前で中断するようにし、(c)さらにLcの再開命令を
Lbに、発火必要数を″1″にし、(d)Lbの再開命
令をTabに、発火必要数を″1″にしておく 3.ロード命令Lbとターゲット命令Tabとの間に他の
ロード命令がはさまれている場合には、(a)はさまれ
ているロード命令Lcのアドレスをロード命令La、L
b実行の再開命令とし、発火必要数を″2″にし、
(b)ロード命令Lc実行直前で中断するようにして
(c)さらにLcの再開命令をTcに、発火必要数を″
1″にしておくこのコンパイルの結果得られたプログラ
ムメモリを用いて、実行時には演算プロセッサは次のよ
うな動作をする。
At the time of compilation, the order of a plurality of load instructions and respective target instructions is analyzed. When there is no other load instruction between the load instruction La and its target instruction Tab, (a) the target instruction is changed to load instructions La and Lb as in the method of the first invention.
1. In the restart command, the required number of firings is set to "2", and (b) the sequence end flag is set so as to be interrupted immediately before the target command. When another load instruction is sandwiched between the load instructions La and Lb, (a) the address of the sandwiched load instruction Lc is used as a restart instruction for execution of the load instruction La,
The required number of firings is set to "1", (b) the load instruction Lc is interrupted immediately before execution, (c) the restart instruction of Lc is set to Lb, the required number of firings is set to "1", and (d) Lb is restarted. Set the command to Tab and the required number of firings to "1". When another load instruction is sandwiched between the load instruction Lb and the target instruction Tab, the address of the sandwiched load instruction Lc is set in (a).
b Resumption of execution, set the required number of firing to "2",
(B) The load instruction Lc is interrupted immediately before it is executed. (C) The restart instruction of Lc is set to Tc, and the required number of firings is set to "
Using the program memory obtained as a result of this compilation which is set to 1 ″, the arithmetic processor operates as follows at the time of execution.

【0072】1.ロード命令Laとそのターゲット命令
Tabとの間に他のロード命令がない場合には第1の発明
の説明と同様に動作する 2.ロード命令LaとLbとの間にロード命令Lcがは
さまれている場合には(図7(A)参照)、 (a)ロード命令La実行時には、はさまれているロー
ド命令Lcを実行開始アドレスとするトークンを出して
シーケンスを続行し、 (b)ロード命令Lc実行直前で命令列処理を中断し、
演算処理部10は別の命令列をフエッチする (c)その後戻ったトークンにより命令列はLcから再
開される (d)LcではLbをターゲット命令とするロード命令
を実行した後シーケンスの処理を続行する (e)その後戻ったトークンにより命令列はLbから再
開される (f)LbではTabをターゲット命令とし、発火必要数
を″1″とするロード命令を実行した後シーケンスの処
理を続行する (g)このときはTcで必要なデータはロードが完了し
ていることが保証されているので、Tcはそのまま実行
することができ、 (h)Tabの直前で命令列処理を中断し、演算処理部1
0は別の命令列をフエッチする (i)戻ったトークンにより命令列はTabから再開され
る 3.ロード命令Lbとターゲット命令Tabとの間にロー
ド命令Lcがはさまれている場合には(図7(B)参
照)、 (a)ロード命令La実行時には、Lcを実行開始アド
レスとし、発火必要数を″2″とするトークンを出して
シーケンスを続行 (b)ロード命令Lb実行時にも、Lcを実行開始アド
レスとし、発火必要数を″2″とするトークンを出して
シーケンスを続行 (c)ロード命令Lc実行直前で命令列処理を中断し、
演算処理部10は別の命令列をフエッチする (d)その後トークンが2つ戻った後に命令列はLcか
ら再開される (e)LcではTcをターゲット命令とするロード命令
を実行した後シーケンスの処理を続行する (f)このときはTabで必要なデータはロードが完了し
ていることが保証されているので、Tabはそのまま実行
することができる (g)Tcの直前で命令列処理を中断し、演算処理部1
0は別の命令列をフエッチする (h)Lcから戻ったトークンにより命令列はTcから
再開される 一般にロード命令とそのターゲット命令との間に他のタ
ーゲット命令を持つロード命令が複数存在する場合で
も、上述のように各ロード命令Lxのターゲット命令よ
り他のロード命令が近くにある場合には直後のロード命
令Lyを再開命令とするようにすれば、正しい動作をす
ることができる。
1. When there is no other load instruction between the load instruction La and its target instruction Tab, the operation is similar to that of the first invention. When the load instruction Lc is sandwiched between the load instructions La and Lb (see FIG. 7A), (a) when the load instruction La is executed, the sandwiched load instruction Lc is started to be executed. Issue a token as an address to continue the sequence, (b) interrupt the instruction sequence processing immediately before the execution of the load instruction Lc,
The arithmetic processing unit 10 etches another instruction sequence. (C) The instruction sequence is restarted from Lc by the returned token. (D) At Lc, the load instruction whose target instruction is Lb is executed and then the sequence processing is continued. (E) After that, the instruction sequence is restarted from Lb by the returned token. (F) In Lb, the target instruction is Tab, and the load instruction that sets the required number of firings to "1" is executed, and then the sequence processing is continued. g) At this time, it is guaranteed that the data required by Tc has been loaded, so Tc can be executed as it is. (h) Instruction sequence processing is interrupted immediately before Tab and arithmetic processing is performed. Part 1
0 fetches another instruction sequence (i) The instruction sequence is restarted from Tab by the returned token. When the load instruction Lc is sandwiched between the load instruction Lb and the target instruction Tab (see FIG. 7B), (a) When the load instruction La is executed, Lc is used as the execution start address and the firing is required. Continue the sequence by issuing a token with the number "2" (b) When executing the load instruction Lb, issue the token with the execution start address Lc and the number "2" required to fire and continue the sequence (c) Immediately before executing the load instruction Lc, the instruction sequence processing is suspended,
The arithmetic processing unit 10 etches another instruction sequence. (D) After that, the instruction sequence is restarted from Lc after returning two tokens. (E) In Lc, after executing a load instruction whose target instruction is Tc, the sequence of Continue processing. (F) At this time, it is guaranteed that the data required by Tab has been loaded, so Tab can be executed as it is. (G) Instruction sequence processing is suspended immediately before Tc. The arithmetic processing unit 1
0 fetches another instruction sequence (h) The instruction sequence is restarted from Tc by the token returned from Lc Generally, when there are multiple load instructions having other target instructions between the load instruction and its target instruction. However, as described above, when another load instruction is closer than the target instruction of each load instruction Lx, the next load instruction Ly can be used as a restart instruction to perform a correct operation.

【0073】[0073]

【発明の効果】第1および第2の発明では、2つのデー
タを必要とするターゲット命令とそのロード命令のアド
レスをあらかじめ調べでおき、2つのトークンを発行し
てから命令列実行の中断をターゲット命令の直前まで遅
延させることにより、並列に実行可能な命令列の数が少
ない場合にも演算処理部がアイドルであるサイクルを減
少させ、より高い処理性能を実現できる。また2つのメ
モリアクセスをオーバーラップさせ処理を高速化するこ
とができる。この様子は図6において、一つの命令列実
行についての時間経過が従来方式においては(A)、ま
だ公知ではない方式では(B)であるのに比較して
(C)のように処理時間を短縮できることを意味する。
According to the first and second aspects of the present invention, the addresses of the target instruction that requires two data and the address of the load instruction are checked in advance, and two tokens are issued before the instruction sequence execution is interrupted. By delaying immediately before the instruction, even when the number of instruction sequences that can be executed in parallel is small, the number of cycles in which the arithmetic processing unit is idle can be reduced, and higher processing performance can be realized. Also, the two memory accesses can be overlapped to speed up the processing. In this state, in FIG. 6, the time elapse for execution of one instruction sequence is (A) in the conventional method and (B) in the method that is not yet known, but the processing time is as shown in (C). It means that it can be shortened.

【0074】第3の発明では、上記の発明を一般化し、
n個のデータを必要とするターゲット命令がある場合で
もn個のデータトークンの到着を判定して命令列実行を
開始することを可能にする。この方法はデータロードだ
けでなく、並列処理においてn個のプロセスでのイベン
ト完了情報が到着後にある動作を開始するというバリア
同期の高速な実現を可能にする。
In the third invention, the above invention is generalized,
Even when there is a target instruction that requires n data, it is possible to determine the arrival of n data tokens and start the instruction sequence execution. This method enables not only data loading but also high-speed realization of barrier synchronization that starts a certain operation after arrival of event completion information in n processes in parallel processing.

【0075】第4の発明では、上で述べた作用に加えて
上記の発明を一般化し、ロード命令とターゲット命令と
の間に第1の発明の方法の実施の障害となる命令が存在
するケースであっても、コンパイル時に静的にこれを検
出して適切な再開命令を発見し使用するという制御を埋
め込むことができ、これにより同様な効果の実現を可能
にする。
In the fourth invention, in addition to the operation described above, the above invention is generalized, and there is an instruction between the load instruction and the target instruction which is an obstacle to the implementation of the method of the first invention. Even then, it is possible to embed control that statically detects this at compile time to find and use an appropriate restart instruction, thereby enabling a similar effect to be realized.

【0076】第5の発明では、上で述べた作用に加えて
二つ以上のロード命令とターゲット命令が干渉しあって
いても中断後の再開アドレスを干渉を解決するように設
定することを可能にする。
In the fifth invention, in addition to the operation described above, even if two or more load instructions and target instructions interfere with each other, the restart address after interruption can be set so as to resolve the interference. To

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

【図1】本発明の一実施例である演算プロセッサの構成
を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of an arithmetic processor that is an embodiment of the present invention.

【図2】本実施例で用いられるトークンの形式を示す形
式図である。
FIG. 2 is a format diagram showing a format of a token used in this embodiment.

【図3】本実施例で用いられる命令の形式を示す形式図
である。
FIG. 3 is a format diagram showing the format of an instruction used in this embodiment.

【図4】本実施例で用いられるロード制御部の構成を示
すブロック図である。
FIG. 4 is a block diagram showing a configuration of a load control unit used in this embodiment.

【図5】第1の発明の方法を示す線図である。FIG. 5 is a diagram showing the method of the first invention.

【図6】従来方式等と本発明の方式の実行の様子を比較
するタイムチャートである。
FIG. 6 is a time chart comparing execution states of the conventional method and the method of the present invention.

【図7】第5の発明の方法を示す線図である。FIG. 7 is a diagram showing a method of the fifth invention.

【符号の説明】[Explanation of symbols]

1 演算プロセッサ 10 演算処理部 11 レジスタ部 12 トークン生成部 13 トークンメモリ 14 命令列制御部 21 ロード制御部 DESCRIPTION OF SYMBOLS 1 arithmetic processor 10 arithmetic processing unit 11 register unit 12 token generation unit 13 token memory 14 instruction sequence control unit 21 load control unit

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 並行して実行可能な命令列をあらかじめ
複数用意しておきそれらを切り替えながらそのうちから
1つを実行命令列として選択しその実行命令列中の命令
を順に実行する演算プロセッサで第1および第2の2個
のデータのロード動作の終了後に前記2個のデータを使
用して実行すべきターゲット命令を含む第1の命令列を
実行中に前記2個のデータをメモリから前記演算プロセ
ッサ内へロードするデータロード方法において、前記メ
モリから前記第1のデータをロードする第1のロード命
令実行時には前記第1のデータを使用する前記ターゲッ
ト命令のアドレスを含む第1のトークンを外部に発行し
てメモリアクセス動作を起動すると共に前記第1の命令
列の実行を続行し、ついで前記メモリから前記第2のデ
ータをロードする第2のロード命令実行時には前記第2
のデータを使用する前記ターゲット命令のアドレスを含
む第2のトークンを外部に発行してメモリアクセス動作
を起動すると共に前記第1の命令列の実行を続行し、そ
の後に前記ターゲット命令の直前で前記第1の命令列の
実行を中断して他の命令列実行に移り、前記メモリアク
セス動作を終了して前記ターゲット命令に必要なデータ
を有する前記演算プロセッサに入力する入力トークンの
数を計数し、前記計数の結果が2になったときには前記
第1の命令列の実行を前記入力トークンに含まれる前記
ターゲット命令のアドレスにより前記ターゲット命令か
ら再開することを特徴とするデータロード方法。
1. An arithmetic processor that prepares a plurality of instruction sequences that can be executed in parallel in advance, selects one of them as an execution instruction sequence while switching them, and sequentially executes the instructions in the execution instruction sequence. The operation of the two pieces of data from the memory while executing the first instruction sequence including the target instruction to be executed using the two pieces of data after completion of the load operation of the first and second pieces of data In a data loading method of loading into a processor, a first token including an address of the target instruction that uses the first data is externally executed when a first load instruction that loads the first data from the memory is executed. Issuing and activating a memory access operation, continuing execution of the first sequence of instructions, and then loading the second data from the memory; When the second load instruction is executed, the second
Issue a second token including the address of the target instruction using the data of the above to activate the memory access operation and continue the execution of the first instruction sequence, and then immediately before the target instruction. Execution of the first instruction sequence is interrupted, execution of another instruction sequence is executed, the memory access operation is terminated, and the number of input tokens input to the arithmetic processor having data necessary for the target instruction is counted, The data loading method, wherein when the result of the counting becomes 2, execution of the first instruction sequence is restarted from the target instruction by the address of the target instruction included in the input token.
【請求項2】 並行して実行可能な命令列をあらかじめ
複数用意しておきそれらを切り替えながらそのうちから
1つを実行命令列として選択しその実行命令列中の命令
を順に実行する演算プロセッサにおいて、1つの命令列
内の命令を順に実行する演算処理部と、外部から入力さ
れたトークンを保持し前記演算処理部に供給するトーク
ンメモリと、前記演算処理部からアクセスされるデータ
を保持するレジスタ群と、外部で行なう動作の記述とそ
のとき実行中の命令コード中に記述された命令列実行を
中断した後に再開するべき再開命令アドレスとを含むト
ークンの入出力情報を管理しまたその入力数を計数する
とともに外部から前記演算プロセッサに戻ったトークン
をトークンメモリに保持するのに先立ってトークン中の
メモリ読み出しデータをレジスタ群中のレジスタに書き
込むロード制御部と、各ロード命令には前記再開命令ア
ドレスと再開に必要な到着トークン数である発火必要数
を有し各命令についてはその命令実行後に直後の命令を
続行実行すか否かを示したフラグを有する命令群よりな
るプログラムを格納し前記演算処理部へ命令列を供給す
るとともに前記各部の動作を制御する命令列制御部とを
有することを特徴とする演算プロセッサ。
2. An arithmetic processor that prepares a plurality of instruction sequences that can be executed in parallel in advance, selects one of the instruction sequences as an execution instruction sequence while switching them, and sequentially executes the instructions in the execution instruction sequence, An arithmetic processing unit that sequentially executes instructions in one instruction sequence, a token memory that holds a token input from the outside and supplies the token to the arithmetic processing unit, and a register group that holds data accessed from the arithmetic processing unit. And the input / output information of the token including the description of the operation performed externally and the restart instruction address to be restarted after interrupting the execution of the instruction sequence described in the instruction code being executed at that time The memory read data in the token is counted before holding the token that has been counted and returned to the arithmetic processor from the outside in the token memory. Load controller for writing data to a register in a register group, each load instruction has the restart instruction address and the required number of firings, which is the number of arrival tokens required for restart, and for each instruction, the instruction immediately after execution of that instruction And a command sequence control unit that stores a program including a command group having a flag indicating whether or not to continue execution, supplies a command sequence to the arithmetic processing unit, and controls the operation of each unit. Arithmetic processor.
【請求項3】 第1の命令列中にn個のデータのロード
動作の終了後に前記n個のデータを使用して実行すべき
ターゲット命令を含んでいるときには、前記n個のデー
タのそれぞれをロードするロード命令の実行時にそれぞ
れ前記ターゲット命令のアドレスを含むトークンを外部
に発行してメモリアクセス動作を起動すると共に前記第
1の命令列の実行を続行し、その後に前記ターゲット命
令の直前で前記第1の命令列の実行を中断して他の命令
列実行に移り、前記メモリアクセス動作を終了して前記
ターゲット命令に必要なデータを有する入力トークンの
数を計数し、前記計数の結果がnになったときには前記
第1の命令列の実行を前記入力トークンに含まれる前記
ターゲット命令のアドレスにより前記ターゲット命令か
ら再開することを特徴とする請求項1記載のデータロー
ド方法。
3. When the first instruction sequence includes a target instruction to be executed using the n data after the end of the load operation of the n data, each of the n data is When the load instruction to be loaded is executed, a token including the address of the target instruction is issued to the outside to activate the memory access operation, and the execution of the first instruction sequence is continued, and then immediately before the target instruction. Execution of the first instruction sequence is interrupted, execution of another instruction sequence is executed, the memory access operation is terminated, and the number of input tokens having data necessary for the target instruction is counted. When it becomes, the execution of the first instruction sequence is restarted from the target instruction by the address of the target instruction included in the input token. The method for loading data according to claim 1, wherein
【請求項4】 ロード命令実行時にはそのターゲット命
令の代わりにロード命令とターゲット命令のあいだのい
ずれかの命令(これを再開命令と呼ぶ)のアドレスを含
むトークンを外部に発行してメモリアクセス動作を起動
し、その後前記再開命令の直前でその命令列の実行を中
断し、前記再開命令のアドレスを持つトークンがあらか
じめ定められた回数入力されたときに前記トークン中に
含まれるアドレスにより前記再開命令から再開可能とす
ることを特徴とする請求項3記載のデータロード方法。
4. When a load instruction is executed, a token including the address of an instruction (which is called a restart instruction) between the load instruction and the target instruction instead of the target instruction is issued to the outside to perform a memory access operation. When the token having the address of the restart instruction is input for a predetermined number of times, the start of the instruction sequence is suspended immediately before the restart instruction The data loading method according to claim 3, wherein the data loading method is resumable.
【請求項5】 命令列の中に、命令実行に2個のデータ
を必要とする命令に対して複数のロード命令とそれぞれ
のターゲット命令が存在する場合に、全てのロード命令
について、第1のロード命令実行時には、前記第1のロ
ード命令とそのターゲットである第1のターゲット命令
との間に他のロード命令がないときには前記第1のロー
ド命令は前記第1のターゲット命令を再開命令とし、他
のロード命令が存在しかつ前記第1のロード命令に最も
近いロード命令が別の第2のターゲット命令を持つ第2
のロード命令であるときには前記第1のロード命令は前
記第2のロード命令を再開命令とし、他のロード命令が
存在しかつ前記第1のロード命令に最も近いロード命令
が同じ前記第1のターゲット命令を持つ第3のロード命
令であるときには前記第1のロード命令は前記第3のロ
ード命令の再開命令と同じ命令をその再開命令とし、全
ての命令について、ある命令がいずれかのロード命令の
再開命令になっているときにはその直前で前記ある命令
の属する命令列の実行を中断し、前記ある命令をその再
開命令とする前記ロード命令が2個あるときにはその再
開命令を持つトークンが2個到着したときに前記ある命
令からそれの属する命令列を再開可能とすることを特徴
とする請求項4記載のデータロード方法。
5. When a plurality of load instructions and respective target instructions exist for an instruction that requires two data for instruction execution in the instruction sequence, the first instruction for all load instructions is set. When there is no other load instruction between the first load instruction and the target first target instruction at the time of executing the load instruction, the first load instruction sets the first target instruction as a restart instruction, A second load instruction having another load instruction and a load instruction closest to the first load instruction having another second target instruction;
When the first load instruction is a second load instruction, the first load instruction is the second load instruction as a restart instruction, another load instruction exists, and the load instruction closest to the first load instruction is the same as the first target. When it is a third load instruction having an instruction, the first load instruction uses the same instruction as the restart instruction of the third load instruction as its restart instruction, and for all the instructions, a certain instruction is one of the load instructions. Immediately before the restart instruction, the execution of the instruction sequence to which the certain instruction belongs is interrupted, and when there are two load instructions that use the certain instruction as the restart instruction, two tokens having the restart instruction arrive. The data loading method according to claim 4, wherein the instruction sequence to which the instruction belongs can be restarted from the certain instruction at the time of performing.
JP18327692A 1992-07-10 1992-07-10 Data loading method and arithmetic processor using the same Expired - Lifetime JP2853460B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18327692A JP2853460B2 (en) 1992-07-10 1992-07-10 Data loading method and arithmetic processor using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18327692A JP2853460B2 (en) 1992-07-10 1992-07-10 Data loading method and arithmetic processor using the same

Publications (2)

Publication Number Publication Date
JPH0628187A true JPH0628187A (en) 1994-02-04
JP2853460B2 JP2853460B2 (en) 1999-02-03

Family

ID=16132827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18327692A Expired - Lifetime JP2853460B2 (en) 1992-07-10 1992-07-10 Data loading method and arithmetic processor using the same

Country Status (1)

Country Link
JP (1) JP2853460B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103119555A (en) * 2010-09-24 2013-05-22 Arm有限公司 Next-instruction-type-field

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103119555A (en) * 2010-09-24 2013-05-22 Arm有限公司 Next-instruction-type-field
JP2013542500A (en) * 2010-09-24 2013-11-21 アーム・リミテッド Next instruction type field
TWI511077B (en) * 2010-09-24 2015-12-01 Advanced Risc Mach Ltd Next-instruction-type field
US9977675B2 (en) 2010-09-24 2018-05-22 Arm Limited Next-instruction-type-field

Also Published As

Publication number Publication date
JP2853460B2 (en) 1999-02-03

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5193157A (en) Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter
US5235686A (en) Computer system having mixed macrocode and microcode
JP3804941B2 (en) Instruction fetch control device
JP2504830Y2 (en) Data processing device
EP0394624B1 (en) Multiple sequence processor system
US5872990A (en) Reordering of memory reference operations and conflict resolution via rollback in a multiprocessing environment
JP2560988B2 (en) Information processing apparatus and processing method
JPH06332697A (en) Data-processing system
JPH0778088A (en) Apparatus for processing of plurality of interrupts in processor system and method for responding to interrupt from plurality of interrupt triggers in processor system as well as method and apparatus for simultaneous task between plurality of processors
JPH09138778A (en) Device and method using semaphore buffer for semaphore instruction
JPH09134287A (en) Microprocessor and its load address predicting method
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
US20030028696A1 (en) Low overhead interrupt
JP2853460B2 (en) Data loading method and arithmetic processor using the same
JP2853458B2 (en) Instruction string switching method and arithmetic processor using the same
JP3602801B2 (en) Memory data access structure and method
JP2927102B2 (en) Instruction string switching method and arithmetic processor using the same
EP0987624A2 (en) Method and system for buffering instructions in a processor
US7130988B2 (en) Status register update logic optimization
JPH0877021A (en) Device and method for interruption processing
JP2694799B2 (en) Information processing device
JPH10340197A (en) Cashing control method and microcomputer
JPS60241136A (en) Data processor

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981020