JP2934003B2 - Data processing device - Google Patents
Data processing deviceInfo
- Publication number
- JP2934003B2 JP2934003B2 JP24417990A JP24417990A JP2934003B2 JP 2934003 B2 JP2934003 B2 JP 2934003B2 JP 24417990 A JP24417990 A JP 24417990A JP 24417990 A JP24417990 A JP 24417990A JP 2934003 B2 JP2934003 B2 JP 2934003B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- instruction
- instructions
- parallel
- executed
- 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
Links
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は、データ処理装置に関し、特に、命令の並列
処理の技術に関するものである。Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing apparatus, and more particularly, to a technique for parallel processing of instructions.
[従来の技術] 従来の並列計算機システムにおいては、主に以下の2
つの方式を用いて性能向上を図っている。[Prior Art] In a conventional parallel computer system, mainly the following 2
The two systems are used to improve performance.
第1は、1つのプログラム内で並列性を抽出する方式
であり、具体的には1つのプログラム内の連続する複数
命令を同時に実行することにより、演算速度向上を図る
方法である。The first is a method of extracting parallelism in one program. Specifically, a method of simultaneously executing a plurality of continuous instructions in one program to improve the operation speed.
第2は、プログラムを複数個並列に実行することによ
り、性能向上を図る方法である。The second is a method for improving performance by executing a plurality of programs in parallel.
前者には、スーパースカラプロセッサ、VLIW計算機と
いった技術が含まれる。また後者はマルチプロセッサと
呼ばれるものである。The former includes technologies such as superscalar processors and VLIW calculators. The latter is called a multiprocessor.
なお、これらの装置は、高橋義造編「並列処理機構」
マルゼン・アドバンスト・テクノロジー(1989)や、富
田眞治著「並列計算機構成論」昭晃堂(1986)で詳説さ
れている。In addition, these devices are "Parallel processing mechanism" edited by Takahashi Yoshizo
It is described in detail in Maruzen Advanced Technology (1989) and Shinji Tomita, "Parallel Computer Architecture", Shokodo (1986).
特に、前者のスーパースカラプロセッサに関しては、
SIMP計算機が「並列処理機構」の第157頁から第162頁
に、VLIW計算機に関しては、同第134頁から第142頁に詳
説されている。In particular, regarding the former superscalar processor,
The SIMP computer is described in detail in pages 157 to 162 of the "Parallel Processing Mechanism", and the VLIW computer is described in detail in pages 134 to 142 of the same.
[発明が解決しようとする課題] 前記従来技術前者のスーパースカラプロセッサ、VLIW
計算機に関しては、近年のVLSI集積化技術の発展によ
り、1チップ内で8命令、16命令等の多重命令同時処理
可能なスーパースカラプロセッサが実現される可能性が
高いが、しかし実際的には同時に8命令、16命令処理可
能な並列性の高いプログラムは、ほとんど存在しないた
め、そのようなハードウェアの性能を十分に活かし得る
ことは非常に困難である。[Problem to be Solved by the Invention] VLIW, a superscalar processor of the former prior art
As for computers, there is a high possibility that a superscalar processor capable of simultaneously processing multiple instructions such as 8 instructions and 16 instructions in one chip will be realized due to the recent development of VLSI integration technology. Since there is almost no program with high parallelism capable of processing 8 instructions and 16 instructions, it is very difficult to fully utilize the performance of such hardware.
これは、そもそもプログラムの並列性は、プログラム
の処理形態によって、変動するものであり、配列演算等
の極く一部の処理を除いては、高い並列性は期待できな
いからである。This is because the parallelism of the program varies in the first place depending on the processing form of the program, and high parallelism cannot be expected except for a very small part of processing such as array operation.
そのため、高度な動的スケジューリング機能を内部を
有するプロセッサは、プログラムを正常に動作させるた
めに、命令間のデータ依存関係を解析し、実行中の命令
を頻繁に一時停止させたり、あるいは、VLIWに用いられ
るような高機能のコンパイラによって、プログラム中の
並列性の低い部分には、何も実行しない空白の命令コー
ドを補充する必要が生じ、演算性能向上が望めなくなっ
てしまう。For this reason, a processor with an advanced dynamic scheduling function analyzes the data dependencies between instructions and suspends the executing instructions frequently to make the program operate properly. With a high-performance compiler as used, it is necessary to supplement a blank instruction code that does not execute anything to a part with low parallelism in a program, and it is impossible to expect an improvement in arithmetic performance.
また、前記従来技術後者のマルチプロセッサに関して
は、マルチプロセッサを構成するプロセッサをスーパー
スカラプロセッサとした場合、先の問題点とは逆に、プ
ログラムの並列性が高いのにもかかわらず、プロセッサ
の側で同時処理できる命令数が少ないことが問題とな
る。Regarding the latter multiprocessor of the prior art, when the processor constituting the multiprocessor is a super scalar processor, contrary to the above problem, despite the high parallelism of the program, the The problem is that the number of instructions that can be processed simultaneously is small.
すなわち、別の観点よりは、処理すべきプログラム数
が充分ある場合は良いが、プログラム数が少ない場合は
使用されないプロセッサが生じ、これを活用することが
できないことになる。In other words, from another point of view, it is better if there are enough programs to be processed, but if the number of programs is small, some processors are unused and cannot be used.
さらに、前記従来技術前者は、一般に同時処理命令数
分の独立したパイプライン構成になっているが、個々の
パイプラインが、汎用な処理を実行できるように、汎用
な演算器を各パイプラインに持たせる場合には、演算器
の数もパイプライン数だけ必要になり、ハード量が増加
するといった問題が生じ、他方、VLIWのように、各パイ
プラインの処理する機能を限定すれば、パイプラインの
汎用性を失なわせる構成になってしまうという問題が生
じる。Further, the former prior art generally has an independent pipeline configuration corresponding to the number of simultaneous processing instructions, but a general-purpose arithmetic unit is provided in each pipeline so that each pipeline can execute general-purpose processing. In the case of having the number of processing units, the number of arithmetic units is required as much as the number of pipelines, which causes a problem that the amount of hardware increases.On the other hand, if the function of processing each pipeline is limited like VLIW, However, there is a problem that the versatility is lost.
そこで、本発明は、複数のプログラムを高速に効率良
く実行可能なデータ処理装置を提供することを目的とす
る。Therefore, an object of the present invention is to provide a data processing device capable of executing a plurality of programs at high speed and efficiently.
また、併せて、このデータ処理装置において、ハード
ウェア量を、さほど増加することなく、パイプラインの
汎用性を保つことを目的とする。Another object of the present invention is to maintain the versatility of the pipeline without significantly increasing the amount of hardware in this data processing device.
[課題を解決するための手段] 前記目的を達成するために、本発明は、複数命令を並
列に実行可能なスーパースカラプロセッサとマルチプロ
セッサの融合を図り、以下のデータ処理装置を提供する
ものである。[Means for Solving the Problems] In order to achieve the above object, the present invention provides a data processing device which combines a superscalar processor capable of executing a plurality of instructions in parallel and a multiprocessor, and provides the following data processing device. is there.
すなわち、本発明は、前記目的達成のために、並列実
行可能な複数の命令を、複数のプログラムより並列に抽
出する手段と、抽出した複数の命令を並列に実行する、
前記複数プログラムにより共用される複数の演算器とを
有することを特徴とする第1のデータ処理装置を提供す
る。That is, in order to achieve the above object, the present invention provides a means for extracting a plurality of instructions that can be executed in parallel from a plurality of programs in parallel, and executing the extracted instructions in parallel.
A first data processing device having a plurality of arithmetic units shared by the plurality of programs is provided.
このデータ処理装置は、観点を変えれば、相互に演算
器を共用する、複数命令を並列に実行可能な複数のスカ
ラプロセッサよりなることを特徴とするマルチプロセッ
サシステムとしてとらえることができる。From a different point of view, this data processing device can be considered as a multiprocessor system comprising a plurality of scalar processors that share a computing unit and that can execute a plurality of instructions in parallel.
また、本発明は、前記目的達成のために、並列実行可
能である命令数を示すシステム制御命令を含むプログラ
ムを複数格納するメモリと、 システム制御命令に応じて、並列実行可能である1以
上の命令よりなる命令列を、メモリに格納された複数の
プログラムの各プログラムより、並列に取り出す命令列
読み出し手段と、 並列に動作する複数のデコーダと、 前記命令列読み出し手段が並列に取り出した複数の命
令列を構成する、複数の命令を、前記複数のデコーダに
分配する分配手段と、 デコードされた命令を並列に実行する複数種の前記複
数の演算器と、 前記複数のデコーダと複数の演算器とを、各デコーダ
がデコードした命令種に応じて、各々接続する演算器接
続手段と、 並列に実行する命令の属する各プログラムに対応して
設けられた複数のレジスタファイルと、演算器よりの接
続要求に応じ、前記複数の演算器と複数のレジスタファ
イルとを、各演算器が実行した命令の属するプログラム
に応じて接続するレジスタファイル接続手段と、 を有することを特徴とする第2のデータ処理装置を提供
する。Further, in order to achieve the above object, the present invention provides a memory for storing a plurality of programs including a system control instruction indicating the number of instructions that can be executed in parallel, one or more programs executable in parallel according to the system control instruction. An instruction sequence reading unit that retrieves an instruction sequence composed of instructions in parallel from each of a plurality of programs stored in a memory; a plurality of decoders that operate in parallel; and a plurality of instruction units that are retrieved in parallel by the instruction sequence reading unit. Distribution means for distributing a plurality of instructions forming the instruction sequence to the plurality of decoders; a plurality of types of the plurality of arithmetic units for executing the decoded instructions in parallel; a plurality of the decoders and a plurality of the arithmetic units In accordance with the type of instruction decoded by each decoder, and arithmetic unit connection means to be connected to each other, and programs corresponding to instructions to be executed in parallel. Register file connecting means for connecting the plurality of arithmetic units and the plurality of register files according to a program to which an instruction executed by each arithmetic unit belongs, in response to a connection request from the arithmetic unit, And a second data processing device characterized by having:
なお、この第2のデータ処理装置においては、前記演
算器接続手段に代えて、 並列実行する各プログラムに対応して設けられた、前
記複数のデコーダがデコードした複数の命令の、各プロ
グラム内における命令間の依存関係を解析して命令実行
を制御する複数の動的スケジューリング手段と、 前記複数のデコーダと複数の動的スケジューリング手
段とを、各デコーダがデコードした命令の属するプログ
ラムに応じて各々接続する動的スケジューリング手段接
続手段と、 前記複数の動的スケジューリング手段と複数の演算器
とを、動的スケジューリング手段がスケジューリングし
た命令の命令種に応じて、各々接続する第2の演算器接
続手段と、 を備えるようにしても良い。In the second data processing device, instead of the arithmetic unit connection means, a plurality of instructions decoded by the plurality of decoders and provided in correspondence with the respective programs to be executed in parallel are included in each program. A plurality of dynamic scheduling means for analyzing instruction dependencies and controlling instruction execution; and connecting the plurality of decoders and the plurality of dynamic scheduling means in accordance with a program to which an instruction decoded by each decoder belongs. A second computing unit connection unit that connects the plurality of dynamic scheduling units and the plurality of computing units according to an instruction type of an instruction scheduled by the dynamic scheduling unit. , May be provided.
また、前記命令列読み出し手段を、並列に実行する複
数のプログラムに対応して設けられた、対応するプログ
ラムのシステム制御命令に応じて、各プログラムの、前
記並列実行可能である命令よりなる命令列の先頭読み出
しアドレスと、並列実行可能な命令数である読み出し命
令数とを、順次、それぞれ発生する、複数の、カウント
単位幅可変なプログラムカウンタとしても良い。In addition, the instruction sequence readout unit is provided in correspondence with a plurality of programs to be executed in parallel. The instruction sequence is composed of the parallel executable instructions of each program in accordance with a system control instruction of the corresponding program. , And a plurality of program counters, each having a variable count unit width, which are sequentially generated from the start read address and the number of read instructions that can be executed in parallel.
また、前記レジスタファイル接続手段は、前記複数の
デコーダでデコードされた命令に該命令の属するプログ
ラムを識別するプログラム番号を付与する手段と、前記
演算器に備えられた、実行する命令に付与されたプログ
ラム番号を接続要求に付加する手段と、接続要求と付加
されたプログラム番号に応じて演算器とレジスタファイ
ルを接続するスイッチマトリックスとより構成しても良
い。Further, the register file connection means is configured to provide a program number for identifying a program to which the instruction belongs to the instruction decoded by the plurality of decoders, and to be provided to the instruction to be executed provided in the arithmetic unit. The connection request may include a means for adding a program number to the connection request, and a switch matrix for connecting the arithmetic unit and the register file according to the connection request and the added program number.
また、このようにデコードされた命令に該命令の属す
るプログラムを識別するプログラム番号を付与する代わ
りに、前記メモリに格納された複数のプログラムは、各
システム制御命令内に、自プログラムが必要とする演算
器数の情報をも含み、 かつ、システム制御命令に応じて、前記各接続手段の
接続を統一的に制御する構成制御手段を備えるようにし
ても良い。Instead of giving a program number for identifying the program to which the instruction belongs to the instruction thus decoded, a plurality of programs stored in the memory are required by the own program in each system control instruction. A configuration control unit that also includes information on the number of arithmetic units and that integrally controls the connection of the connection units according to a system control command may be provided.
また、望ましくは、前記分配手段に、複数の命令より
抽出した並列実行可能な複数の命令数が、備えた複数
の、デコーダ数より多い場合に、これをプログラム単位
に、優先制御して複数のデコーダに分配する優先制御手
段を備えるのが良い。Preferably, when the number of a plurality of instructions that can be executed in parallel extracted from the plurality of instructions is larger than the number of the plurality of decoders provided, the distribution means preferably performs priority control on a per-program basis to provide a plurality of instructions. It is preferable to have priority control means for distributing to the decoder.
また、さらには、前記複数のデコーダが並列にデコー
ドした複数の命令を、プログラム単位に、演算器種毎に
優先制御して実行するのが好ましい。Further, it is preferable that a plurality of instructions decoded in parallel by the plurality of decoders are executed on a program-by-program basis with priority control for each type of arithmetic unit.
[作用] 本発明に係るデータ処理装置によれば、複数のプログ
ラムより並列実行可能な複数の命令を抽出し、抽出した
複数の命令を、複数の演算器を複数のプログラムで共用
して、並列に実行する。[Operation] According to the data processing device of the present invention, a plurality of instructions that can be executed in parallel are extracted from a plurality of programs, and the extracted instructions are shared by a plurality of arithmetic units by a plurality of programs, and To run.
したがい、複数のプログラムを高速に効率良く実行で
き、また、演算器を共用するため、ハードウェア量を、
さほど増加することなく、パイプラインの汎用性を保つ
ことができる。Accordingly, a plurality of programs can be executed efficiently at high speed, and the amount of hardware is
The versatility of the pipeline can be maintained without much increase.
また、本発明に係る第2のデータ処理装置によれば、
命令列読み出し手段は、メモリに格納された複数のプロ
グラムの各プログラムよりシステム制御命令に応じて並
列実行可能である命令よりなる命令列を、並列に取り出
し、分配手段は、命令列読み出し手段が並列に取り出し
た複数の命令列を構成する、複数の命令を、前記複数の
デコーダに分配し、演算器接続手段は、複数のデコーダ
と複数の演算器とを、各デコーダがデコードした命令種
に応じて、各々接続し、レジスタファイル接続手段は、
演算器よりの接続要求に応じ、前記複数の演算器と複数
のレジスタファイルとを、各演算器が実行した命令の属
するプログラムに応じて接続する。According to the second data processing device of the present invention,
The instruction sequence reading means takes out, in parallel, an instruction sequence consisting of instructions that can be executed in parallel according to the system control instruction from each of the plurality of programs stored in the memory. A plurality of instructions constituting the plurality of instruction sequences extracted to the plurality of decoders are distributed to the plurality of decoders, and the arithmetic unit connecting means connects the plurality of decoders and the plurality of arithmetic units according to the instruction type decoded by each decoder. Respectively, and the register file connection means is
In response to a connection request from a computing unit, the plurality of computing units and the plurality of register files are connected according to a program to which an instruction executed by each computing unit belongs.
これにより、複数のプログラムの独立性を保ちつつ、
複数の演算器をプログラム間で共用し、複数のプログラ
ムを高速に効率良く実行する。As a result, while maintaining the independence of multiple programs,
A plurality of arithmetic units are shared between programs, and a plurality of programs are executed at high speed and efficiently.
なお、この第2のデータ処理装置において、前記のよ
うに、動的スケジューリング手段を備えた場合、動的ス
ケジューリング手段接続手段は、前記複数のデコーダと
複数の動的スケジューリング手段とを、各デコーダがデ
コードした命令の属するプログラムに応じ各々接続し、
第2の演算器接続手段は、前記複数の動的スケジューリ
ング手段と複数の演算器とを、動的スケジューリング手
段がスケジューリングした命令の命令種に応じて、各々
接続することにより、動的スケジューリング手段によ
る、各プログラム内における命令間の依存関係の解析お
よび命令実行の制御を可能とする。In the second data processing device, when the dynamic scheduling means is provided as described above, the dynamic scheduling means connecting means connects the plurality of decoders and the plurality of dynamic scheduling means, Connect each according to the program to which the decoded instruction belongs,
The second computing unit connection unit connects the plurality of dynamic scheduling units and the plurality of computing units to each other according to the instruction type of the instruction scheduled by the dynamic scheduling unit. In addition, it is possible to analyze the dependency between instructions in each program and control the execution of instructions.
[実施例] 本実施例においては、説明の便宜上、4つのプログラ
ムを同時に実行可能で、トータルで8つの命令同時処理
可能なデータ処理装置を例にとり、説明する。[Embodiment] In this embodiment, for convenience of explanation, a data processing apparatus capable of simultaneously executing four programs and simultaneously processing a total of eight instructions will be described as an example.
(第1実施例) 以下、本発明に係るデータ処理装置の第1の実施例に
ついて説明する。First Embodiment Hereinafter, a first embodiment of the data processing device according to the present invention will be described.
第1図に、本第1実施例に係るデータ処理装置の構成
を示す。FIG. 1 shows the configuration of the data processing apparatus according to the first embodiment.
図中、101は、4ポート構成マルチポートインストラ
クションキャッシュメモリ、1021〜1024は可変プログラ
ムカウンタVPCで、それぞれプログラム1〜プログラム
4に対応する。In the figure, 101 is a 4-port multi-port instruction cache memory, and 1021 to 1024 are variable program counters VPC, which correspond to programs 1 to 4, respectively.
15は複数プログラム命令列フェッチ制御装置、45はプ
ログラム番号供給ユニット、601〜608はデコーダ、69は
命令実行ユニット接続装置、911〜914はLOAD/STOREユニ
ットL/S、921〜928は整数演算器IALU、931〜934は浮動
小数点加算器FADD、941〜944は浮動小数点乗算器FMUL、
75はレジスタファイル接続装置、81〜84は12ポート構成
マルチポートレジスタファイルで、それぞれプログラム
1〜プログラム4に対応する。70は4ポート構成マルチ
ポートデータキャッシュメモリを表す。15 is a multi-program instruction sequence fetch control device, 45 is a program number supply unit, 601 to 608 are decoders, 69 is an instruction execution unit connection device, 911 to 914 are LOAD / STORE units L / S, and 921 to 928 are integer arithmetic units IALU, 931 to 934 are floating point adders FADD, 941 to 944 are floating point multipliers FMUL,
75 is a register file connection device, and 81 to 84 are 12-port multi-port register files, which correspond to programs 1 to 4, respectively. 70 indicates a 4-port multiport data cache memory.
また、1031〜1034、41〜44、51〜54は制御信号線で、
それぞれがプログラム1〜プログラム4に対応する。Also, 1031 to 1034, 41 to 44, 51 to 54 are control signal lines,
Each corresponds to program 1 to program 4.
401〜408、61〜68、211〜214、221〜228、231〜234、
241〜244は制御信号線、11〜14は36バイト幅信号線で、
それぞれがプログラム1〜プログラム4に対応し、21〜
28は4バイト幅データ信号線、701〜704、711〜714は制
御信号線+4バイト幅データ信号線、721〜728、731〜7
34、741〜744は制御信号線+4バイト幅データ信号線3
本、8101〜8112、8201〜8212、8301〜8312、8401〜8412
は4バイト幅データ信号線を表す。401-408, 61-68, 211-214, 221-228, 231-234,
241 to 244 are control signal lines, 11 to 14 are 36 byte width signal lines,
Each corresponds to program 1 to program 4, 21 to
28 is a 4-byte width data signal line, 701 to 704, 711 to 714 are control signal lines + 4-byte width data signal line, 721 to 728, 731 to 7
34, 741 to 744 are control signal lines + 4 byte width data signal lines 3
Books, 8101-8112, 8201-8212, 8301-832, 8401-8412
Represents a 4-byte data signal line.
次に、その動作を説明する。 Next, the operation will be described.
可変プログラムカウンタ1021〜1024が、命令列取り出
し信号を1031〜1034の信号線を通じて101のメモリに送
り、マルチポートインストラクションキャッシュ101よ
り、複数個の同時実行可能なプログラム命令と1個のシ
ステム制御命令から成る命令列を、4プログラム分取り
出す。The variable program counters 1021 to 1024 send an instruction sequence fetch signal to the memory of 101 through the signal lines 1031 to 1034, and the multi-port instruction cache 101 outputs a plurality of simultaneously executable program instructions and one system control instruction. Instruction sequence for four programs.
取り出された4つの命令列は、それぞれ11〜14の信号
線を通って、15の複数プログラム命令列フェッチ制御装
置に入る。The fetched four instruction sequences enter 15 multi-program instruction sequence fetch control devices through signal lines 11 to 14, respectively.
複数プログラム命令列フェッチ制御装置15は送られて
きた4つの命令列各々より、プログラム実行命令を、そ
れぞれ21〜28の信号線により601から608のデコーダに送
り、更にシステム制御命令をもとに51〜54の信号線によ
り、可変プログラムカウンタ1021〜1024の更新を行い、
41〜44の信号線により45のプログラム番号供給ユニット
に、各プログラムの並列度情報を送る。The multi-program instruction sequence fetch control device 15 sends a program execution instruction from each of the four instruction sequences sent to the decoders 601 to 608 via signal lines 21 to 28, respectively. Updating of the variable program counters 1021 to 1024 by signal lines of ~ 54,
The parallelism information of each program is sent to 45 program number supply units via signal lines 41 to 44.
プログラム番号供給ユニット45では送られてきた信号
により、デコーダ601〜608に渡された各命令に、それの
所属するプログラムを示すプログラム番号を供給する。The program number supply unit 45 supplies each instruction passed to the decoders 601 to 608 with a program number indicating a program to which the instruction belongs, based on the transmitted signal.
デコーダ601〜608では、送られてきた命令をデコード
し、かつ、その命令を実行するのに必要な命令実行ユニ
ット番号を求め、命令実行ユニット接続装置に送出す
る。命令実行ユニットはデコードした命令種別より求ま
る。The decoders 601 to 608 decode the transmitted instruction, obtain an instruction execution unit number necessary to execute the instruction, and send the instruction execution unit number to the instruction execution unit connection device. The instruction execution unit is obtained from the decoded instruction type.
デコーダ601〜608でデコードされた各命令は信号線61
〜68を通って、69の命令実行ユニット接続装置により、
その命令を実行するのに必要な命令実行ユニットと接続
される。Each instruction decoded by the decoders 601 to 608 is connected to a signal line 61
Through ~ 68, with 69 instruction execution unit connection devices,
It is connected to an instruction execution unit necessary to execute the instruction.
デコーダと接続された命令実行ユニットからは、デー
タにアクセスするために、そのユニットと75のレジスタ
ファイル接続装置を結ぶ制御/データ信号線によりレジ
スタファイル接続装置75に接続要求が発せられる。From the instruction execution unit connected to the decoder, a connection request is issued to the register file connection device 75 by a control / data signal line connecting the unit and the register file connection device 75 in order to access data.
レジスタファイル接続装置75では、制御/データ信号
線より送られる接続要求のプログラム番号、接続要求種
類(READ/WRITE)により、該当するレジスタファイルの
ポートにつながる信号線と制御/データ信号線のデータ
信号線を接続する。In the register file connection device 75, the signal line connected to the port of the corresponding register file and the data signal of the control / data signal line depend on the program number of the connection request sent from the control / data signal line and the connection request type (READ / WRITE). Connect the wires.
たとえば、921のIALUが命令を実行する場合、721の信
号線により、プログラム番号1、READ要求の接続要求を
発すると、レジスタファイル接続装置75はレジスタファ
イル81のポート入出力線8101、8102と、721内の2本の
データREAD線とを接続する。For example, when the IALU of 921 executes an instruction, the connection request of the program number 1 and the READ request is issued by the signal line of 721, and the register file connection device 75 sets the port input / output lines 8101 and 8102 of the register file 81 to: The two data READ lines in 721 are connected.
また、911〜914のLOAD/STOREユニットL/Sでは、制御
/データ信号線701〜704、911〜914により70のマルチポ
ートデータキャッシュメモリとレジスタファイル81〜84
の間のデータのLOAD/STOREを行う。In the LOAD / STORE unit L / S of 911 to 914, 70 multiport data cache memories and register files 81 to 84 are provided by control / data signal lines 701 to 704 and 911 to 914.
LOAD / STORE data during the period.
ここで、第2図に、メモリ101内のプログラムの命令
列構成の1例を示す。Here, FIG. 2 shows an example of an instruction sequence configuration of a program in the memory 101.
図中、1011はプログラム1の命令列、1012はプログラ
ム2の命令列、1013はプログラム3の命令列、1014はプ
ログラム4の命令列を表す。In the figure, reference numeral 1011 denotes an instruction sequence of the program 1, 1012 denotes an instruction sequence of the program 2, 1013 denotes an instruction sequence of the program 3, and 1014 denotes an instruction sequence of the program 4.
各プログラム内の、同時実行可能な命令列は、システ
ム制御命令と、並列度数個のプログラム実行命令より構
成され、システム制御命令は上位1バイトにそのプログ
ラムの並列度情報を含む。また各命令は4バイトで構成
される。The instruction sequence that can be executed simultaneously in each program is composed of a system control instruction and several program execution instructions in parallel, and the system control instruction includes the parallelism information of the program in the upper one byte. Each instruction is composed of 4 bytes.
たとえば、第2図1011のプログラム1において、C11
〜I2の12バイトが1つの命令列を構成し、C11は上位1
バイトに並列度2を含むシステム制御命令、I1、I2は同
時実行可能なプログラム実行命令を表す。For example, in program 1 of FIG.
12 bytes of ~ I2 make up one instruction sequence, C11 is the upper 1
System control instructions I1 and I2 each including a parallelism of 2 in a byte represent program execution instructions that can be executed simultaneously.
次に、第3図に、1021(第1図参照)の可変プログラ
ムカウンタVPCの構成を示す。Next, FIG. 3 shows the configuration of the variable program counter VPC 1021 (see FIG. 1).
図中、501は加算器、502はレジスタ、51は入力制御信
号線、1031は出力制御信号線、503は制御信号線を表
す。In the figure, 501 is an adder, 502 is a register, 51 is an input control signal line, 1031 is an output control signal line, and 503 is a control signal line.
VPC1021においては、15の複数プログラム命令列フェ
ッチ制御装置から命令列のバイト数が信号線51により入
力し、また502のレジスタより前回計算した命令列の先
頭アドレスが503の信号線に送られ、両者が1031の出力
となり、更に501の加算器の2入力値となって、その結
果がレジスタ502に格納される。In the VPC 1021, the number of bytes of the instruction sequence is input from the fifteen multi-program instruction sequence fetch control devices via the signal line 51, and the head address of the previously calculated instruction sequence from the register 502 is sent to the signal line 503. Becomes the output of 1031 and further becomes the two input values of the adder 501, and the result is stored in the register 502.
次に、この可変プログラムカウンタによる、メモリ10
1からのプログラムの命令列取り出しの動作例を説明す
る。Next, the memory 10
An operation example of extracting the instruction sequence of the program from 1 will be described.
VPC1021は、メモリ101に対して、第2図における1011
のプログラム1の命令列のI1の先頭アドレスと、取り出
しデータバイト数として12バイトを指定することによっ
て、先頭命令I1から次の命令列の制御命令C12までを取
り出す。The VPC 1021 stores 1011 in FIG.
By specifying the start address of I1 of the instruction sequence of the program 1 and 12 bytes as the number of data bytes to be extracted, the control instruction C12 of the next instruction sequence from the first instruction I1 is extracted.
このとき、取り出す命令列の並列度、すなわち、取り
出しデータバイト数は、前記取り出した制御命令C11よ
り得られる。At this time, the degree of parallelism of the instruction sequence to be fetched, that is, the number of fetched data bytes is obtained from the fetched control instruction C11.
次に、15(第1図参照)の複数プログラム命令列フェ
ッチ制御装置の構成を、第4図に示す。Next, FIG. 4 shows the configuration of 15 (see FIG. 1) multi-program instruction sequence fetch control devices.
図中、151は入力線と出力線の格子上のスイッチによ
り任意の入力線と出力線が接続可能なスイッチマトリッ
クス網である。In the figure, reference numeral 151 denotes a switch matrix network to which arbitrary input lines and output lines can be connected by switches on a grid of input lines and output lines.
152は複数プログラム制御装置、153はスイッチ制御装
置である。152 is a multiple program control device, and 153 is a switch control device.
11、12、13、14は、36バイト幅のデータ入力線で、ス
イッチマトリックス網151につながり、さらに各線は、
4バイト幅構成のデータ線9本より構成される(すなわ
ち、データ入力線11は、信号線111〜119、12は121〜12
9、13は131〜139、14は141〜149より構成される)。11, 12, 13, and 14 are data input lines having a width of 36 bytes, which are connected to a switch matrix network 151.
The data input line 11 includes signal lines 111 to 119, and 12 includes 121 to 12 data lines.
9, 13 comprise 131-139, 14 comprise 141-149).
21〜28は、4バイト幅のデータ出力線で、151より出
て、それぞれ8台のデコーダ601〜608につながる。Reference numerals 21 to 28 denote 4-byte data output lines, which are output from 151 and are connected to eight decoders 601 to 608, respectively.
41〜44と51〜54は、制御信号出力線で152より出て、
前者はプログラム番号供給ユニット45と153につなが
り、後者は可変プログラムカウンタ1021〜1024につなが
る。41 to 44 and 51 to 54 are output from the control signal output line 152.
The former is connected to the program number supply units 45 and 153, and the latter is connected to the variable program counters 1021 to 1024.
また、31〜34は4バイト幅のデータ信号線、154は制
御信号線である。Reference numerals 31 to 34 denote data signal lines having a 4-byte width, and reference numeral 154 denotes a control signal line.
次に複数プログラム命令列フェッチ制御装置15の動作
を説明する。Next, the operation of the multiple program instruction sequence fetch control device 15 will be described.
メモリ101より取り出されたプログラム1の命令列の
各命令は、データ入力線111、112、…を、プログラム2
の命令列の各命令は121、122、…を、プログラム3の命
令列の各命令は131、132、…を、プログラム4の命令列
の各命令は141、142、…を通ってスイッチマトリックス
網151に入る。Each instruction of the instruction sequence of the program 1 fetched from the memory 101 connects the data input lines 111, 112,.
, 121, 122,..., 131, 132,..., And program 4 instruction sequences, 141, 142,. Enter 151.
151では、153のスイッチ制御装置により、プログラム
1〜プログラム4の順番に、プログラム実行命令が送ら
れきたデータ入力線を21〜28の出力線に、順に接続す
る。また、プログラム1〜プログラム4のシステム制御
命令が送られてきたデータ入力線を31〜34の出力線にそ
れぞれ接続する。At 151, the data input line to which the program execution command has been sent is sequentially connected to the output lines 21 to 28 in the order of program 1 to program 4 by the switch control device 153. Also, the data input lines to which the system control commands of the programs 1 to 4 are sent are connected to the output lines 31 to 34, respectively.
152の複数プログラム制御装置では、31〜34によって
送られてきた各プログラムのシステム制御命令内の、プ
ログラムの並列度情報をもとに、4プログラム間でのス
ケジューリングを行い、実行可となったプログラムに対
しては、そのプログラムの並列度情報を、41〜44の出力
線のうち、そのプログラムに対応する信号線を使って送
出する。The 152 multi-program control device performs scheduling among four programs based on the degree of parallelism of the program in the system control instruction of each program sent by 31 to 34, and executes the program that has become executable. , The parallelism information of the program is sent out using the signal line corresponding to the program among the output lines 41 to 44.
実行停止となったプログラムに対しては、何も送出し
ない。Nothing is sent to the program whose execution has been stopped.
さらに、実行可となったプログラムに対してはそのプ
ログラムの並列度情報により求めた、可変プログラムカ
ウンタVPCの更新度(命令列フェッチバイト幅)を、51
〜54の出力線のうち、そのプログラムに対応する信号線
を使って送出する。Furthermore, for the executable program, the update degree (instruction string fetch byte width) of the variable program counter VPC, which is obtained from the parallel degree information of the program, is set to 51.
The signal is transmitted using the signal line corresponding to the program among the output lines of .about.54.
実行停止となったプログラムに対しては、何も出力せ
ず、その可変プログラムカウンタは動作しないことにな
る。No output is output to the program whose execution has been stopped, and the variable program counter does not operate.
なお、実行停止となったプログラムのシステム制御命
令は、次回のスケジューリングに使われることになる。The system control instruction of the program whose execution has been stopped is used for the next scheduling.
153のスイッチ制御装置では、41〜44によって送られ
てきた各プログラムの並列度情報をもとに、制御線154
によって151を制御する。The switch control device 153 controls the control line 154 based on the parallelism information of each program sent by 41 to 44.
To control 151.
第5図は、複数プログラム命令列フェッチ制御装置15
の構成要素の1つである、152の複数プログラム制御装
置の構成を示したものである。FIG. 5 shows a multi-program instruction sequence fetch control device 15.
1 shows a configuration of 152 multiple-program control devices, which are one of the components of FIG.
図中、301〜304は4バイトの入力データのうち、上位
1バイトを取り出すユニット、30はスケジューリング制
御装置、331〜334はスイッチ、341〜344は入力値を4倍
して、さらに4を加算する演算器である。In the figure, 301 to 304 are units for extracting the upper 1 byte from the input data of 4 bytes, 30 is a scheduling control device, 331 to 334 are switches, 341 to 344 are quadrupled input values, and further add 4 Computing unit.
31〜34は、4バイト幅データ入力線で、それぞれユニ
ット301〜304につながる。Numerals 31 to 34 denote 4-byte data input lines which are connected to the units 301 to 304, respectively.
41〜44、51〜54は制御信号出力線であり、41〜44はそ
れぞれスイッチ331〜334より出て、341〜344の演算器、
スイッチ制御装置153と、プログラム番号供給ユニット
につながる。51〜54はそれぞれ演算器341〜344を出て、
1021〜1024の可変プログラムカウンタVPCにつながる。41 to 44, 51 to 54 are control signal output lines, 41 to 44 are output from switches 331 to 334, respectively, and arithmetic units 341 to 344,
It is connected to the switch control device 153 and the program number supply unit. 51 to 54 exit the calculators 341 to 344, respectively.
It leads to a variable program counter VPC of 1021 to 1024.
311〜314、321〜324は制御信号線である。 Reference numerals 311 to 314 and 321 to 324 denote control signal lines.
次に、複数プログラム制御装置152の動作を説明す
る。Next, the operation of the multiple program control device 152 will be described.
各プログラムのシステム制御命令が31〜34を通ってユ
ニット301〜304に入り、そこで並列度情報の上位1バイ
トが取り出され、311〜314に出力され、それぞれ331〜3
34のスイッチと30のスケジューリング制御装置に入る。The system control instruction of each program enters units 301-304 through 31-34, where the upper one byte of the parallelism information is taken out and output to 311-314.
Enter 34 switches and 30 scheduling controllers.
30では311〜314の入力線によって入ってきた、4プロ
グラムの並列度情報をもとに、4プログラムのスケジュ
ーリングを行い、実行可となったプログラムに対しては
321〜324の制御出力線のうちそのプログラムに対応する
ものにスイッチON信号を出力し、実行停止となったプロ
グラムは、対応する制御出力線に何も出力しない(OF
F)。At 30, the scheduling of the four programs is performed based on the parallel degree information of the four programs input through the input lines 311 to 314, and the executable program is
Among the control output lines 321 to 324, a switch ON signal is output to the control output line corresponding to the program, and the program whose execution has been stopped outputs nothing to the corresponding control output line (OF
F).
331〜334のスイッチでは、装置30よりそれぞれ制御信
号線321〜324によって制御され、入力線311〜314と出力
線41〜44を接続する動作をする。The switches 331 to 334 are controlled by the control signal lines 321 to 324 from the device 30, and operate to connect the input lines 311 to 314 and the output lines 41 to 44.
そして実行可となったプログラムに対応するスイッチ
はONになり、並列度情報が送出されることになる。Then, the switch corresponding to the executable program is turned ON, and the parallel degree information is transmitted.
実行停止となったプログラムに対応するスイッチはOF
Fのままで、並列度情報は出力線に送出されない。The switch corresponding to the program whose execution has been stopped is OF
At F, the parallelism information is not sent to the output line.
スイッチ331〜334の出力線41〜44は、複数プログラム
制御装置152から外部への出力線となり、341〜342の演
算器の入力線となって、その演算器で並列度を4倍し、
かつ4を加算することにより、対応する可変プログラム
カウンタVPCの更新度(命令列フェッチバイト)を求
め、51〜54によって出力する。The output lines 41 to 44 of the switches 331 to 334 are output lines from the plurality of program controllers 152 to the outside, are input lines of the arithmetic units of 341 to 342, and the degree of parallelism is quadrupled by the arithmetic units.
Further, by adding 4, the update degree (instruction string fetch byte) of the corresponding variable program counter VPC is obtained and output by 51 to 54.
第6図は装置152の構成要素の1つである、30のスケ
ジューリング制御装置の構成を示したものである。FIG. 6 shows the configuration of 30 scheduling control devices, which are one of the components of the device 152.
9011、9012は4入力4出力スイッチマトリックス網、
9021〜9023は、演算ユニット、90はスイッチ制御装置を
表わす。9011 and 9012 are 4-input 4-output switch matrix networks,
Reference numerals 9021 to 9023 denote arithmetic units, and 90 denotes a switch control device.
311〜314は制御信号入力線で、それぞれユニット301
〜304を出てスイッチ9011につながる。311 to 314 are control signal input lines, each of which has a unit 301
Exit through ~ 304 and connect to switch 9011.
321〜324は制御信号出力線でそれぞれスイッチ9012を
出てスイッチ331〜334を制御する。9001、9002、9031〜
9036、9041〜9044は制御信号線である。Reference numerals 321 to 324 denote control signal output lines, respectively, which exit the switch 9012 and control the switches 331 to 334. 9001, 9002, 9031 ~
9036, 9041 to 9044 are control signal lines.
第7図は、スイッチ制御装置90によるスイッチ9011、
9012の動作を表にしたものである。FIG. 7 shows a switch 9011 by the switch control device 90,
This is a table showing the operation of the 9012.
9011の入力線311〜314と出力線9031〜9034、9012の出
力線321〜324と入力線9041〜9044の接続は、両スイッチ
共、1マシンサイクル毎にラウンドロビンに対称的に接
続を切り替える。The connection between the input lines 311 to 314 and the output lines 9031 to 9034 of the 9011 and the output lines 321 to 324 of the 9012 and the input lines 9041 to 9044 are switched symmetrically in a round robin manner every machine cycle.
これによって、各プログラムの優先順位も、表のよう
にラウンドロビンに切り替わる。本実施例ではスイッチ
切り替えの1サイクルは、同時に実行されるプログラム
数に相当する4マシンサイクルとなる。As a result, the priority of each program is also switched to round robin as shown in the table. In this embodiment, one cycle of switch switching is four machine cycles corresponding to the number of programs executed simultaneously.
第8図はユニット9021の動作を表にしたものである。 FIG. 8 is a table showing the operation of the unit 9021.
9041がON時には、9031、9032からの入力をそれぞれ
a、bとすると出力は、9035は入力の加算結果a+b、
9042には9035の出力が本発明システムの同時命令処理実
行数(本実施例では8)以下ならばON、それより大きけ
ればOFFになる。When 9041 is ON, if the inputs from 9031 and 9032 are a and b, respectively, the output will be 9035,
In 9042, if the output of 9035 is equal to or less than the number of simultaneous instruction processing executed by the system of the present invention (8 in this embodiment), the output is turned ON.
また、9041がOFFの時は9021は動作しない。 When 9041 is OFF, 9021 does not operate.
なお、ユニット9022、9023の動作も同様に、制御信号
線と2入力に応じて、出力値を決定する。Similarly, the operation of the units 9022 and 9023 also determines the output value according to the control signal line and the two inputs.
第9図はユニット30内部のユニット9021〜9023による
動作をフローチャートで表したものである。FIG. 9 is a flowchart showing the operation of the units 9021 to 9023 inside the unit 30.
図示するように、パラメータの初期値を設定した後、
スイッチ制御装置90により、9041をONにして、ユニット
9021を動作させる。As shown, after setting the initial values of the parameters,
Switch 9041 is turned ON by the switch controller 90, and the unit
Activate the 9021.
ユニット9021では、2入力値を加算し、その値を9035
に出力し、さらにその値が8より大きかったら終了、8
より小さければ9042をONにして、ユニット9022を動作さ
せる。以後同様の動作をユニット9023まで行なわせる。Unit 9021 adds the two input values and sets the value to 9035
And if the value is greater than 8, end.
If smaller, 9042 is turned on, and the unit 9022 is operated. Thereafter, the same operation is performed up to the unit 9023.
このように、各ユニットの入力をラウンドロビンに切
り替え、2入力値の加算値が8より小さい場合に、順
次、次のユニットを動作させることにより、ラウンドロ
ビンにプログラムの優先度付けを行う。As described above, the input of each unit is switched to the round robin, and when the added value of the two input values is smaller than 8, the next unit is sequentially operated to give the program priority to the round robin.
以上の動作により、スケリューリング制御装置30に
は、311〜314を通って各プログラムの並列度が入力さ
れ、スイッチ9011により、311〜314と9031〜9034の接続
を行い、プログラムの優先度付けが行なわれ、優先度の
高いプログラムの順に、各プログラムの並列度の和が、
同時命令処理実行線である8を越えない範囲で、9041〜
9044の制御線をONにする。By the above operation, the degree of parallelism of each program is input to the skeletal ring control device 30 through 311 to 314, and the switch 9011 connects 311 to 314 with 9031 to 9034 to assign the priority of the program. And the sum of the parallelism of each program is
Within the range not exceeding the simultaneous instruction processing execution line of 8, 9041 to
Turn on the control line of 9044.
そして、スイッチ9012により、9041〜9044と321〜324
の接続を行い、321〜324からスイッチ接続制御信号(ON
/OFF)が送出されることになる。Then, by the switch 9012, 9041 to 9044 and 321-324
And the switch connection control signal (ON
/ OFF).
第10図は、複数プログラム命令フェッチ制御装置15の
構成要素の1つである153のスイッチ制御装置(第4図
参照)の、制御信号線154によるスイッチマトリックス
網151を制御する動作をフローチャートで表わしたもの
である。FIG. 10 is a flowchart showing an operation of controlling a switch matrix network 151 by a control signal line 154 of 153 switch controllers (see FIG. 4) which are one of the components of the multiple program instruction fetch controller 15. It is a thing.
スイッチマトリックス網151の入力線11〜14によって
送られてくる各プログラムの命令列は、同時実行可能
な、すなわち並列度分のプログラム実行命令と、システ
ム制御命令より構成されているので、11〜14それぞれの
36バイト幅入力線を構成する9本の4バイト幅入力線の
うち、先頭より(並列度数+1)本に命令列が流れるこ
とになる。Since the instruction sequence of each program transmitted by the input lines 11 to 14 of the switch matrix network 151 is composed of a program execution instruction for the degree of parallelism, that is, a program execution instruction for the degree of parallelism, and a system control instruction, each
The instruction sequence flows from the top of the nine 4-byte width input lines constituting the 36-byte width input line to (parallelism + 1).
スイッチ制御装置153は、プログラム1より順番に処
理を行うが、まず、プログラム1については、入力線41
より送られてくるプログラムの並列度をもとに、11を構
成する111〜119の最初の並列度数分の入力線を、それぞ
れ151の出力線21〜28の頭から順番に接続する。そして
(並列度数+1)番目の入力線には、システム制御命令
が流れているので、これは151の出力線31と接続する。The switch control device 153 performs the processing in order from the program 1.
Based on the degree of parallelism of the program sent from the controller, input lines corresponding to the first degree of parallelism of 111 to 119 constituting 11 are connected in order from the head of output lines 21 to 28 of 151, respectively. Since the system control command is flowing to the (parallelism + 1) th input line, this is connected to the output line 31 of 151.
プログラム2、プログラム3、プログラム4、に対し
ても同様に処理し、順番に、それぞれ入力線42、43、44
より送られてくる各プログラムの並列度をもとに、プロ
グラム実行命令の流れる入力線を、21から28の出力線
で、まだ未接続のもののうち、先頭から順に接続し、シ
ステム制御命令の流れる入力線を、プログラム2に対し
ては151の出力線32に、プログラム3に対しては33に、
プログラム4に対しては34にそれぞれ接続する。The same processing is performed for the program 2, the program 3, and the program 4, and the input lines 42, 43, 44
Based on the degree of parallelism of each program sent, the input line through which the program execution instruction flows is connected to the output lines 21 to 28 from the unconnected ones in order from the top, and the system control instruction flows Input lines to 151 output lines 32 for program 2, 33 to program 3,
34 is connected to the program 4.
次に、複数プログラム命令フェッチ制御装置15の動作
を処理の具体例をもって示す。Next, the operation of the multiple program instruction fetch control device 15 will be described with a specific example of processing.
第2図においてメモリ101よりプログラム1の命令列
としてI1、I2、C12が、プログラム2の命令列としてJ
1、J2、C22が、プログラム3の命令列としてK1、K2、C3
2が、プログラム4の命令列としてL1、L2、C42が、取り
出されたとすると、第4図において、各プログラムの命
令列はそれぞれ111〜113、121〜123、131〜133、141〜1
43を通って151のスイッチマトリックス網に入る。In FIG. 2, I1, I2, and C12 are used as the instruction sequence of the program 1 from the memory 101, and J is used as the instruction sequence of the program 2.
1, J2, C22 are K1, K2, C3
Assuming that L1, L2, and C42 are extracted as instruction sequences of program 4 in FIG. 4, in FIG. 4, instruction sequences of respective programs are 111 to 113, 121 to 123, 131 to 133, and 141 to 1 respectively.
Through 43 enter the 151 switch matrix network.
153のスイッチ制御装置は、前回命令列を取り出した
ときの各プログラムのシステム制御命令C11、C21、C3
1、C41によって、41〜44より入力した各プログラムの並
列度情報2、2、2、2をもとに、151内で111は21、11
2は22、113は31、121は23、122は24、123は32、131は2
5、132は26、133は33、141は27、142は28、143は34に接
続する。The switch control device 153 includes the system control instructions C11, C21, C3
1. Based on the parallelism information 2, 2, 2, 2 of each program inputted from 41 to 44 by C41, 111 in 151 is 21, 11 in 151.
2 is 22, 113 is 31, 121 is 23, 122 is 24, 123 is 32, 131 is 2.
5, 132 is connected to 26, 133 is connected to 33, 141 is connected to 27, 142 is connected to 28, and 143 is connected to 34.
31〜34に接続されて152の複数プログラム制御装置に
送られた、各プログラムのシステム制御命令C12、C22、
C32、C42は第5図において、ユニット301から304で各プ
ログラムの並列度情報2、2、1、8は取り出す。取り
出された並列度情報はそれぞれ311〜314によってスイッ
チ331〜334と30のスケジューリング制御装置に送られ
る。Connected to 31-34 and sent to 152 multiple program controllers, system control instructions C12, C22,
In C32 and C42, the parallelism information 2, 2, 1, and 8 of each program is extracted from the units 301 to 304 in FIG. The extracted parallelism information is sent to the scheduling control devices of the switches 331 to 334 and 30 by 311 to 314, respectively.
スケジューリング制御装置30では、第7図のマシンサ
イクルで2番目の、プログラム優先順位が、4、1、
2、3の順であったとすると、第5図の30の出力線321
〜324のうち324のみOK信号を発し、スイッチ334、演算
器344、プログラムカウンタ1024のみ動作し、メモリ101
よりプログラム4の命令列L3、L4、L5、L6、L7、L8、L
9、L10、C43のみを取り出す。In the scheduling control device 30, the second program priority in the machine cycle shown in FIG.
Assuming that the order is 2, 3, the output line 321 of FIG.
Only the switch 334, the computing unit 344, and the program counter 1024 operate, and the memory 101
Instruction sequence L3, L4, L5, L6, L7, L8, L of program 4
9. Take out only L10 and C43.
取り出された命令列は141〜149を通って151のスイッ
チマトリックス網に入る。The fetched instruction sequence enters the switch matrix network of 151 through 141-149.
153のスイッチ制御装置は、41〜44のうち44のみより
入力されるプログラム4の並列度情報8をもとに、151
内で141は21、142は22、143は23、144は24、145は25、1
46は26、147は27、148は28、149は34に接続する。Based on the parallelism information 8 of the program 4 input from only 44 out of 41 to 44, the switch control device 153
Within 141 is 21, 142 is 22, 143 is 23, 144 is 24, 145 is 25, 1
46 connects to 26, 147 connects to 27, 148 connects to 28, and 149 connects to 34.
…以下、同様の動作が行なわれる。 ..., the same operation is performed.
第11図は45のプログラム番号供給ユニット(第1図参
照)の動作をフローチャートで表したものである。FIG. 11 is a flowchart showing the operation of the program number supply unit 45 (see FIG. 1).
入力線41より送られて来るプログラム1の並列度分だ
け、プログラム番号供給ユニットの出力線401〜408に対
し、頭から順に、プログラム番号「1」を出力する。同
様に、入力線42より得られるプログラム2の並列度分だ
け、出力線401〜408の未使用分に頭から順にプログラム
番号「2」を出力し、同様の動作をプログラム3、プロ
グラム4に対しても行う。The program number “1” is output to the output lines 401 to 408 of the program number supply unit in order from the beginning by the degree of parallelism of the program 1 sent from the input line 41. Similarly, the program number “2” is sequentially output from the beginning to the unused portion of the output lines 401 to 408 by the parallel degree of the program 2 obtained from the input line 42, and the same operation is performed for the program 3 and the program 4. Even do.
第12図は、69の命令実行ユニット接続装置(第1図参
照)の構成を示したものである。FIG. 12 shows the configuration of the 69 instruction execution unit connection device (see FIG. 1).
図中、691はスイッチマトリックス網、692はスイッチ
制御装置、61〜68はそれぞれデコーダ601〜608でデコー
ドされた命令と、プログラム番号と、命令実行ユニット
番号が送られてくる入力線で、前の2つはそれぞれ612
〜682の信号線によりスイッチマトリックス網691につな
がり、後の1つはそれぞれ611〜681の信号線によりスイ
ッチ制御装置692につながる。In the figure, 691 is a switch matrix network, 692 is a switch control device, and 61 to 68 are input lines to which instructions, program numbers, and instruction execution unit numbers respectively decoded by the decoders 601 to 608 are sent. Two are 612 each
.About.682 signal lines connect to the switch matrix network 691, and the other one connects to the switch controller 692 by 611.about.681 signal lines, respectively.
出力線211〜214はそれぞれLOAD/STOREユニット911〜9
14と、221〜228はそれぞれIALU921〜928と、231〜234は
それぞれFADD931〜934と、241〜244はそれぞれFMUL941
〜944とつながる。Output lines 211-214 are LOAD / STORE units 911-9 respectively
14, 221 to 228 are IALU 921 to 928, respectively, 231 to 234 are FADD931 to 934, respectively, and 241 to 244 are FMUL941, respectively.
Connect with ~ 944.
693は、スイッチ制御装置692がスイッチマトリックス
網691を制御するための制御信号線である。693 is a control signal line for the switch control device 692 to control the switch matrix network 691.
次に、命令実行ユニット接続装置69の動作を説明す
る。Next, the operation of the instruction execution unit connection device 69 will be described.
第13図はスイッチ制御装置692の、制御信号線693によ
るスイッチマトリックス網691を制御する動作をフロー
チャートで表わしたものである。FIG. 13 is a flowchart showing the operation of the switch control device 692 for controlling the switch matrix network 691 by the control signal line 693.
611〜681により、デコードされた各命令を実行するの
に必要な命令実行ユニット番号が、スイッチ制御装置69
2に送られる。According to 611 to 681, the instruction execution unit number necessary to execute each decoded instruction is stored in the switch control device 69.
Sent to 2.
692では、611より順番に、それより得られる命令実行
ユニット番号をもとに、その番号が1(L/S)なら出力
線211〜214に対し、2(IALU)なら221〜228に対し、3
(FADD)なら231〜234に対し、4(FMUL)なら241〜244
に対し、612〜682を頭から順々に接続する。In 692, in order from 611, based on the instruction execution unit number obtained therefrom, if the number is 1 (L / S), output lines 211-214; if 2 (IALU), 221-228; 3
(FADD) is 231-234, while 4 (FMUL) is 241-244
, 612 to 682 are sequentially connected from the head.
第14図は、75のレジスタファイル接続装置(第1図参
照)の構成図を示したものである。FIG. 14 shows a block diagram of a 75 register file connection device (see FIG. 1).
図中、751はスイッチマトリックス網、752はスイッチ
制御装置を表す。In the figure, reference numeral 751 denotes a switch matrix network, and 752 denotes a switch control device.
711〜714は各L/Sから75への入出力線で、そのうち711
1〜7141は各L/Sよりプログラム番号、接続要求を752へ
送り、7112〜7142は4バイト幅入出力線で751とつなが
る。同様に721〜744は各演算実行ユニットIALU、FADD、
FMULから75への入出力線で、そのうち、7211〜7441は各
演算実行ユニットよりプログラム番号、接続要求を752
へ送り、721a〜744a、721b〜744b、4バイト幅出力線、
721c〜744cは4バイト幅入力線で751とつながる。711-714 are input / output lines from each L / S to 75, of which 711
1 to 7141 send a program number and a connection request from each L / S to 752, and 7112 to 7142 are connected to 751 by 4-byte input / output lines. Similarly, 721 to 744 are operation execution units IALU, FADD,
Input / output lines from FMUL to 75, of which 7211 to 7441 transfer program numbers and connection requests from each execution unit to 752
721a-744a, 721b-744b, 4-byte width output line,
721c to 744c are 4-byte input lines and are connected to 751.
8101〜8112、8201〜8212、8301〜8312、8401〜8412は
それぞれプログラム1、プログラム2、プログラム3、
プログラム4に対応するマルチポートレジスタファイル
81、82、83、84の各ポートと接続する入出力線である。8101 to 8112, 8201 to 8212, 8301 to 8312, and 8401 to 8412 are Program 1, Program 2, Program 3,
Multi-port register file corresponding to program 4
These are input / output lines connected to the ports 81, 82, 83 and 84.
753は、752が751を制御するための制御信号線であ
る。753 is a control signal line for the 752 to control the 751.
次にレジスタファイル接続装置75の動作を説明する。 Next, the operation of the register file connection device 75 will be described.
第15図は752の、制御信号線753によるスイッチマトリ
ックス網751を制御する動作をフローチャートで表わし
たものである。図中U(1)、U(2)、U(3)、U
(4)はそれぞれL/S、IALU、FADD、FMULの個数を表
す。FIG. 15 is a flowchart showing the operation of the control signal line 753 for controlling the switch matrix network 751 by the control signal line 753. U (1), U (2), U (3), U
(4) indicates the numbers of L / S, IALU, FADD, and FMUL, respectively.
7111〜7441により、命令実行ユニットからプログラム
番号、接続要求が、スイッチ制御装置752に送られる。According to 7111 to 7441, the instruction execution unit sends a program number and a connection request to the switch control device 752.
752では、7111より順番に、もしそれが要求を発して
いたならば、それより得られるプログラム番号、接続要
求をもとに、プログラム番号が1なら入出力線8101〜81
12に対し、2なら8201〜8212に対し、3なら8301〜8312
に対し、4なら8401〜8412に対し、先頭から順々に、接
続要求による必要な本数だけ接続する。In 752, in order from 7111, if it has issued a request, based on the program number and connection request obtained from it, if the program number is 1, I / O lines 8101-81
For 12, 2 for 8201 to 8212, for 3 for 8301 to 8312
On the other hand, if it is 4, the necessary number of connections according to the connection request are connected to 8401 to 8412 sequentially from the top.
ここで言う必要な本数とは、L/Sに関してはREAD/WRIT
Eの要求に対して1本、その他の命令実行ユニットに対
しては2本、WRITE要求に対しては1本となる。The required number here is READ / WRIT for L / S
One for the request of E, two for the other instruction execution units, and one for the WRITE request.
なお、本第1実施例においては、VLIW計算機を基本と
し、レジスタ競合は全てコンパイラによって調査、解消
され、実行時にレジスタ競合をチェックしないものとし
て説明した。In the first embodiment, the VLIW computer is used as a basis, and all register conflicts are examined and resolved by the compiler, and the register conflicts are not checked at the time of execution.
しかし、実行時にレジスタ競合を調べるスーパースカ
ラプロセッサを基本とすることも可能であり、この場
合、次に述べる第2実施例で示すように同時実行可能な
プログラム数分のスケジューラ(本実施例では4)を設
け、各スケジューラが、各プログラムについて、プログ
ラム供給ユニット45から供給されるプログラム番号に基
づいて、デコーダ601〜608がデコードした命令間のスケ
ジューリングを行うようにすれば良い。However, it is also possible to use a super scalar processor that checks for register conflicts at the time of execution. In this case, as shown in the second embodiment described below, a scheduler for the number of simultaneously executable programs (4 in this embodiment) ) May be provided so that each scheduler performs scheduling between instructions decoded by the decoders 601 to 608 based on the program number supplied from the program supply unit 45 for each program.
(第2実施例) 以下本発明に係るデータ処理装置の第2の実施例につ
いて説明する。Second Embodiment Hereinafter, a second embodiment of the data processing device according to the present invention will be described.
第16図に、本実施例に係るデータ処理装置の全体構成
を示す。FIG. 16 shows the overall configuration of the data processing device according to the present embodiment.
図中、2101は、4ポート構成マルチポートインストラ
クションキャッシュメモリ、21021〜21024は可変プログ
ラムカウンタVPCで、それぞれ個別のプログラムの命令
を読み出すために使用される。2601〜2608は命令デコー
ダ、2041〜2044はスーパースカラプロセッサの動的スケ
ジューラを表す。2911〜2914はLOAD/STOREユニット(L/
S)、2921〜2928は整数演算器(IALU)、2931〜2934は
浮動小数点加算器(FADD)、2941〜2944は浮動小数点乗
算器(FMUL)、2081〜2084は24ポート構成(16入力、8
出力)マルチポートレジスタファイルで、それぞれ個別
のプログラムのデータを一時的に保持する。In the figure, reference numeral 2101 denotes a multi-port instruction cache memory having a 4-port configuration, and reference numerals 21021 to 21024 denote variable program counters VPC, which are used to read instructions of individual programs. Reference numerals 2601 to 2608 denote instruction decoders, and reference numerals 2041 to 2044 denote dynamic schedulers of a superscalar processor. 2911 to 2914 are LOAD / STORE units (L /
S), 2921 to 2928 are integer arithmetic units (IALU), 2931 to 2934 are floating point adders (FADD), 2941 to 2944 are floating point multipliers (FMUL), 2081 to 2084 are 24-port configurations (16 inputs, 8
Output) A multiport register file that temporarily holds the data of each individual program.
2070は4ポート構成マルチポートデータキャッシュメ
モリを表す。2070 indicates a 4-port multi-port data cache memory.
2015〜2018はスイッチ回路で、スイッチ2015はメモリ
2101と命令デコーダ2601〜2608とを接続し、スイッチ20
16は命令デコーダ2601〜2608と動的スケジューラ2041〜
2044とを接続し、スイッチ2017は動的スケジューラ2041
〜2044と各種ALU2911〜2914,2921〜2928、2931〜2934、
2941〜2944とを接続し、スイッチ2018は各種ALU2911〜2
944とレジスタファイル2081〜2084とを接続する。2015 to 2018 are switch circuits, switch 2015 is memory
2101 and instruction decoders 2601-2608, and switch 20
16 is an instruction decoder 2601-2608 and a dynamic scheduler 2041-
2044 and switch 2017 is a dynamic scheduler 2041
~ 2044 and various ALU 2911 ~ 2914, 2921 ~ 2928, 2931 ~ 2934,
2941 to 2944, and switch 2018 switches to various ALU 2911 to 2
944 is connected to register files 2081 to 2084.
2050は該システム構成を変更する、構成制御ユニット
を表す。Reference numeral 2050 denotes a configuration control unit that changes the system configuration.
また、21031〜21034、2511〜2514は制御信号線で、そ
れぞれが個別のプログラムに対応する。Reference numerals 21031 to 21034 and 2511 to 2514 denote control signal lines, each of which corresponds to an individual program.
2061〜2068はデコードされた命令を伝える信号線、41
11〜4118と4121〜4128、4211〜4218と4221〜4228、4311
〜4318と4321〜4328、4411〜4418と4421〜4428も同様の
信号線で、それぞれが個別のプログラムに対応する。20
52〜2055は制御信号線である。2061-2068 are signal lines for transmitting decoded instructions, 41
11-4118 and 4121-4128, 4211-4218 and 4221-4228, 4311
4318 to 4321 to 4328, 4411 to 4418 and 4421 to 4428 are similar signal lines, each corresponding to an individual program. 20
52 to 2055 are control signal lines.
2011〜2014は32バイト幅信号線で、それぞれが個別の
プログラムに対応する。2011 to 2014 are 32-byte signal lines, each corresponding to a separate program.
2021〜2028は4バイト幅データ信号線、2701〜2704、
2711〜2714は制御信号線+4バイト幅データ信号線、27
21〜2728、2731〜2734、2741〜2744は制御信号線+4バ
イト幅データ信号線×3本(入力2、出力1)、8101〜
8124、8201〜8224、8301〜8324、8401〜8424は制御信号
線+4バイト幅データ信号線を表す。2021 to 2028 are 4-byte data signal lines, 2701 to 2704,
2711 to 2714 are control signal lines + 4 byte width data signal lines, 27
21 to 2728, 2731 to 2734, 2741 to 2744 are control signal lines + 4 byte width data signal lines x 3 (input 2, output 1), 8101 to
Reference numerals 8124, 8201 to 8224, 8301 to 8324, and 8401 to 8424 represent control signal lines + 4 byte width data signal lines.
次に、本第2実施例に係るデータ処理装置の標準的な
動作を説明する。Next, a standard operation of the data processing apparatus according to the second embodiment will be described.
VPC21021〜21024が、命令取り出し信号を信号線21031
〜21034を通じてメモリ2101に送り、メモリ2101からそ
れぞれ1個以上の命令を、4プログラム分取り出す。VPC 21021 to 21024 send the instruction fetch signal to signal line 21031.
To the memory 2101 through 21021034, and fetches one or more instructions from the memory 2101 for four programs.
取り出された命令は、それぞれ信号線2011〜2014を介
して、スイッチ2015に送られる。The fetched instructions are sent to the switch 2015 via the signal lines 2011 to 2014, respectively.
スイッチ2015では信号線2011〜2014と2021〜2028との
回路接続を行い、メモリ2101より取り出された命令を命
令デコーダ2601〜2608に送る。The switch 2015 makes a circuit connection between the signal lines 2011 to 2014 and 2021 to 2028, and sends the instruction fetched from the memory 2101 to the instruction decoders 2601 to 2608.
命令デコーダ2601〜2608では、送られてきた命令を解
釈する。The instruction decoders 2601-2608 interpret the transmitted instruction.
デコードされた各命令は、信号線2061〜2068を介し
て、スイッチ2016に送られる。スイッチ2016では信号線
2061〜2068と4111〜4118、4211〜4218、4311〜4318、44
11〜4418との回路接続を行い、命令デコーダ2601〜2608
より取り出されたデコード済み命令を、各プログラムに
対応する動的スケジューラ2041〜2044に送る。Each decoded instruction is sent to the switch 2016 via the signal lines 2061 to 2068. Switch 2016 signal line
2061-2068 and 4111-4118, 4211-4218, 4311-4318, 44
Perform circuit connection with 11 to 4418, instruction decoder 2601 to 2608
The extracted decoded instructions are sent to the dynamic schedulers 2041 to 2044 corresponding to each program.
動的スケジューラ2041〜2044では、それぞれ送られて
きたデコード済み命令のデータ依存関係等をチェック
し、レジスタ競合を起こさない範囲で複数個の命令を同
時に実行させる。The dynamic schedulers 2041 to 2044 check the data dependence and the like of the decoded instructions that have been sent, and execute a plurality of instructions simultaneously within a range that does not cause register conflict.
具体的には、レジスタ競合を起こす命令の実行を遅延
させる。動的スケジューラ2041〜2044で同時実行可能も
しくは遅延実行可能と判断された各プログラムの命令
は、それぞれのプログラムに対応するレジスタファイル
2081〜2084を用いて命令を実行する。Specifically, execution of an instruction causing a register conflict is delayed. The instructions of each program determined to be simultaneously executable or delayed executable by the dynamic schedulers 2041 to 2044 are stored in a register file corresponding to each program.
The instruction is executed using 2081 to 2084.
この時、演算装置として、スイッチ2017、2018によっ
て各プログラムに割り当てられたALU2911〜2914、2921
〜2928、2931〜2934、2941〜2944を使用する。At this time, ALU 2911 to 2914, 2921 assigned to each program by switches 2017 and 2018 as arithmetic devices
~ 2928, 2931-2934, 2941-2944 are used.
なお、本第2実施例においては、実行時にレジスタ競
合を調べるスーパースカラプロセッサを仮定している
が、実行時にレジスタ競合をチェックしないVLIW計算機
を基本として考えることもできる。この場合は、動的ス
ケジューラ41〜44は必要とならない。レジスタ競合は全
てコンパイラによって調査、解消されることになる。In the second embodiment, a superscalar processor that checks for register conflicts at the time of execution is assumed. However, a VLIW computer that does not check for register conflicts at the time of execution can be considered as a basis. In this case, the dynamic schedulers 41 to 44 are not required. All register conflicts will be investigated and resolved by the compiler.
以下、本データ処理装置の構成変更動作について説明
する。Hereinafter, the configuration change operation of the data processing apparatus will be described.
第17図は、メモリ101内のプログラムの命令列構成の
1例を示したものである。FIG. 17 shows an example of an instruction sequence configuration of a program in the memory 101.
21011はプログラム1の実行命令、21012はプログラム
2の実行命令、21013はプログラム3の実行命令、21014
はプログラム4の実行命令を表わす。21011 is an execution instruction of program 1, 21012 is an execution instruction of program 2, 21013 is an execution instruction of program 3, 21014
Represents an execution instruction of the program 4.
各命令は4バイトで構成される。 Each instruction is composed of 4 bytes.
図中、I11、I12…はプログラム命令をC11、C41はシス
テム制御命令を表す。In the figure, I11, I12... Represent program instructions and C11 and C41 represent system control instructions.
本第2実施例において、システム制御命令は、そのプ
ログラムの並列度情報と共に必要なALU種別および、そ
の数を含む。In the second embodiment, the system control instruction includes the required ALU type and the number thereof along with the degree of parallelism of the program.
図中、命令列21011はシステム制御命令C11により並列
度2が指定され、I11とI12、I21とI22、I31とI32、…は
同時実行可能な命令列を意味する。In the figure, an instruction sequence 21011 has a parallelism of 2 specified by a system control instruction C11, and I11 and I12, I21 and I22, I31 and I32,.
命令列21012はシステム制御命令を持たない命令列の
例である。The instruction sequence 21012 is an example of an instruction sequence having no system control instruction.
命令列21013はシステム制御命令C31により並列度4が
指定され、K21〜K24は同時実行可能な命令列を意味す
る。The instruction sequence 21013 has a parallelism of 4 specified by the system control instruction C31, and K21 to K24 mean instruction sequences that can be executed simultaneously.
命令列21014はシステム制御命令C41により並列度8が
指定され、L11〜L18は同時実行可能な命令列を意味す
る。The instruction sequence 21014 has a parallelism of 8 specified by the system control instruction C41, and L11 to L18 mean instruction sequences that can be executed simultaneously.
なおユーザプログラム内でシステム制御命令を使用す
る場合は、プログラムの構成が変更される毎にシステム
制御命令を挿入する方法や、あるいは読み出される命令
列中に毎回システム制御命令を挿入する方法等を用いる
ことができる 第18図は、VPC21021の構成図である。なおVPC21022〜
21024も同様の構成をとる。When a system control instruction is used in a user program, a method of inserting the system control instruction every time the configuration of the program is changed, or a method of inserting the system control instruction each time in a read instruction sequence is used. FIG. 18 is a configuration diagram of the VPC 21021. VPC21022 ~
21024 also has a similar configuration.
図中、2500は2ビットシフタ、2501は加算器、2502、
2503はレジスタを表す。In the figure, 2500 is a 2-bit shifter, 2501 is an adder, 2502,
2503 indicates a register.
構成変更時には、構成制御ユニット2050から信号線25
11を介して送られてくる実行命令数の値をシフタ2500に
より2ビットシフトして(4倍して)、レジスタ2503に
記憶されている命令読み出しバイト数を書き換える。When the configuration is changed, the signal from the configuration control unit 2050 to the signal line 25
The value of the number of executed instructions transmitted via 11 is shifted by 2 bits (quadrupled) by the shifter 2500, and the number of instruction read bytes stored in the register 2503 is rewritten.
また、レジスタ2502には前回計算した命令読み出し先
頭アドレスが格納されており、この両レジスタの出力が
VPC21021の出力となり、信号線21031を介してメモリ210
1に送られる。即ちVPC21021は、命令の読み出し先頭ア
ドレスと読み出し命令数とを出力するプログラムカウン
タである。The register 2502 stores the instruction read start address calculated last time.
It becomes the output of VPC 21021, and the memory 210 is output via the signal line 21031.
Sent to one. That is, the VPC 21021 is a program counter that outputs the read start address of the instruction and the number of read instructions.
さらに、両レジスタの出力は、加算器2501の2入力値
となり、その演算結果が次回命令読み出し先頭アドレス
としてレジスタ2502に格納される。Further, the outputs of both registers become two input values of the adder 2501, and the operation result is stored in the register 2502 as the next instruction read start address.
第19図に、構成制御ユニット2050の構成を示す。 FIG. 19 shows the configuration of the configuration control unit 2050.
2551〜2554は、システム制御命令から並列度と必要AL
U数を取り出すユニット、5631〜5634は各プログラムの
並列度情報を格納するレジスタ、5641〜5644は各プログ
ラムの必要ALU数情報を格納するレジスタ、2571は、各
プログラムから同時に読み出す命令数を制御する複数プ
ログラム制御ユニット、2572は、各プログラムに必要な
ALUを割り当てるALU割り当て制御ユニットである。2551 to 2554 are the degree of parallelism and required AL from the system control instruction.
A unit for extracting the U number, 5631 to 5634 are registers for storing parallel degree information of each program, 5641 to 5644 are registers for storing required ALU number information of each program, and 2571 is for controlling the number of instructions to be simultaneously read from each program. Multiple program control unit, 2572, required for each program
An ALU assignment control unit that assigns ALUs.
2581、2582、2583はスイッチ制御ユニットで、それぞ
れスイッチ2015、スイッチ2016、スイッチ2017、2018の
切り替え制御を行う。Reference numerals 2581, 2582, and 2583 denote switch control units that control switching of the switches 2015, 2016, 2017, and 2018, respectively.
2059は、実行中の4つのプログラム間で優先順位を決
定し、該優先順位に従ってプログラムの実行順序を制御
するプログラム間スケジューリングユニットである。Reference numeral 2059 denotes an inter-program scheduling unit that determines a priority order among the four running programs and controls the execution order of the programs according to the priority order.
次に、構成制御ユニット2050の動作を説明する。 Next, the operation of the configuration control unit 2050 will be described.
動的スケジューラ2041〜2044の何れかにおいて、シス
テム制御命令が検出されると、対応する信号線2541〜25
44によって、ユニット2551〜2554に伝えられる。命令中
に含まれる並列度と必要ALU数はユニット2531〜2534に
おいて取り出され、取り出された並列度は、信号線5611
〜5614により、必要ALU数は、信号線5621〜5624によ
り、対応するレジスタ5631〜5634、5641〜5644に格納さ
れる。When a system control instruction is detected in any of the dynamic schedulers 2041 to 2044, the corresponding signal line 2541 to 2525
By 44, it is conveyed to units 2551-2554. The degree of parallelism included in the instruction and the required number of ALUs are extracted in units 2531 to 2534, and the extracted degree of parallelism is determined by the signal line 5611.
According to 565614, the required number of ALUs is stored in the corresponding registers 5631 to 5634 and 5641 to 5644 by signal lines 5621 to 5624.
複数プログラム制御ユニット2571、ALU割り当て制御
ユニット2572は、プログラム間スケジューリングユニッ
ト2059によって制御される。The multiple program control unit 2571 and the ALU assignment control unit 2572 are controlled by the inter-program scheduling unit 2059.
複数プログラム制御ユニット2571は、レジスタ5631〜
5634に格納されている各プログラムの並列度をもとに、
各プログラムの読み出し命令数を決定し、その読み出し
命令数を制御線2511〜2514により出力し、VPC21021〜21
024、スイッチ制御ユニット2581、2582に伝える。The multiple program control unit 2571 has registers 5631 to
Based on the degree of parallelism of each program stored in 5634,
The number of read instructions of each program is determined, and the number of read instructions is output through control lines 2511 to 2514.
024, inform the switch control units 2581, 2852.
ALU割り当て制御ユニット2572は、レジスタ5641〜564
4に格納されている各プログラムの必要ALU数をもとに、
各プログラムのALU使用数情報を決定し、スイッチ制御
ユニット2583に伝える。ALU allocation control unit 2572 has registers 5641 through 564
Based on the required number of ALUs for each program stored in 4,
The ALU usage number information of each program is determined and transmitted to the switch control unit 2583.
複数プログラム制御ユニット2571は、実行される各プ
ログラムの読み出し命令数、すなわち各プログラムに対
して割り当てられる命令デコーダ数を求めるユニットで
ある。The multiple program control unit 2571 is a unit that obtains the number of read instructions of each program to be executed, that is, the number of instruction decoders assigned to each program.
すなわち、複数プログラム制御ユニット2571は、プロ
グラム間スケジューリングユニット2059によって示され
る優先順位の高いプログラムから順番に、プログラムの
並列度を調べる。その総和が命令デコーダ数(本実施例
ではn=8)を越えない範囲で、各プログラムにおいて
取り出すべき命令数を決定し、該命令数を信号線2511〜
2514に出力する。命令デコーダを割り当てることの出来
にプログラムは、実行が一時的に凍結される。実行が凍
結されたプログラムは、その後、優先順位が高くなれ
ば、凍結が解除される。That is, the multiple program control unit 2571 checks the parallelism of the programs in order from the program with the highest priority indicated by the inter-program scheduling unit 2059. As long as the sum does not exceed the number of instruction decoders (n = 8 in this embodiment), the number of instructions to be taken out in each program is determined, and the number of instructions is determined by signal lines 2511 to 2511.
Output to 2514. Execution of the program is temporarily frozen when the instruction decoder can be assigned. The program whose execution has been frozen is then released if the priority becomes higher.
第20図は、複数プログラム制御ユニット2571の動作を
表すフローチャートである。FIG. 20 is a flowchart showing the operation of the multiple program control unit 2571.
実行すべきプログラムが、VLIW計算機を基本としたシ
ステム用のコンパイラで変換されたものならば(図中、
コンパイルモードON)、プログラムの優先度の高い順に
指定された並列度分だけ、プログラムに対して命令デコ
ーダを割り当てる。If the program to be executed is converted by the compiler for the system based on VLIW computer (in the figure,
Compile mode ON), and assigns instruction decoders to the program by the specified degree of parallelism in the order of program priority.
またスーパースカラを基本としたシステム用のプログ
ラムに対しては、基本的にはVLIWと同様であるが、余っ
た命令デコーダも優先度の高い順に割り当てる。Also, for a program for a system based on superscalar, it is basically the same as VLIW, but the surplus instruction decoders are also allocated in descending order of priority.
ALU割り当て制御ユニット2572は、実行される各プロ
グラムに対して、必要なALUを割り当てる。複数プログ
ラム制御ユニット2571と同様、プログラム間スケジュー
リングユニット2059によって示される優先順位の高いプ
ログラムから順番に、各種ALUの必要個数を調べる。そ
の総和が各種ALU総数を越えない範囲で、各プログラム
に対して割り当てるALU数を決定し、その情報を信号線2
540に出力する。The ALU assignment control unit 2572 assigns a necessary ALU to each program to be executed. Like the multiple program control unit 2571, the required number of various ALUs is checked in order from the program with the highest priority indicated by the inter-program scheduling unit 2059. As long as the sum does not exceed the total number of various ALUs, the number of ALUs to be assigned to each program is determined, and the information is transferred to signal line 2.
Output to 540.
必要なALUを割り当てることの出来ないプログラム
は、実行が凍結される。実行が凍結されたプログラム
は、その後、必要なALUが使用可能となれば、凍結が解
除される。Programs that cannot be assigned the required ALU are frozen. The frozen program is then unfrozen when the required ALU becomes available.
第21図は、ALU割り当て制御ユニット2572の動作を表
すフローチャートである。FIG. 21 is a flowchart showing the operation of the ALU assignment control unit 2572.
実行すべきプログラムが、VLIW計算機を基本としたシ
ステム用のコンパイラで変換されたものならば(図中、
コンパイルモードON)、プログラムの優先度の高い順
に、指定されたALU数分だけALUを割り当てる。また、ス
ーパースカラを基本としたシステム用のプログラムに対
しては、最低各種ALUを1つずつ与え、余ったALUを優先
度の高い順に1つずつ割り当てる。If the program to be executed is converted by the compiler for the system based on VLIW computer (in the figure,
Compile mode is ON), and ALUs are allocated by the specified number of ALUs in order of program priority. For a program for a superscalar-based system, at least one ALU is assigned at a time, and the remaining ALUs are assigned one by one in descending order of priority.
スイッチ制御ユニット2581は、制御線2052を介して、
スイッチ2015を切り替え、各プログラムにおいて取り出
された命令を命令デコーダ2601〜2608に伝える。The switch control unit 2581 is connected via a control line 2052,
The switch 2015 is switched to transmit the instructions fetched in each program to the instruction decoders 2601-2608.
スイッチ制御ユニット2582は、制御線2053を介して、
スイッチ2016を切り替え、命令デコーダ2601〜2608でデ
コードされた命令を、対応するプログラムの動的スケジ
ューラ2041〜2044に伝える。The switch control unit 2582 is connected via a control line 2053,
The switch 2016 is switched, and the instructions decoded by the instruction decoders 2601 to 2608 are transmitted to the corresponding program dynamic schedulers 2041 to 2044.
スイッチ制御ユニット2583は、制御線2055を介して、
スイッチ2017、2018を切り替え、各種ALU2911〜2914、2
921〜2928、2931〜2934、2941〜2944を、対応するプロ
グラムの動的スケジューラ2041〜2044、レジスタファイ
ル2081〜2084と接続する。The switch control unit 2583 is connected via the control line 2055,
Switch switch 2017, 2018, various ALU 2911-2914, 2
921 to 2928, 2931 to 2934, 2941 to 2944 are connected to the corresponding program dynamic schedulers 2041 to 2044 and register files 2081 to 2084.
第22図は、スイッチ2017の構成図である。1701〜1704
はALU選択スイッチ、175はALU接続スイッチを表す。FIG. 22 is a configuration diagram of the switch 2017. 1701-1704
Represents an ALU selection switch, and 175 represents an ALU connection switch.
図中、4121〜4128、4221〜4228、4321〜4328、4421〜
4428は、動的スケジューラからの入力線、2055は構成制
御ユニット2050からの入力線、17101〜17120、17201〜1
7220、17301〜17320、17401〜17420は、各ALU選択スイ
ッチとALU接続スイッチを結ぶ信号線で、2211〜2214、2
221〜2228、2231〜2234、2241〜2244は、各種ALU2911〜
2914、2921〜2928、2931〜2934、2941〜2944に接続され
る出力線である。In the figure, 4121-4128, 4221-4228, 4321-4328, 4421-
4428 is an input line from the dynamic scheduler, 2055 is an input line from the configuration control unit 2050, 17101-17120, 17201-1
7220, 17301 to 17320, and 17401 to 17420 are signal lines connecting each ALU selection switch and the ALU connection switch.
221-2228, 2231-2234, 2241-2244 are various ALU2911-
Output lines connected to 2914, 2921 to 2928, 2931 to 2934, and 2941 to 2944.
各ALU選択スイッチ1701〜1704からの出力線の本数はA
LU総数に等しく、信号線17101〜17120、17201〜17220、
17301〜17320、17401〜17420は、それぞれALU2911〜294
4と一対一に対応する。The number of output lines from each ALU selection switch 1701-1704 is A
Equal to the total number of LUs, signal lines 17101-17120, 17201-17220,
17301-17320, 17401-17420 are ALU2911-294, respectively
Corresponds to 4: 1.
ALU接続スイッチ2175は、構成制御ユニット2050から
の制御線2055を介して、切り替え制御が行われる。The switching of the ALU connection switch 2175 is controlled via a control line 2055 from the configuration control unit 2050.
各ALU選択スイッチ1701〜1704と、各種ALU2911〜291
4、2921〜2928、2931〜2934、2941〜2944の中から必要
なALUを接続することにより、動的スケジューラ2041〜2
044と命令を実行するために必要なALUとの接続が行われ
る。Each ALU selection switch 1701-1704 and various ALU 2911-291
4, 2921 ~ 2928, 2931 ~ 2934, 2941 ~ 2944, connect the required ALUs to create a dynamic scheduler 2041-2
044 is connected to the ALU required to execute the instruction.
第23図は、スイッチ2018の構成図である。1801〜1804
はポート選択スイッチ、2185はALU接続スイッチを表
す。FIG. 23 is a configuration diagram of the switch 2018. 1801-1804
Represents a port selection switch, and 2185 represents an ALU connection switch.
2711〜2714、2721〜2728、2731〜2734、2741〜2744
は、各種ALU2911〜2914、2921〜2928、2931〜2934、294
1〜2944とALU接続スイッチ2185を結ぶ信号線、2055は構
成制御ユニット2050からの入力線、18101〜18120、1820
1〜18220、18301〜18320、18401〜18420は、ALU接続ス
イッチ2185とポート選択スイッチ1801〜1804を結ぶ信号
線、8101〜8124、8201〜8224、8301〜8324、8401〜8424
は、各レジスタファイル2081〜2084のポートに接続する
データ線である。2711-2714, 2721-2728, 2731-2734, 2741-2744
Are ALU 2911-2914, 2921-2928, 2931-2934, 294
A signal line connecting 1 to 2944 and the ALU connection switch 2185, 2055 is an input line from the configuration control unit 2050, 18101 to 18120, 1820
1 to 18220, 18301 to 18320, 18401 to 18420 are signal lines connecting the ALU connection switch 2185 and the port selection switches 1801 to 1804, 8101 to 8124, 8201 to 8224, 8301 to 8324, 8401 to 8424
Are data lines connected to the ports of each of the register files 2081 to 2084.
各ポート選択スイッチ1801〜1804とALU接続スイッチ2
185とを結ぶ信号線の本数はALU総数に等しく、信号線18
101〜18120、18201〜18220、18301〜18320、18401〜184
20は、それぞれALU2911〜2944と一対一に対応する。Port selection switches 1801-1804 and ALU connection switch 2
The number of signal lines connecting to 185 is equal to the total number of ALUs.
101-18120, 18201-18220, 18301-18320, 18401-184
20 corresponds one-to-one with ALU 2911 to 2944, respectively.
ALU接続スイッチ2185も、スイッチ2017内のALU接続ス
イッチ2175と同様、構成制御ユニット2050からの制御線
2055を介して切り替え制御が行われる。そして、各レジ
スタファイルポート選択スイッチと、各種ALU2911〜291
4、2921〜2928、2931〜2934、2941〜2944の中から必要
なALUを接続することにより、レジスタファイル2081〜2
084と命令を実行するために必要なALUとの接続が行われ
る。The ALU connection switch 2185 is the same as the ALU connection switch 2175 in the switch 2017.
Switching control is performed via 2055. Then, each register file port selection switch and various ALU 2911 to 291
4, 2921 ~ 2928, 2931 ~ 2934, 2941 ~ 2944, connect the required ALU to register file 2081-2
084 is connected to the ALU necessary to execute the instruction.
以上のように、本第2実施例においては、ALU2911〜2
914、2921〜2928、2931〜2934、2941〜944を、各プログ
ラムに固定してデコーダに接続する。As described above, in the second embodiment, ALU 2911-2
914, 2921 to 2928, 2931 to 2934, 2941 to 944 are fixed to each program and connected to the decoder.
しかし、前記第1実施例と同様に、ALUをプログラム
に固定せず、各プログラムの命令実行時に必要なALUを
判断して接続する方式も考えられる。However, as in the first embodiment, a method is also conceivable in which the ALU is determined and connected at the time of executing an instruction of each program without fixing the ALU to the program.
以下、この場合について説明する。 Hereinafter, this case will be described.
この場合、動的スケジューラ2041〜2044は命令出力時
に、各命令に対してどのプログラムに所属するかを示す
プログラム番号と、どの種類のALUを使用するかを示すA
LU番号を付加する。In this case, at the time of instruction output, the dynamic schedulers 2041 to 2044 provide a program number indicating which program belongs to each instruction and an A indicating which type of ALU is used.
Add LU number.
なお、この方式の場合、前記第1実施例と同様、シス
テム制御命令において必要ALU数を示すフィールドは必
要ない。In the case of this system, a field indicating the required number of ALUs is not required in the system control instruction as in the first embodiment.
さらに、構成制御ユニット2050内においてもALU割り
当て制御ユニット2572、スイッチ制御ユニット2583が不
要となる。Further, the ALU assignment control unit 2572 and the switch control unit 2583 are not required in the configuration control unit 2050.
また、スイッチ2017、2018内に、ALU選択ユニット170
1〜1704、1801〜1804の代わりに、スイッチ制御ユニッ
ト2176、2186を導入し、スイッチ2017a、2018aとする。Also, within the switches 2017 and 2018, the ALU selection unit 170
Instead of 1-1704 and 1801-1804, switch control units 2176 and 2186 are introduced, and switches 2017a and 2018a are provided.
第24図に、スイッチ2017aの構成を示す。図中、2175
はALU接続スイッチ、2176はスイッチ制御ユニットであ
る。FIG. 24 shows the configuration of the switch 2017a. In the figure, 2175
Is an ALU connection switch, and 2176 is a switch control unit.
4121〜4128、4221〜4228、4321〜4328、4421〜4428
は、それぞれ動的スケジューラ2041〜2044からの入力線
である。4121-4128, 4221-4228, 4321-4328, 4421-4428
Are input lines from the dynamic schedulers 2041 to 2044, respectively.
各入力線には、デコード済み命令、プログラム番号、
ALU番号が流れる。Each input line has a decoded instruction, program number,
ALU number flows.
デコード済み命令とプログラム番号の2つは41212〜4
1282、42212〜42282、43212〜43282、44212〜44282の信
号線によりALU接続スイッチ2175に入力され、ALU番号は
41211〜41281、42211〜42281、43211〜43281、44211〜4
4281の信号線により、スイッチ制御ユニット2176に入力
される。The decoded instruction and the program number are 41212-4
1282, 42212 to 42282, 43212 to 43282, and 44212 to 44282 are input to the ALU connection switch 2175 through signal lines, and the ALU number is
41 211-41281, 42 211- 42281, 43 211- 43281, 44 211-4
The signal is input to the switch control unit 2176 via the signal line 4281.
出力線2211〜2214、2221〜2228、2231〜2234、2241〜
2244は、それぞれALU2911〜2914、2921〜2928、2931〜2
934、2941〜2944と接続される。Output lines 2211-2214, 2222-1228, 2231-2234, 2241-
2244 is ALU 2911-2914, 2921-2928, 2931-2, respectively
Connected to 934, 2941-2944.
2177は、スイッチ制御ユニット2176がALU接続スイッ
チ2175を制御するための制御信号線である。Reference numeral 2177 denotes a control signal line for the switch control unit 2176 to control the ALU connection switch 2175.
次に、このスイッチ2017の動作を説明する。 Next, the operation of the switch 2017 will be described.
第25図は、ALU接続スイッチ2175の動作を表すフロー
チャートである。信号線41211〜44281により、スイッチ
制御ユニット2176に対して、各命令を実行するのに必要
なALU番号が与えられる。FIG. 25 is a flowchart showing the operation of the ALU connection switch 2175. The signal lines 41111 to 44281 give the switch control unit 2176 an ALU number required to execute each instruction.
スイッチ制御ユニット2176では、信号線41211〜44281
によって示されるALU番号が1(L/S)ならば出力線2211
〜2214に対し、2(IALU)ならば2221〜2228に対し、3
(FADD)ならば2231〜2234に対し、4(FMUL)ならば22
41〜2244に対し、信号線41212〜44282を接続する。In the switch control unit 2176, signal lines 41211 to 44281
If the ALU number indicated by is 1 (L / S), output line 2211
2-22 for IALU, 221-2228 for 3
(FADD) is 2231 to 2234, whereas 4 (FMUL) is 22
Signal lines 41212 to 44282 are connected to 41 to 2244.
第26図は、スイッチ2018aの構成図を示したものであ
る。2185はALU接続スイッチ、2186はスイッチ制御ユニ
ットを表す。FIG. 26 shows a configuration diagram of the switch 2018a. Reference numeral 2185 denotes an ALU connection switch, and 2186 denotes a switch control unit.
2711〜2714は各L/Sからスイッチ2018への入出力線で
あり、そのうち7111〜7141は各L/Sよりプログラム番
号、接続要求をスイッチ制御ユニット2186へ送る信号線
で、7112〜7142は制御信号線+4バイト幅入出力線であ
る。同様に2721〜2744はIALU、FADD、FMULからスイッチ
2018aへの入出力線であり、そのうち、7211〜7441は各A
LUよりプログラム番号、接続要求をスイッチ制御ユニッ
ト2186へ送る信号線で、2721a〜2744a、2721b〜2744bは
制御信号線+4バイト幅出力線、2721c〜2744cは制御信
号線+4バイト幅入力線である。8101〜8124、8201〜82
24、8301〜8324、8401〜8424はそれぞれマルチポートレ
ジスタファイル2081、2082、2083、2084の各ポートと接
続される入出力線である。2711 to 2714 are input / output lines from each L / S to the switch 2018, of which 7111 to 7141 are signal lines for sending a program number and a connection request from each L / S to the switch control unit 2186, and 7112 to 7142 are for control. It is a signal line + 4 byte width input / output line. Similarly, 2721 to 2744 switch from IALU, FADD, FMUL
Input / output lines to 2018a, of which 7211-7441 are each A
2721a to 2744a and 2721b to 2744b are control signal lines + 4 byte width output lines, and 2721c to 2744c are control signal lines + 4 byte width input lines. 8101-8124, 8201-82
Reference numerals 24, 8301 to 8324, and 8401 to 8424 are input / output lines connected to the ports of the multiport register files 2081, 2082, 2083, and 2084, respectively.
2187は、スイッチ制御ユニット2186がALU接続スイッ
チ2185を制御するための制御信号線である。2187 is a control signal line for the switch control unit 2186 to control the ALU connection switch 2185.
次にスイッチ2018aの動作を説明する。 Next, the operation of the switch 2018a will be described.
第27図はALU接続スイッチ2185の動作を表すフローチ
ャートである。FIG. 27 is a flowchart showing the operation of the ALU connection switch 2185.
信号線7111〜7441によって、スイッチ制御ユニット21
86に対して、各ALUからプログラム番号、接続要求が伝
えられる。The signal lines 7111 to 7441 enable the switch control unit 21
The program number and connection request are transmitted to 86 from each ALU.
スイッチ制御ユニット2186では、信号線7111〜7441か
ら得られるプログラム番号、接続要求をもとに、プログ
ラム番号が1ならば入出力線8101〜8124に対し、2なら
ば入出力線8201〜8224に対し、3ならば入出力線8301〜
8324に対し、4ならば入出力線8401〜8424に対し、接続
要求によって示される本数分だけの信号線を接続する。In the switch control unit 2186, based on the program number and the connection request obtained from the signal lines 7111 to 7441, if the program number is 1, the input / output lines 8101 to 8124 are provided; if the program number is 2, the input / output lines 8201 to 8244 are provided. If 3, input / output line 8301 ~
If 8324, 4 signal lines are connected to the input / output lines 8401 to 8424 by the number indicated by the connection request.
なお、ここで言う示す信号線の本数とは、前記第1実
施例と同様、L/Sに関してはREAD/WRITEの要求に対して
1本、その他の命令実行ユニットに対しては、READ要求
に対しては2本、WRITE要求に対しては1本である。Note that the number of signal lines shown here is one for a READ / WRITE request for L / S and a READ request for other instruction execution units, as in the first embodiment. Two for the WRITE request and one for the WRITE request.
以上のように本発明の第1、第2実施例によれば、デ
ータ処理装置内に、処理するプログラムの並列性に応じ
て、逐次構造を変化させる、マルチプロセッサ構成を実
現し、該データ処理装置内で、同時に処理できる命令数
を複数のプログラムで補償することにより、データ処理
装置の稼動率を向上させることにより、ハードウェアの
性能を十分に活かすことが可能となる。As described above, according to the first and second embodiments of the present invention, a multiprocessor configuration in which a sequential structure is changed in a data processing device according to the parallelism of a program to be processed is realized. By compensating the number of instructions that can be processed simultaneously in the device by a plurality of programs, the operating rate of the data processing device is improved, and the hardware performance can be fully utilized.
すなわち、スーパースカラプロセッサ、もしくはVLIW
計算機上において、処理するプログラムの並列性に応じ
て、動的に構造を変化させるマルチプロセッサ構成を実
現し、同時に処理できる命令数を複数のプログラムで増
やすことにより、データ処理装置内の並列処理機構の稼
動率を向上させることができる。That is, a superscalar processor or VLIW
On a computer, a multi-processor configuration in which the structure is dynamically changed according to the parallelism of the program to be processed is realized, and the number of instructions that can be processed simultaneously is increased by a plurality of programs, so that the parallel processing mechanism in the data processing device is realized. Operation rate can be improved.
また、コンパイラも、ハードウェア上の定まった並列
度に無理に合致させる必要がなく、個々のプログラムが
有する並列度に応じた、複数命令処理オブジェクファイ
ルを作れば良く、コンパイラの負担を減少させることが
できる。Also, there is no need to force the compiler to match the fixed degree of parallelism on the hardware. It is sufficient to create a multi-instruction processing object file according to the degree of parallelism of each program, reducing the burden on the compiler. Can be.
さらに、種々のALU資源を共有することにより、資源
の節約、および、高速専用演算器導入による処理の高速
化を図ることができる。Furthermore, by sharing various ALU resources, resources can be saved and processing can be speeded up by introducing a high-speed dedicated arithmetic unit.
また、スーパースカラを基本としたシステム構成にお
いては、プロセッサ内の同時処理可能な命令数が増減し
た場合でも、同じアーキテクチャを維持している限り、
ソフトウェアの互換性は保持できる。Also, in a system configuration based on superscalar, even if the number of instructions that can be processed simultaneously in the processor increases or decreases, as long as the same architecture is maintained,
Software compatibility can be maintained.
以上のように、本発明によれば、複数のプログラムよ
り、同時処理可能な命令を取りだし、同時に実行するた
め、複数のプログラムを高速に効率良く実行することが
できる。As described above, according to the present invention, since instructions that can be processed simultaneously are fetched from a plurality of programs and are simultaneously executed, the plurality of programs can be executed quickly and efficiently.
また、このデータ処理装置において、複数プログラム
の実行に、演算器を共用することにより、ハードウェア
量を、さほど増加することなく、パイプラインの汎用性
を保つことができる。Further, in this data processing device, by sharing the arithmetic unit for executing a plurality of programs, the versatility of the pipeline can be maintained without increasing the amount of hardware so much.
第1図は本発明の第1実施例に係るデータ処理装置の全
体構成を示すブロック図、第2図はプログラムの命令列
の構成を示す説明図、第3図は可変プログラムカウンタ
の構成を示すブロック図、第4図は複数プログラム命令
列フェッチ制御装置の構成を示すブロック図、第5図は
複数プログラム制御装置の構成を示すブロック図、第6
図はスケジューリング制御装置の構成を示すブロック
図、第7図はスイッチの動作およびプログラムの優先順
位を示す説明図、第8図はスケジューリング制御装置内
のユニットの動作を示す説明図、第9図はスケジューリ
ング制御装置内のユニットの動作アルゴリズムを示すフ
ローチャート、第10図はスイッチ制御装置のスイッチマ
トリックス網制御アルゴリズムを示すフローチャート、
第11図はプログラム番号供給ユニットの動作アルゴリズ
ムを示すフローチャート、第12図は命令実行ユニット接
続装置の構成を示すブロック図、第13図はスイッチ制御
装置のスイッチマトリックス網制御アルゴリズムを示す
のフローチャート、第14図はレジスタファイル接続装置
の構成を示すブロック図、第15図はスイッチ制御装置の
スイッチマトリックス網制御アルゴリズムを示すのフロ
ーチャート、第16図は本発明の第2実施例に係るデータ
処理装置の全体構成を示すブロック図、第17図はプログ
ラム命令の構成を示す説明図、第18図は可変プログラム
カウンタの構成を示す説明図、第19図は構成制御ユニッ
トの構成を示すブロック図、第20図は複数プログラム制
御ユニットの動作アルゴリズムを示すフローチャート、
第21図はALU割り当て制御ユニットの動作アルゴリズム
を示すフローチャート、第22図は動的スケジューラとAL
Uを接続するスイッチの構成を示すブロック図、第23図
はALUとマルチポートレジスタファイルを接続するスイ
ッチの構成を示すブロック図、第24図は動的スケジュー
ラとALUを接続するスイッチの他の構成を示すブロック
図、第25図は他の構成における動的スケジューラとALU
を接続するスイッチの動作アルゴリズムを示すフローチ
ャート、第26図はALUとアルチポートレジスタファイル
を接続するスイッチの他の構成を示すブロック図、第27
図は他の構成におけるALUとマルチポートレジスタファ
イルを接続するスイッチの動作アルゴリズムを示すフロ
ーチャートである。 15……複数プログラム命令列フェッチ制御装置、30……
スケジューリング制御装置、45……プログラム番号供給
ユニット、69……命令実行ユニット接続装置、70……マ
ルチポートデータキャッシュメモリ、75……レジスタフ
ァイル接続装置、81〜84……マルチポートレジスタファ
イル、101……マルチポートインストラクションキャッ
シュメモリ、151、691、751、9011、9012……スイッチ
マトリックス網、152……複数プログラム制御装置、15
3、692、7522、90……スイッチ制御装置、601〜608……
命令デコーダ、1021〜1024……可変プログラムカウン
タ、1701〜1704〜ALU選択スイッチ、1801〜1804……ポ
ート選択スイッチ、2015〜2018……スイッチ回路、2041
〜2044……動的スケジューラ、2050……構成制御ユニッ
ト、2059……プログラム間スケジューリングユニット、
2070……マルチポートデータキャッシュメモリ、2081〜
2084……マルチポートレジスタファイル、2101……マル
チポートインストラクションキャッシュメモリ、2175、
2185……ALU接続スイッチ、2186……スイッチ制御ユニ
ット、2571……複数プログラム制御ユニット、2572……
ALU割り当て制御ユニット、2581、2582、2583、2176、2
601〜2608……命令デコーダ、2911〜2914、2921〜292
8、2931〜2334、2941〜2944……演算器、21021〜21024
……可変プログラムカウンタ。FIG. 1 is a block diagram showing an overall configuration of a data processing apparatus according to a first embodiment of the present invention, FIG. 2 is an explanatory diagram showing a configuration of a program instruction sequence, and FIG. 3 shows a configuration of a variable program counter. FIG. 4 is a block diagram showing the configuration of a multiple program instruction sequence fetch control device, FIG. 5 is a block diagram showing the configuration of a multiple program instruction sequence control device, FIG.
FIG. 7 is a block diagram showing the configuration of the scheduling control device, FIG. 7 is an explanatory diagram showing the operation of the switches and the priorities of the programs, FIG. 8 is an explanatory diagram showing the operation of the units in the scheduling control device, and FIG. Flow chart showing the operation algorithm of the unit in the scheduling control device, FIG. 10 is a flowchart showing the switch matrix network control algorithm of the switch control device,
FIG. 11 is a flowchart showing an operation algorithm of a program number supply unit, FIG. 12 is a block diagram showing a configuration of an instruction execution unit connection device, FIG. 13 is a flowchart showing a switch matrix network control algorithm of a switch control device, FIG. FIG. 14 is a block diagram showing the configuration of the register file connection device, FIG. 15 is a flowchart showing the switch matrix network control algorithm of the switch control device, and FIG. 16 is the entire data processing device according to the second embodiment of the present invention. FIG. 17 is a block diagram showing the configuration of a program instruction, FIG. 18 is an explanatory diagram showing the configuration of a variable program counter, FIG. 19 is a block diagram showing the configuration of a configuration control unit, FIG. Is a flowchart showing the operation algorithm of the multiple program control unit,
FIG. 21 is a flowchart showing the operation algorithm of the ALU assignment control unit, and FIG. 22 is a dynamic scheduler and AL.
FIG. 23 is a block diagram illustrating a configuration of a switch connecting the ULU, FIG. 23 is a block diagram illustrating a configuration of a switch connecting the ALU and the multi-port register file, and FIG. 24 is another configuration of a switch connecting the dynamic scheduler and the ALU. FIG. 25 is a dynamic scheduler and ALU in another configuration.
26 is a flowchart showing an operation algorithm of a switch for connecting the ALU, FIG. 26 is a block diagram showing another configuration of the switch for connecting the ALU and the multiport register file, and FIG.
The figure is a flowchart showing an operation algorithm of a switch for connecting an ALU and a multi-port register file in another configuration. 15 …… Multi-program instruction sequence fetch control device, 30 ……
Scheduling controller, 45: Program number supply unit, 69: Instruction execution unit connection device, 70: Multiport data cache memory, 75: Register file connection device, 81 to 84: Multiport register file, 101: … Multi-port instruction cache memory, 151, 691, 751, 9011, 9012… Switch matrix network, 152… Multiple program controllers, 15
3, 692, 7522, 90 ... Switch control device, 601-608 ...
Instruction decoder, 1021 to 1024 ... Variable program counter, 1701 to 1704 to ALU selection switch, 1801 to 1804 ... Port selection switch, 2015 to 2018 ... Switch circuit, 2041
2044 ... dynamic scheduler, 2050 ... configuration control unit, 2059 ... ... inter-program scheduling unit,
2070 …… Multi-port data cache memory, 2081 ~
2084: Multi-port register file, 2101: Multi-port instruction cache memory, 2175,
2185 ALU connection switch, 2186 Switch control unit, 2571 Multiple program control unit, 2572
ALU assignment control unit, 2581, 2582, 2583, 2176, 2
601-2608 ...... Instruction decoder, 2911-2914, 2921-292
8, 2931 to 2334, 2941 to 2944 ... Calculator, 21021 to 21024
... Variable program counter.
フロントページの続き (72)発明者 小林 芳樹 茨城県日立市久慈町4026番地 株式会社 日立製作所日立研究所内 (56)参考文献 特開 昭63−254530(JP,A) 久我守弘(外3名)”SIMP(単一 命令流/多重パイプライン)方式に基づ くスーパースカラ『新風』の性能評 価”,並列処理シンポジウム JSPP ’90,(平成2年5月)P.337−344 (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 Continuation of front page (72) Inventor Yoshiki Kobayashi 4026 Kuji-cho, Hitachi City, Ibaraki Prefecture Inside Hitachi Research Laboratory, Hitachi, Ltd. (56) References JP-A-63-254530 (JP, A) Morihiro Kuga (3 outside) Performance evaluation of super scalar “Shinkaze” based on SIMP (single instruction flow / multiple pipeline) ”, Parallel Processing Symposium JSPP '90, (May 1990) 337-344 (58) Field surveyed (Int. Cl. 6 , DB name) G06F 9/38
Claims (9)
グラムより抽出する手段と、 前記複数のプログラムにより共用される、並列に動作可
能な複数の演算器と、 抽出した複数の命令を、各プログラムの並列実行可能な
命令数を示す並列度情報に基づいて、複数の演算器に分
配する手段と を有することを特徴とするデータ処理装置。1. A means for extracting a plurality of instructions which can be executed in parallel from a plurality of programs, a plurality of arithmetic units which are shared by the plurality of programs and which can be operated in parallel; Means for distributing to a plurality of arithmetic units based on parallelism information indicating the number of instructions that can be executed in parallel in each program.
に基づいて、並列実行可能である1以上の命令よりなる
命令列を、メモリに格納された複数のプログラムの各プ
ログラムより、並列に取り出す命令列読み出し手段と、 並列に動作する複数のデコーダと、 前記命令列読み出し手段が並列に取り出した複数の命令
列を構成する、複数の命令を、各プログラムの並列実行
可能な命令数を示す並列度情報に基づいて、前記複数の
デコーダに分配する分配手段と、 デコードされた命令を並列に実行する複数種の複数の演
算器と、 前記複数のデコーダと複数の演算器とを、各デコーダが
デコードした命令種に応じて、各々接続する演算器接続
手段と、 並列に実行する命令の属する各プログラムに対応して設
けられた複数のレジスタファイルと、 演算器よりの接続要求に応じ、前記複数の演算器と複数
のレジスタファイルとを、各演算器が実行した命令の属
するプログラムに応じて接続するレジスタファイル接続
手段と、 を有することを特徴とするデータ処理装置。2. A memory for storing a plurality of programs, and an instruction sequence including one or more instructions that can be executed in parallel is stored in the memory based on parallelism information indicating the number of instructions that can be executed in parallel in each program. An instruction sequence readout unit that takes out in parallel from each of the plurality of programs, a plurality of decoders that operate in parallel, and a plurality of instructions that constitute a plurality of instruction sequences that the instruction sequence readout unit takes out in parallel. A distribution unit that distributes the instructions to the plurality of decoders based on parallel degree information indicating the number of instructions that can be executed in parallel in each program; a plurality of types of arithmetic units that execute the decoded instructions in parallel; Arithmetic unit connecting means for connecting the decoder and the plurality of arithmetic units according to the instruction type decoded by each decoder; and each program to which instructions to be executed in parallel belong A plurality of register files provided correspondingly, and a register for connecting the plurality of arithmetic units and the plurality of register files in accordance with a program to which an instruction executed by each arithmetic unit in response to a connection request from the arithmetic unit A data processing device comprising: file connection means.
に基づいて、並列実行可能である1以上の命令よりなる
命令列を、メモリに格納された複数のプログラムの各プ
ログラムより、並列に取り出す命令列読み出し手段と、 並列に動作する複数のデコーダと、 前記命令列読み出し手段が並列に取り出した複数の命令
列を構成する、複数の命令を、各プログラムの並列実行
可能な命令数を示す並列度情報に基づいて、前記複数の
デコーダに分配する分配手段と、 並列実行する各プログラムに対応して設けられた、前記
複数のデコーダがデコードした複数の命令の、各プログ
ラム内における命令間の依存関係解析して命令実行を制
御する複数の動的スケジューリング手段と、 前記複数のデコーダと複数の動的スケジューリング手段
とを、各プログラムの並列実行可能な命令数を示す並列
度情報に基づいて、各々接続する動的スケジューリング
手段接続手段と、 デコードされた命令を並列に実行する複数種の複数の演
算器と、 前記複数の動的スケジューリング手段と複数の演算器と
を、動的スケジューリング手段がスケジューリングした
命令の命令種に応じて、各々接続する第2の演算器接続
手段と、 並列に実行する命令の属する各プログラムに対応して設
けられた複数のレジスタファイルと、 演算器よりの接続要求に応じ、前記複数の演算器と複数
のレジスタファイルとを、各演算器が実行した命令の属
するプログラムに応じて接続するレジスタファイル接続
手段と、 を有することを特徴とするデータ処理装置。3. A memory for storing a plurality of programs, and an instruction sequence including one or more instructions that can be executed in parallel is stored in the memory based on parallelism information indicating the number of instructions that can be executed in parallel in each program. An instruction sequence readout unit that takes out in parallel from each of the plurality of programs, a plurality of decoders that operate in parallel, and a plurality of instructions that constitute a plurality of instruction sequences that the instruction sequence readout unit takes out in parallel. Distribution means for distributing to the plurality of decoders based on parallelism information indicating the number of instructions that can be executed in parallel for each program; and a plurality of decoders provided for the programs to be executed in parallel and decoded by the plurality of decoders. A plurality of dynamic scheduling means for controlling the execution of instructions by analyzing the dependencies between the instructions in each program of the plurality of instructions; A dynamic scheduling means for connecting the program and a plurality of dynamic scheduling means based on parallelism information indicating the number of instructions which can be executed in parallel in each program; and a plurality of means for executing the decoded instructions in parallel. A plurality of types of arithmetic units; a second arithmetic unit connection unit that connects the plurality of dynamic scheduling units and the plurality of arithmetic units, respectively, according to an instruction type of an instruction scheduled by the dynamic scheduling unit; A plurality of register files provided corresponding to each program to which instructions to be executed in parallel belong, and each of the plurality of arithmetic units and the plurality of register files are executed by each of the arithmetic units in response to a connection request from the arithmetic unit. A data processing device comprising: register file connection means for connecting according to a program to which an instruction belongs.
あって、 前記複数のデコーダでデコードされた命令に該命令の属
するプログラムを識別するプログラム番号を付与する手
段を備え、 前記演算器は、 実行する命令に付与されたプログラム番号を接続要求に
付加し、 前記レジスタファイル接続手段は、 接続要求と付加されたプログラム番号に応じて、演算器
とレジスタファイルを接続する ことを特徴とするデータ処理装置。4. The data processing device according to claim 2, further comprising: a unit for assigning a program number for identifying a program to which the instruction belongs to the instruction decoded by the plurality of decoders, A program number assigned to an instruction to be executed is added to a connection request, and the register file connection means connects the arithmetic unit and the register file according to the connection request and the added program number. Processing equipment.
あって、 前記分配手段に、 複数のプログラムより抽出した並列実行可能な命令数
が、備えたデコーダ数より多い場合に、これをプログラ
ム単位に、優先制御して複数のデコーダに分配する優先
制御手段を備えた ことを特徴とするデータ処理装置。5. The data processing apparatus according to claim 2, wherein the distribution means stores the program in a case where the number of instructions executable in parallel extracted from a plurality of programs is larger than the number of decoders provided. A data processing device comprising priority control means for performing priority control and distributing to a plurality of decoders in units.
あって、 前記複数のデコーダが並列にデコードした複数の命令
を、プログラム単位に、演算器種毎に優先制御して実行
する ことを特徴とするデータ処理装置。6. The data processing device according to claim 2, wherein the plurality of instructions decoded by the plurality of decoders in parallel are executed in a program unit with priority control for each type of arithmetic unit. Characteristic data processing device.
タ処理装置であって、 各プログラムの並列実行可能な命令数を示す並列度情報
は、各プログラムに含まれるシステム制御命令から取得
する ことを特徴とするデータ処理装置。7. The data processing apparatus according to claim 1, wherein the parallelism information indicating the number of instructions that can be executed in parallel of each program is obtained from a system control instruction included in each program. A data processing device characterized by acquiring.
た、対応するプログラムのシステム制御命令に応じて、
各プログラムの、前記並列実行可能である命令よりなる
命令列の先頭読み出しアドレスと、 並列実行可能な命令数である読み出し命令数と を、順次、それぞれ発生する、複数の、カウント単位幅
可能なプログラムカウンタである ことを特徴とするデータ処理装置。8. The data processing apparatus according to claim 7, wherein said instruction sequence reading means is provided in correspondence with a plurality of programs to be executed in parallel, and in accordance with a system control instruction of a corresponding program.
A plurality of programs each capable of generating a count unit width, each of which sequentially generates a head read address of an instruction sequence composed of the instructions that can be executed in parallel and the number of read instructions that is the number of instructions that can be executed in parallel. A data processing device, being a counter.
て、 前記システム制御命令は、プログラムが必要とする演算
器数の情報をも含み、 かつ、システム制御命令に応じて、前記各接続手段の接
続を統一的に制御する構成制御手段を備えた ことを特徴とするデータ処理装置。9. The data processing device according to claim 7, wherein the system control command also includes information on the number of arithmetic units required by a program, and the connection is performed in accordance with the system control command. A data processing apparatus comprising configuration control means for integrally controlling connection of means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24417990A JP2934003B2 (en) | 1990-09-14 | 1990-09-14 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24417990A JP2934003B2 (en) | 1990-09-14 | 1990-09-14 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04123230A JPH04123230A (en) | 1992-04-23 |
JP2934003B2 true JP2934003B2 (en) | 1999-08-16 |
Family
ID=17114942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24417990A Expired - Lifetime JP2934003B2 (en) | 1990-09-14 | 1990-09-14 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2934003B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367462B2 (en) | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3493768B2 (en) * | 1994-12-01 | 2004-02-03 | 松下電器産業株式会社 | Data processing device |
JP2005182791A (en) * | 2003-12-12 | 2005-07-07 | Sharp Corp | General purpose embedded processor |
JP5289688B2 (en) * | 2006-07-05 | 2013-09-11 | ルネサスエレクトロニクス株式会社 | Processor system and operating system program processing method for operating processor system |
US8745359B2 (en) | 2008-02-26 | 2014-06-03 | Nec Corporation | Processor for concurrently executing plural instruction streams |
JP2013214331A (en) * | 2013-07-22 | 2013-10-17 | Panasonic Corp | Compiler |
-
1990
- 1990-09-14 JP JP24417990A patent/JP2934003B2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
久我守弘(外3名)"SIMP(単一命令流/多重パイプライン)方式に基づくスーパースカラ『新風』の性能評価",並列処理シンポジウム JSPP ’90,(平成2年5月)P.337−344 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367462B2 (en) | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
Also Published As
Publication number | Publication date |
---|---|
JPH04123230A (en) | 1992-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10983800B2 (en) | Reconfigurable processor with load-store slices supporting reorder and controlling access to cache slices | |
Kuehn et al. | The Horizon supercomputing system: architecture and software | |
Kapasi et al. | The Imagine stream processor | |
JP6628801B2 (en) | Execution unit circuit for a processor core, a processor core, and a method for executing program instructions in the processor core | |
Keckler et al. | Processor coupling: Integrating compile time and runtime scheduling for parallelism | |
KR100236527B1 (en) | Single instruction multiple data processing using multiple banks of vector registers | |
US6058465A (en) | Single-instruction-multiple-data processing in a multimedia signal processor | |
US6219775B1 (en) | Massively parallel computer including auxiliary vector processor | |
Colwell et al. | A VLIW architecture for a trace scheduling compiler | |
JP3149348B2 (en) | Parallel processing system and method using proxy instructions | |
Goodman et al. | PIPE: a VLSI decoupled architecture | |
US5083267A (en) | Horizontal computer having register multiconnect for execution of an instruction loop with recurrance | |
US5121502A (en) | System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing | |
KR19980703033A (en) | Processor | |
US5036454A (en) | Horizontal computer having register multiconnect for execution of a loop with overlapped code | |
US5276819A (en) | Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code | |
KR100694212B1 (en) | Distribution operating system functions for increased data processing performance in a multi-processor architecture | |
US5226128A (en) | Horizontal computer having register multiconnect for execution of a loop with a branch | |
JPH10177559A (en) | Device, method, and system for processing data | |
JP2934003B2 (en) | Data processing device | |
Forsell et al. | An extended PRAM-NUMA model of computation for TCF programming | |
KR100267089B1 (en) | Single instruction multiple data processing with combined scalar/vector operations | |
Alsup | Motorola's 88000 family architecture | |
EP0496407A2 (en) | Parallel pipelined instruction processing system for very long instruction word | |
CN112379928B (en) | Instruction scheduling method and processor comprising instruction scheduling unit |