JPH03250241A - Composite processor system - Google Patents
Composite processor systemInfo
- Publication number
- JPH03250241A JPH03250241A JP4704390A JP4704390A JPH03250241A JP H03250241 A JPH03250241 A JP H03250241A JP 4704390 A JP4704390 A JP 4704390A JP 4704390 A JP4704390 A JP 4704390A JP H03250241 A JPH03250241 A JP H03250241A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data processing
- state
- segment
- parallel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、相異なった性質を持つ複数のプロセッサを有
する複合プロセッサシステムに関するものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a composite processor system having a plurality of processors with different properties.
[従来の技術]
特公昭63−145567号公報「超大型コンピュータ
」に記載されているような、並列プロセッサのプロセッ
サ要素を効率良く制御する技術が知られている。[Prior Art] A technique for efficiently controlling the processor elements of a parallel processor is known, as described in Japanese Patent Publication No. 145567/1982 entitled ``Very Large Computer''.
この技術においては、全て同じ処理機能を持っている各
プロセッサ要素を効率良く制御することができる。With this technology, each processor element, which all have the same processing function, can be efficiently controlled.
[発明が解決しようとする課題]
ところで、データ処理は一般に同しような処理のくりか
えしではない。[Problems to be Solved by the Invention] By the way, data processing generally does not involve repeating similar processing.
データ処理の局部性を解析すると1次の3つに分類でき
る。When analyzing the locality of data processing, it can be classified into three types: first order.
1、処理方法、データ共不規則に変化し、特徴がないが
演算量はそれ程大きくないもの。1. The processing method and data change irregularly and have no characteristics, but the amount of calculation is not large.
2、処理方法は、同じでデータが変化するもの。2. The processing method is the same, but the data changes.
3、処理方法、データ共不規則に変化するが、処理をあ
る大きさの区切りで分割すると、その分割単位では規則
性があるもの。3. Both the processing method and data change irregularly, but if the processing is divided into sections of a certain size, there will be regularity in each division.
これらのデータ処理に適合するプロセッサは。Which processors are suitable for processing these data?
それぞれ、スカシ、ベクトル、並列プロセッサであり、
それぞれ、相異なる性質を有している。They are skasi, vector, and parallel processors, respectively.
Each has different properties.
データ処理の局部的な特徴に適合するプロセッサを混在
させ、複数種のプロセッサ系を制御する手段を実現させ
ることができれば現在の並列プロセッサの性能を飛躍的
に向上させた並列プロセッサシステムが実現でき、計算
処理そのものに全く新しい展望をもたらすであろう。If we can create a means to control multiple types of processor systems by mixing processors that suit the local characteristics of data processing, we will be able to create a parallel processor system that dramatically improves the performance of current parallel processors. This will bring a completely new perspective to computational processing itself.
しかし、前記従来技術によっては、このような異なる性
質を有するプロセッサを効率良く制御することができな
い。However, the conventional techniques described above cannot efficiently control processors having such different characteristics.
また、このような、並列プロセッサをシステムの1リソ
ースとして具備する系ではタスクスイッチングとアドレ
ッシングが、最も重要な技術課題であるが、前記従来技
術等の従来の技術においては十分な解決案は見出されて
いない。In addition, task switching and addressing are the most important technical issues in such a system that includes parallel processors as one of the system resources, but no adequate solutions have been found in conventional technologies such as the above-mentioned prior art. It has not been.
そこで、本発明は、複数の性質の異るプロセッサから構
成されるシステムにおいて、並列プロセッサ部のような
プロセッサ内部に複数のデータ処理部を具備するリソー
スのタスクスイッチングを実現し、これによって、マル
チジョブ、マルチタスキング処理等において各プロセッ
サを効率良く制御できる複合プロセッサシステムを提供
することを目的とする6
[課題を解決するための手段]
前記目的達成のために、本発明は、主記憶と。Therefore, in a system composed of a plurality of processors with different characteristics, the present invention realizes task switching of a resource including a plurality of data processing units inside the processor such as a parallel processor unit, and thereby enables multi-job processing. It is an object of the present invention to provide a multiprocessor system that can efficiently control each processor in multitasking processing, etc. [Means for Solving the Problems] To achieve the above object, the present invention provides a main memory.
スカシプロセッサとベクトルプロセッサと複数のデータ
処理部を備えた並列プロセッサと、データ処理の性質に
応じて、その実行を各プロセッサに割り当てる処理管理
手段と、を有することを特徴とする複合プロセッサシス
テムを提供する。Provided is a composite processor system characterized by having a parallel processor including a swash processor, a vector processor, and a plurality of data processing units, and processing management means that allocates execution to each processor according to the nature of data processing. do.
なお、望ましくは、処理管理手段は、さらに各データ処
理部への割当も行う。Note that desirably, the processing management means also performs allocation to each data processing unit.
なお、前記並列プロセッサの各データ処理部は、ローカ
ルメモリを有することが望ましい。Note that each data processing section of the parallel processor preferably has a local memory.
また、並列プロセッサ専用の拡張記憶装置を備えること
も望ましい。It is also desirable to have extended storage dedicated to parallel processors.
また、前記複合プロセッサシステムにおいては、いずれ
かのプロセッサが前記管理手段を備え、かつ、処理管理
手段は、各プロセッサのアドレス変換テーブルと記憶保
護機構を具備することが望ましい。Further, in the multiprocessor system, it is preferable that any of the processors include the management means, and that the processing management means include an address conversion table and a storage protection mechanism for each processor.
また、複合プロセッサシステムは、前記処理管理手段が
並列プロセッサの各データ処理部のプログラムカウンタ
の値を変更可能なハードウェアを有することをか望まし
い。Further, in the multiprocessor system, it is preferable that the processing management means has hardware capable of changing the value of a program counter of each data processing section of the parallel processor.
また、前記各プロセッサの各々に、スヌーピング機能を
有するバッファストレージを設けることも望ましい。It is also desirable that each of the processors be provided with a buffer storage having a snooping function.
また、各プロセッサの状態を管理する状態管理手段を舖
え、前記処理管理手段は、データ処理の性質と各プロセ
ッサの状態とに応じて、その実行を各プロセッサに割り
当てるようにすることが望ましい。また、この場合は、
前記状態管理手段は、並列プロセッサ全体の状態と並列
プロセッサ内の各データ処理部の状態とで並列プロセッ
サについての状態を管理することが望ましい。Further, it is preferable that a state management means for managing the state of each processor is provided, and the processing management means assigns execution to each processor according to the nature of the data processing and the state of each processor. Also, in this case,
It is preferable that the state management means manages the state of the parallel processor based on the state of the entire parallel processor and the state of each data processing section within the parallel processor.
[作 用]
本発明に係る複合プロセッサシステムによれば、処理管
理手段は、データ処理の性質に応じて、その実行を各プ
ロセッサに割り当てることにより、マルチジョブ、マル
チタスキング処理等において各プロセッサを効率良く制
御する。[Function] According to the multiprocessor system according to the present invention, the processing management means assigns execution to each processor according to the nature of data processing, thereby controlling each processor in multi-job, multi-tasking processing, etc. Control efficiently.
また、状態管理手段を備えた場合は、さらに、前記処理
管理手段は、データ処理の性質と各プロセッサの状態と
に応じて、その実行を各プロセッサに割り当てることに
より、システム全体としての処理の効率を向上すること
ができる。In addition, when state management means is provided, the processing management means further improves the processing efficiency of the entire system by allocating execution to each processor according to the nature of data processing and the state of each processor. can be improved.
また、この場合、前記状態管理手段は、並列プロセッサ
全体の状態と並列プロセッサ内の各データ処理部の状態
とで並列プロセッサについての状態を管理することによ
り、処理管理手段は直接データ処理部における処理の実
行のレベルまで管理することができる。Further, in this case, the state management means manages the state of the parallel processor based on the state of the entire parallel processor and the state of each data processing section in the parallel processor, so that the processing management means directly handles the processing in the data processing section. can be managed up to the level of execution.
また、いずれかのプロセッサが前記管理手段を備えるこ
とによりハードウェア構成の簡略化を図ることができ、
また、処理管理手段が、各プロセッサのアドレス変換テ
ーブルと記憶保護機構を具備することにより、タスクス
イッチを一元的に管理することができる。Furthermore, by providing any of the processors with the management means, the hardware configuration can be simplified,
Further, by providing the processing management means with an address conversion table for each processor and a memory protection mechanism, task switches can be managed in an integrated manner.
また、複合プロセッサシステムは、前記処理管理手段が
並列プロセッサの各データ処理部のプログラムカウンタ
の値を着脱変更することにより、処理の割当の高速化等
が図れる。Further, in the multiprocessor system, the processing management means changes the value of the program counter of each data processing section of the parallel processor, thereby increasing the speed of processing assignment.
(以下余白)
[実施例]
以下、本発明に係る複合プロセッサシステムの一実施例
として、スカラ、ベクトル、複数のデータ処理部を有す
る並列プロセッサから成る複合プロセッサシステムを例
に取り説明する。(Left below) [Embodiment] As an embodiment of the multiprocessor system according to the present invention, a multiprocessor system including a scalar, a vector, and a parallel processor having a plurality of data processing units will be described below.
まず、本実施例の各プロセッサの制御方式について、説
明する。First, a control method for each processor in this embodiment will be explained.
一般に、データ処理は均一な処理のくりかえしではなく
局部的にスカラプロセッサに向く処理であったり、ベク
トルプロセッサ又は並列プロセッサに向いた処理であっ
たりする。In general, data processing is not a uniform repetition of processing, but processing that is locally suited to a scalar processor, a vector processor, or a parallel processor.
そこで1本実施例においては、データ処理を複数のセグ
メントに分け、各セグメントにそのセグメントを最も効
率的に実行するプロセッサの種類を示すタグを付加する
。Therefore, in this embodiment, data processing is divided into a plurality of segments, and a tag indicating the type of processor that most efficiently executes the segment is added to each segment.
複合プロセッサシステムのプロセッサ管理部は、このタ
グと各プロセッサの状態を調べ、その時点で最も速く処
理を行うであろうプロセッサにセグメントの実行を指示
する。The processor management unit of the multiprocessor system examines this tag and the status of each processor, and instructs the processor that is likely to perform the processing fastest at that time to execute the segment.
しかし、並列プロセッサのタスクスイッチが不可能であ
るとすると上記の処理は成立しない。タスクスイッチが
不可の並列プロセッサシステムでは、並列プロセッサ部
を特別なリソースとして管理する必要があるが、この場
合、このようなシステムではジョブを高速にかつ並列的
に実行するのは困難である。However, if task switching of parallel processors is impossible, the above process does not hold true. In a parallel processor system in which task switching is not possible, it is necessary to manage the parallel processor unit as a special resource, but in this case, it is difficult for such a system to execute jobs at high speed and in parallel.
そこで、本実施例においては、前記データ処理の分配、
並列プロセッサのタスクスイッチの実現のために、下記
のソフトウェア、ハードウェア手段を用意する。Therefore, in this embodiment, the distribution of the data processing,
In order to realize task switching of parallel processors, the following software and hardware means are prepared.
1、プログラムを論理的に分割し、分割した部分をセグ
メントという時、セグメント構造を生成できるために、
プログラム言語の中に[コンパイラデイレクティブJと
してセグメント構造の範囲、セグメント内に記述されて
いるデータ処理の特性等を記述できるシンタックス、お
よびそのシンタックスを解読できるコンパイラ又はイン
タプリタ。1. When a program is logically divided and the divided parts are called segments, it is possible to generate a segment structure.
A programming language has a syntax that can describe the range of a segment structure, the characteristics of data processing described in a segment, etc. as a compiler directive J, and a compiler or interpreter that can decipher that syntax.
なお、ここでデータ処理の特性とは、データ参照関係が
プログラム実行時に決定されるような論理に対しては、
どのようなオブジェクトコード又は中間語を生成するの
かの指示、行列演算等で行列の次元数によって最も効率
良く処理する方法、プロセッサの種類が異る時これをど
のようなオブジェクト又は中間語に変換するかの指示等
をいう。Note that the characteristics of data processing here refer to the logic in which data reference relationships are determined during program execution.
Instructions on what kind of object code or intermediate word to generate, how to process matrix operations most efficiently depending on the number of dimensions of the matrix, and what kind of object or intermediate word to convert to when different types of processors are used. Refers to instructions, etc.
また、ここでオブジェクトコード、中間語にはプロセッ
サ種選択のための情報を含む。該情報はプロセッサで解
読処理が行われるのではなく、プロセッサシステムを制
御しているO8又は同等の機能を行うマイクロコード又
はマイクロプログラム又はハードウェアで解釈される。In addition, the object code and intermediate language here include information for selecting a processor type. The information is not decoded by the processor, but is interpreted by the O8 or equivalent microcode or microprogram or hardware controlling the processor system.
2、複数の異種プロセッサシステムの各プロセッサの状
態を示す記憶部。該記憶部はレジスタ、フリップフロッ
プの類、又は、主記憶の特定領域である。2. A storage unit that indicates the status of each processor in a plurality of heterogeneous processor systems. The storage unit is a register, a type of flip-flop, or a specific area of main memory.
本実施例においては、プロセッサの状態とは、タスク実
行中、イベント待ち、タスクスイッチ中、アイドル中、
動作不可の5状態で表現される第1種状態表現と、1種
類のタスクを実行している単一状態、2種類以上のタス
クを実行している複合状態、タスク実行不可の動作不可
状態の3状態で表現される第2種状態表現の2種類をい
う。In this embodiment, the processor states include executing a task, waiting for an event, switching tasks, idling, and
Type 1 state expression is represented by 5 states of inoperability, a single state in which one type of task is executed, a composite state in which two or more types of tasks are executed, and an inoperable state in which tasks cannot be executed. These are two types of type 2 state expressions that are expressed in three states.
スカシ、ベクトルプロセッサは第2種状態表現では単一
状態か動作不可状態のいずれかである。In the second type state representation, vector processors are either in a single state or in an inoperable state.
単一状態の時、第1種状態表現はタスク実行中、イベン
ト待ち、タスクスイッチ中、アイドル中の4状態のいず
れかである。動作不可状態の時、第1種状態表現は動作
不可である。イベント待ちはいわゆる「割込要因保留中
」を含む。When in a single state, the first type state expression is one of four states: task execution, event waiting, task switching, and idle. When in an inoperable state, the first type state representation is inoperable. Waiting for an event includes what is called "interrupt factor pending."
並列プロセッサは第2種状態表現では単一状態、複合状
態、動作不可状態の3種の状態をとる。第1種状態表現
は適用されない。但し、並列プロセッサ部内の各データ
処理部には第1種状態が適用される。In the second type state representation, a parallel processor takes three types of states: a single state, a composite state, and an inoperable state. Type 1 state representations are not applicable. However, the first type state is applied to each data processing section in the parallel processor section.
2種類の状態表現で次の組合わせは禁止される。The following combinations of two types of state expressions are prohibited.
a、単一、複合状態で全データ処理部が動作不可。a. All data processing units cannot operate in single or combined state.
b、動作不可状態でデータ処理部のいずれかが動作不可
でない。b. Any of the data processing units is not inoperable in the inoperable state.
C1複合状態で全タスクがタスクスイッチ中。All tasks are task-switching in the C1 complex state.
3、並列プロセッサ部のデータ処理部で実行しているタ
スクを識別する手段。これは前記第2種状態表現を実現
するために必須である。該手段はレジスタ又は主記憶上
の特定領域の格納した情報により実現される。3. Means for identifying the task being executed in the data processing section of the parallel processor section. This is essential for realizing the second type state representation. This means is realized by information stored in a register or a specific area on the main memory.
4、前記第1項で要請された条件と、第2,3項で示さ
れているプロセッサシステムの状況とによって、セグメ
ントを実行させるプロセッサを決定する手段。4. Means for determining a processor to execute a segment based on the conditions requested in the first item and the status of the processor system shown in the second and third items.
なお、ここで「実行させる」にはセグメント実行留保を
含む。Note that "to execute" here includes reservation of segment execution.
この手段はO8のようなソフトウェアで実現しても良い
。この手段を以下、セグメント実行管理プログラムとい
う。This means may be realized by software such as O8. This means is hereinafter referred to as a segment execution management program.
5、前記第4項の管理プログラムを優先的に実行するプ
ロセッサ。以下このプロセッサをマスタプロセッサとい
う。5. A processor that preferentially executes the management program of item 4 above. Hereinafter, this processor will be referred to as the master processor.
以下の手段は、必須ではないがシステムの性能をを確保
するために必要なリソースである。The following measures are not essential, but are necessary resources to ensure system performance.
6、並列プロセッサ部内のデータ処理部の内容をタスク
スイッチ用の記憶部へ格納するための専用パス。データ
処理部の内容とは処理部内のレジスタ、プログラム状態
語、制御レジスタを含み、ストアイン方式のバッファス
トレイジ、ベクトルレジスタ、ローカルメモリ等のリソ
ースが具備されていればそれらを含む。6. Dedicated path for storing the contents of the data processing section in the parallel processor section to the storage section for task switching. The contents of the data processing unit include registers within the processing unit, program status words, control registers, and resources such as store-in buffer storage, vector registers, local memory, etc., if provided.
7、プログラムをコート化するコンパイラ、インタプリ
タにおいて、生成したセグメントを実行する(と仮定し
ている)プロセッサを論理プロセッサとして処理する手
段。即ち、論理プロセッサを実プロセツサに変換する手
段と実プロセツサから発生する割込例外処理を論理プロ
セッサに変換する手段。7. In a compiler or interpreter that encodes a program, means for processing a processor that executes (assumed to be) a generated segment as a logical processor. That is, means for converting a logical processor into a real processor, and means for converting interrupt exception processing generated from the real processor into a logical processor.
8、並列プロセッサ内のデータ処理部においてローカル
メモリが十分具備できる時、ローカルメモリ領域を2以
上の領域に分割し、その各々をタスクに割当てる手段。8. When the data processing unit in the parallel processor has sufficient local memory, means for dividing the local memory area into two or more areas and assigning each of them to a task.
即ち、分割した領域に対する記憶保護キー又はリロケー
ションレジスタ上のアクセス制約ビットのようなプロテ
クタ、各領域で実行しているタスクの表示手段である。That is, a protector such as a storage protection key for the divided areas or an access restriction bit on a relocation register, and means for displaying tasks being executed in each area.
9、セグメントの実行に2番目に適したプロセッサ用の
オブジェクトコード又は中間語を生成する機能を持つコ
ンパイラ又はインタプリタ。以下2番目に適するプロセ
ッサのことを代替プロセッサという。9. A compiler or interpreter capable of generating object code or intermediate language for the second most suitable processor to execute the segment. Hereinafter, the second most suitable processor will be referred to as an alternative processor.
10、代替プロセッサ用コードの先頭アドレスを指示す
る手段。10. Means for indicating the start address of the alternative processor code.
以下、説明を簡略化するために1本実施例においては、 1、マスクプロセッサはスカラプロセッサである。Hereinafter, in order to simplify the explanation, in this example, 1. The mask processor is a scalar processor.
2、前節の第6〜9の手段を具備する。2. Includes the 6th to 9th means in the previous section.
3、コンパイラディレティブとして、次頁に示す表1の
デイレクティブ指示文を用意する(これらの文指示して
いる内容をコンパイラ等が自動生成してもよい)。3. Prepare the directive directives shown in Table 1 shown on the next page as compiler directives (a compiler or the like may automatically generate the contents of these directives).
とする。shall be.
表 1
コンパイラデイレクティブ文
項番 シンタックス 機 能
1 、 $Seg+ment(na+ne、prior
ity−number、processar−name
、alternative−processor−na
me )セグメントの始点、名称、実行優
先度、要求プロセッサ名称1伐替
プロセッサ名称を示す。Table 1 Compiler directive statement number Syntax Function 1, $Seg+ment(na+ne, prior
ity-number, processor-name
, alternative-processor-na
me) Indicates the starting point, name, execution priority, and requesting processor name of the segment.
2 、 $ Independent(X 、 Y )
配列X、Y間のデータ参照関係に依存性がないことを
示す。2, $Independent(X, Y)
This shows that there is no dependency in the data reference relationship between arrays X and Y.
3 、 $ Force(processor−nam
e)/ $ Forceend2つの文間の実行文をプ
ロセッサ
名称で指定したプロセッサに適合
するオブジェクトコードに変換す
る。3, $ Force (processor-nam
e)/$Forceend Converts the executable statement between the two statements into object code compatible with the processor specified by the processor name.
以下、本実施例の動作の概要について説明する。An overview of the operation of this embodiment will be explained below.
まず、ユーザプログラムは、コンパイラ又はインタプリ
タの解析機能、あるいは前記コンパイラデイレクティブ
による指示によって複数のセグメントに分割される。First, a user program is divided into a plurality of segments by the analysis function of a compiler or interpreter, or by instructions from the compiler directive.
該セグメントにはその実行に適するプロセッサ種の名称
が付加される。これを以下タグという。The segment is given the name of the processor type suitable for its execution. This is called a tag below.
セグメンテーションは、ベクトルプロセッサ以外のプロ
セッサで行われ、セグメント化されたオブジェクトコー
ドは主記憶上に置かれる。Segmentation is performed by a processor other than the vector processor, and the segmented object code is placed in main memory.
マスタプロセッサ上の管理プログラムは主記憶上のセグ
メント化されたオブジェクトコードのタグを読出し、次
いで複数のプロセッサの状態を示す記憶部を読出す。A management program on the master processor reads the tag of the segmented object code on the main memory, and then reads the storage section indicating the status of the plurality of processors.
タグ上の要求プロセッサが、スカラまたはベクトルプロ
セッサで、かつ、要求プロセッサの第1種状態表現がア
イドル中ならば、そのセグメントの先頭アドレスがプロ
セッサに送られ同時に該プロセッサに起動がかけられる
。If the requesting processor on the tag is a scalar or vector processor, and the first type state representation of the requesting processor is idle, the start address of the segment is sent to the processor and the processor is activated at the same time.
要求プロセッサの第】種状態表現がタスク実行中、イベ
ント待ち、又はタスクスイッチ中ならばそのセグメント
の実行を留保し、要求プロセッサの第1種状態表現がア
イドル中になった時点でそのセグメントの先頭アドレス
がプロセッサに送られ同時に該プロセッサに起動がかけ
られる。If the requesting processor's first type state representation is executing a task, waiting for an event, or switching tasks, execution of that segment is suspended, and when the requesting processor's first type state representation becomes idle, the beginning of the segment is The address is sent to the processor and the processor is activated at the same time.
ここで、留保とは他のタスクに属するセグメントの実行
判定を行う処理に移ることであるが、留保となった回数
があるしきい値よりも多い場合、そのセグメントが要求
しているプロセッサを他のタスクで使用しないように制
限をつける。Here, reservation means to move on to the process of determining the execution of a segment belonging to another task, but if the number of times the segment has been reserved is greater than a certain threshold, the processor requested by that segment is transferred to another task. Restrict its use for certain tasks.
要求プロセッサの第1種状態表現が動作不可の場合は、
代替プロセッサについて同様の実行判定が行われる。但
し、ベクトルプロセッサを要求していて、代替としてス
カラプロセッサを要求する場合に限る。If the requesting processor's type 1 state representation is inoperable,
Similar execution decisions are made for alternative processors. However, this is limited to cases where a vector processor is requested and a scalar processor is requested as an alternative.
また、タグ上の要求プロセッサが並列プロセッサの場合
で、かつ、並列プロセッサの第2種状態表現が単一状態
の場合は、並列プロセッサ部内のデータ処理部がタスク
実行中、アイドル中ならばタスクスイッチを行う。状態
はタスクスイッチ中に移行する。In addition, if the requesting processor on the tag is a parallel processor and the type 2 state representation of the parallel processor is a single state, the data processing unit in the parallel processor unit is executing a task, and if it is idle, the task switch I do. The state transitions to task switching.
そして、タスクスイッチが完了した後、データ処理部は
並列プロセッサを要求したセグメントの実行に割当てら
れる。Then, after the task switch is completed, the data processing unit is assigned parallel processors to execute the segment that requested it.
データ処理部がイベント待ち、タスクスイッチ中、動作
不可の場合は、データ処理部はそのタイミングでは割当
てが行われない。If the data processing unit is inoperable while waiting for an event or during a task switch, the data processing unit will not be allocated at that timing.
データ処理部を、実行を要求しているセグメントに割当
てると、並列プロセッサは、単一状態でかつ全データ処
理部がアイドル中でない限り複合状態に移行する。Once a data processor is assigned to a segment requesting execution, the parallel processor transitions to a composite state unless it is in a single state and all data processors are idle.
データ処理部を、実行を要求しているセグメントに割当
てられない時は、そのセグメントは実行留保になる。When a data processing unit cannot be assigned to a segment requesting execution, that segment is placed on hold for execution.
要求プロセッサである並列プロセッサの第2種状態表現
が複合状態の場合、セグメントは実行留保になる。If the second type state representation of the parallel processor that is the requesting processor is a composite state, the segment is suspended for execution.
動作不可の場合5代替プロセッサについてセグメント実
行判定が行われる。この場合並列プロセッサを要求して
いて、代替としてスカシ又はベクトルプロセッサを要求
する場合に限る。In the case of inoperability, segment execution determination is made for the five alternative processors. In this case, only if you are requesting a parallel processor and requesting a space or vector processor as an alternative.
ところで、並列プロセッサ部の前記データ処理部のタス
クスイッチは以下のように行われる。By the way, task switching of the data processing section of the parallel processor section is performed as follows.
まず、ローカルメモリ領域が、実行要求タスクが必要と
している領域より十分大きい時、ローカルメモリを2以
上の領域に分割し、各領域をタスクに割付ける。First, when the local memory area is sufficiently larger than the area required by the execution requesting task, the local memory is divided into two or more areas and each area is allocated to a task.
この時、あるタスク処理で他のタスク領域を破壊しない
ようにプロテクタを作動させる。At this time, a protector is activated to prevent processing of one task from destroying other task areas.
すなわち、ある領域でタスクが実行されている時、セグ
メント実行管理プログラムからタスクスイッチ状態へ移
行指示が行われた時、データ処理部内のレジスタ、プロ
グラム状態語、制御レジスタ等の情報をローカルメモリ
へ退避した後、データ処理部内のペースレジスタの値を
他のタスクの領域用に書替え、プロテクタの情報を他の
タスク用に置換する。ここで他のタスクとはセグメント
実行管理管理プログラムへ実行を要求しているセグメン
トの属するタスクのことである。In other words, when a task is being executed in a certain area and the segment execution management program issues an instruction to transition to the task switch state, information such as registers in the data processing unit, program status words, control registers, etc. is saved to local memory. After that, the value of the pace register in the data processing unit is rewritten for the area of another task, and the information of the protector is replaced with that of the other task. Here, the other tasks are tasks to which the segment that is requesting execution by the segment execution management program belongs.
ローカルメモリの領域が実行要求タスクの必要としてい
る領域より小さい時、データ処理部のレジスタ、プログ
ラム状態語、制御レジスタ等の情報は専用のパスを使っ
てタスクスイッチ用の記憶部へ書き出される。同様にデ
ータ処理部のストアイン方式のバッファストレイジある
いはローカルメモリも同様に専用のバスによってタスク
スイッチ用の記憶部へ書出される。タスクスイッチ用の
記憶部は主記憶の特定領域又は拡張記憶(Extend
ed −5torage )のような高速の記憶媒体で
あることが望ましい。When the area of the local memory is smaller than the area required by the execution requesting task, information such as registers of the data processing unit, program status word, control register, etc. is written to the storage unit for task switching using a dedicated path. Similarly, the data processing unit's store-in buffer storage or local memory is similarly written to the task switch storage unit via a dedicated bus. The memory unit for task switching is a specific area of main memory or extended memory (Extend memory).
A high-speed storage medium such as ed-5torage is preferable.
しかし、このような高速の記憶媒体を用いても、多数の
データ処理部のタスクスイッチを行うと無視できない程
度の時間を要する。このような場合、管理プログラムに
よってデータ処理部のタスクスイッチ状態への移行タイ
ミングをずらして行うことにより、1〜i番のデータ処
理部でタスク1の処理を(i+1)番のデータ処理部で
タスクスイッチ処理を、(i+2)番以降のデータ処理
部でタスク2の処理を行い、順次タスクを切り替える。However, even if such a high-speed storage medium is used, task switching of a large number of data processing units requires a considerable amount of time. In such a case, by staggering the transition timing of the data processing units to the task switch state using the management program, the processing of task 1 in the data processing units numbered 1 to i can be processed by the data processing unit numbered (i+1). In the switch processing, task 2 is processed in data processing units numbered (i+2) and onwards, and the tasks are sequentially switched.
このようなタスク切替処理のパイプライン化咎スイッチ
ングパイプラインという。Pipelining such task switching processing is called a switching pipeline.
並列プロセッサを要求しているセグメントが論理データ
処理部を意識して作成されたオブジェクトコードである
場合、スイッチングパイプライン制御は有効に作用する
。Switching pipeline control works effectively when the segment requesting a parallel processor is an object code created with a logical data processing section in mind.
以下、本発明に係る複合プロセッサシステムの一実施例
の詳細について説明する。Hereinafter, details of an embodiment of the multiprocessor system according to the present invention will be described.
第1図に本実施例に係る複合プロセッサシステムの第1
の構成を示す。FIG. 1 shows the first processor of the composite processor system according to this embodiment.
The configuration is shown below.
図中、1はスカシプロセッサ、2はベクトルプロセッサ
、3は並列プロセッサ、4は記憶制御部、5は主記憶部
、6は拡張記憶である。In the figure, 1 is a space processor, 2 is a vector processor, 3 is a parallel processor, 4 is a storage control unit, 5 is a main storage unit, and 6 is an extended storage.
本構成において、前記マスタプロセッサはスカシプロセ
ッサである。In this configuration, the master processor is a subprocessor.
ベクトルプロセッサ、並列プロセッサに機能は、前記し
たように所定の場合は、スカシプロセッサがエミュレー
ション機能によって代行する。As described above, in certain cases, the functions of the vector processor and the parallel processor are performed by the swash processor using the emulation function.
前記コンパイラ又はインタプリタはスカシプロセッサ1
で実行される。The compiler or interpreter is a skasi processor 1.
is executed.
プロセッサの状態を示す記憶部は各プロセッサ内に具備
する。A storage section indicating the state of the processor is provided within each processor.
並列プロセッサ3は、内部に複数のデータ処理部、を含
み、該データ処理部の状態を示す記憶部を含む。The parallel processor 3 includes a plurality of data processing units therein, and includes a storage unit that indicates the status of the data processing units.
コスト低減要求、又は、それ程高速のタスクスイッチが
要求されないならば、上記の記憶部を主記憶5上にとる
ようにしても良い。If cost reduction or high-speed task switching is not required, the above storage unit may be stored in the main memory 5.
セグメント実行管理プログラムは、マスタプロセッサで
実行される。該管理プログラムは論理/実プロセツサ変
換を行うが、この変換のために必要なテーブル類は主記
憶に設ける。The segment execution management program is executed on the master processor. The management program performs logical/real processor conversion, and tables necessary for this conversion are provided in the main memory.
なお、前記セグメントの実行を割り当てるセグメント実
行管理プログラムは、並列プロセッサ内のデータ処理部
にローカルメモリが具備されていて、かつ、該ローカル
メモリを複数のタスクで分割使用する場合のローカルメ
モリのプロテクタ。The segment execution management program that allocates the execution of the segment is a local memory protector when the data processing unit in the parallel processor is equipped with a local memory and the local memory is divided and used by a plurality of tasks.
および、実行しているタスクの表示の制御をも行う。It also controls the display of running tasks.
また、前記代替プロセッサの割付けもセグメント実行管
理プログラムが行う。Further, the segment execution management program also allocates the alternative processor.
パス10.11はスカシプロセッサ1がセグメント実行
管理プログラムを介してベクトルプロセッサ2.並列プ
ロセッサ3の状態を調べたり、起動又は強制終了指示を
行うパスである。In path 10.11, Sukasi processor 1 passes vector processor 2 through the segment execution management program. This is a path for checking the status of the parallel processor 3 and instructing startup or forced termination.
パス12〜14は、それぞれスカシ、ベクトル、並列プ
ロセッサがデータを主記憶5から読出したり又は書込む
ためのパスである。パス15はベクトルプロセッサと並
列プロセッサの間で直接制御を行うためのパスである。Paths 12 to 14 are paths through which the digital processor, vector processor, and parallel processor read and write data from the main memory 5, respectively. Path 15 is a path for direct control between the vector processor and the parallel processor.
この直接制御の一例の概略を第17図に示す。An example of this direct control is schematically shown in FIG.
図示するように、この直接制御の例では競合する処理を
避け、処理のスケデユーリングをを行うことを可能とし
ている。As shown in the figure, this example of direct control makes it possible to avoid competing processes and schedule processes.
このように、ベクトルプロセサと並列プロセッサは、同
時に並行して処理を実行するが、パス15を介して、直
接制御を行うことにより、マスタプロセッサを介さずに
同期処理等を行うことができ、マスタプロセッサおよび
両プロセッサのセットアツプ処理、起動処理時間を減縮
することができる。In this way, the vector processor and the parallel processor execute processing in parallel at the same time, but by directly controlling them via the path 15, it is possible to perform synchronous processing etc. without going through the master processor. It is possible to reduce the time required for setup processing and startup processing of the processor and both processors.
パス16は並列プロセッサ3でタスクスイッチを行う時
使用する専用パスである。The path 16 is a dedicated path used when the parallel processor 3 performs task switching.
なお、第1図に示した構成ではパス16は記憶制御部4
に接続されているが、拡張記憶6をタスクスイッチ用専
用記憶に使用するならばパス16を拡張記憶6に直結し
てもよい。Note that in the configuration shown in FIG.
However, if the extended storage 6 is used as storage exclusively for task switching, the path 16 may be directly connected to the extended storage 6.
記憶制御部4と主記憶5間のパス17は、主記憶のバン
ク構成に対応して設ける。A path 17 between the storage control unit 4 and the main memory 5 is provided corresponding to the bank configuration of the main memory.
次に、第2図に本実施例に係る複合プロセッサシステム
の第2、第3の構成を示す。図中、第1図と同じ論理ユ
ニット、パスは同一番号が付して示し、その説明を省略
する。Next, FIG. 2 shows the second and third configurations of the composite processor system according to this embodiment. In the figure, logical units and paths that are the same as those in FIG. 1 are indicated by the same numbers, and their explanations will be omitted.
第2図a中、7はススープ機能付のバッファストレイジ
、19.20はそれぞれアドレス、データバスである。In FIG. 2a, 7 is a buffer storage with soup function, and 19 and 20 are address and data buses, respectively.
パス17.18はベクトルプロセッサ、並列プロセッサ
で発生した事象をスカシプロセッサに報告するパスであ
る。ここで事象とは終了割込の他にマシンチエツク割込
を含む。Paths 17 and 18 are paths for reporting events occurring in the vector processor and parallel processor to the scat processor. Here, events include machine check interrupts in addition to end interrupts.
第2図すに示した複合プロセッサシステムは、並列プロ
セッサの3のデータ処理部をスカシプロセッサ、または
、ベクトルプロセッサ、または、スカシプロセッサおよ
びベクトルプロセッサで構成したものである。In the composite processor system shown in FIG. 2, the three data processing units of the parallel processors are composed of a square processor, a vector processor, or a square processor and a vector processor.
(以下余白)
次に、セグメント実行管理プログラムについて説明する
。(Left below) Next, the segment execution management program will be explained.
第5図にセグメント実行管理プログラムの構造を示す。FIG. 5 shows the structure of the segment execution management program.
セグメント実行管理プログラムは、論理/実プロセッサ
変換部、記憶管理部、実プロセツサ起動部から構成され
る。The segment execution management program is composed of a logical/real processor conversion section, a storage management section, and a real processor activation section.
記憶管理部は、主記憶管理、ローカルメモリ管理、拡張
記憶管理より成る。なお、拡張記憶管理はオプションで
ある。The memory management section consists of main memory management, local memory management, and extended memory management. Note that extended storage management is an option.
論理/実プロセツサ管理プログラムは、セグメント実行
待ちキューよりセグメントを選択し、これを実行する実
プロセツサを決定する。The logical/real processor management program selects a segment from the segment execution queue and determines the real processor that will execute it.
この動作の概要を、第6図に示す。An outline of this operation is shown in FIG.
図中、実プロセツサの状態が実行可ならばa。In the figure, if the state of the real processor is executable, then a.
不可ならばbのルートをとる。If not possible, take route b.
実プロセツサがスカシ、又はベクトルプロセッサならば
その状態がアイドル中、並列プロセッサならば単一状態
の時「実行可」である。それ以外の第1.2種状態の時
は「実行不可」である。If the real processor is a space processor or a vector processor, it is "executable" when its state is idle, and if it is a parallel processor, it is "executable" when it is in a single state. In other types 1.2 states, it is "unexecutable".
プロセッサの状態が実行可の場合、そのプロセッサに対
応する、各プロセッサの状態を記憶する状態記憶部を実
行中にセットする。When the state of a processor is executable, a state storage unit that stores the state of each processor corresponding to that processor is set to execution.
プロセッサの状態が実行不可の場合、代替プロセッサの
状態を調べる。代替プロセッサの状態が実行可ならばそ
のプロセッサについての状態記憶部の情報を実行中にセ
ットする。この処理を図中aエルートで示した。ルート
aとa工は異る処理であるがプロセッサ番号だけの相異
であるので省略して同じ処理で示した。If the state of a processor is non-executable, check the state of an alternate processor. If the status of the alternative processor is executable, the information in the status storage unit for that processor is set to executing. This process is indicated by a eroot in the figure. Routes a and a are different processes, but the only difference is the processor number, so they are omitted and shown as the same process.
プロセッサの状態をセットした後、再度プロセッサの状
態を確認する。After setting the processor status, check the processor status again.
次いで論理/実プロセツサの変換テーブルを作成しこれ
を主記憶上にストアする。Next, a logical/real processor conversion table is created and stored in main memory.
代替プロセッサも実行不可ならば、選択されたセグメン
トを待ちキューに戻す。If the alternative processor is also not executable, the selected segment is returned to the wait queue.
以上、論理/実プロセツサ変換が行われ、セグメントを
実行する実プロセツサが割当てられたら、その後、記憶
管理部が実行される。As described above, after the logical/real processor conversion is performed and a real processor that executes the segment is allocated, the storage management section is then executed.
記憶管理部は、主記憶とローカルメモリを別々に管理す
る。The storage management unit manages main memory and local memory separately.
実プロセツサがスカラ、ベクトルプロセッサの場合、ロ
ーカルメモリ管理を省略する。If the real processor is a scalar or vector processor, local memory management is omitted.
第7図に主記憶管理プログラムの処理手順を示す。FIG. 7 shows the processing procedure of the main memory management program.
図示するように、セグメントが初めて実行されるとき、
まず、主記憶の空き領域が調べられる。As shown, when the segment is executed for the first time,
First, free space in main memory is checked.
そして、空き領域がない時には、そのセグメントは実行
できないので、プロセッサ状態記憶部の情報および論理
実プロセツサ変換テーブルをパージする。If there is no free space, that segment cannot be executed, so the information in the processor state storage section and the logical/real processor conversion table are purged.
また、論理実プロセツサ変換部でアサインされた実プロ
セツサは解放される。Also, the real processor assigned by the logical/real processor converter is released.
空き領域が存在する時、セグメントのベースアドレスを
決定しくベースアドレスを空き領域の先頭番地に設定す
る)、このアドレスを主記憶上のテーブルに書込む。次
に、後述するBレジスタ用のテーブルを主記憶上に確保
し、イニシャライズする。なお後述するように、Bレジ
スタにはローカルメモリ上のセグメントベースアドレス
が設定され、アドレス変換に用いられる。When a free area exists, the base address of the segment is determined (the base address is set to the starting address of the free area), and this address is written in a table on the main memory. Next, a table for the B register, which will be described later, is secured in the main memory and initialized. As will be described later, the segment base address on the local memory is set in the B register and used for address conversion.
なお、すでに主記憶上に確保された領域上でセグメント
実行要求が行われた場合は、主記憶管理の処理はスキッ
プされる。また、セグメントが主記憶確保を要求するか
否かはセグメントを生成するコンパイラ等の責任である
。Note that if a segment execution request is made on an area that has already been secured on the main memory, the main memory management process is skipped. Furthermore, whether or not a segment requires main memory reservation is the responsibility of the compiler or the like that generates the segment.
ところで、本実施例においては、セグメントを、より大
きな処理単位であるタスクにまとめ、さらにタスクを、
より大きな処理単位であるジョブにまとめ各処理を管理
する。By the way, in this embodiment, segments are grouped into tasks, which are larger processing units, and tasks are further divided into
Manage each process by organizing it into jobs, which are larger processing units.
この場合、セグメントよりも、より大きな処理単位であ
るタスクの場合も第7図に示した処理と同様の処理が行
われる。但し、タスクの場合は第6図に示したプロセッ
サ割付処理はなく、また、変換テーブル等のパージは不
要である。In this case, the same processing as shown in FIG. 7 is performed for tasks that are larger processing units than segments. However, in the case of a task, there is no processor allocation process shown in FIG. 6, and there is no need to purge the conversion table or the like.
セグメント実行プロセッサが並列プロセッサの場合は、
さらに、ローカルメモリ管理プログラムにおいて、ロー
カルメモリの空き状態が調べられる。If the segment execution processor is a parallel processor,
Furthermore, the local memory management program checks the free status of the local memory.
第8図にローカルメモリ管理プログラムの概略を示す。FIG. 8 shows an outline of the local memory management program.
図示するように、ローカルメモリに空き領域が存在する
場合、図中、ルートaの方向が採られる。As shown in the figure, if there is free space in the local memory, the direction of route a in the figure is taken.
空き領域が存在しない場合、並列プロセッサの状態を保
持している並列プロセッサ制御部(後述する第3図50
)内にある状態記憶部が調べられ単一状態ならばCルー
トをとり、複合状態ならばセグメント待ちキューに登録
して処理を終える。If there is no free space, the parallel processor control unit that maintains the state of the parallel processors (see Fig. 3,
) is checked, and if it is a single state, it takes the C route, and if it is a composite state, it is registered in the segment waiting queue and the process ends.
なお、Cルートをとり、タスクスイッチ状態へ並列プロ
セッサ系を移行させた場合、並列プロセッサは単一状態
から複合状態へ移行し、二重にタスクスイッチ状態が発
生することはない。タスクスイッチ処理が完了すると、
ローカルメモリから追出されたタスクが占有していた領
域が空き領域となり、要求セグメントに割付けられる。Note that if route C is taken and the parallel processor system is transitioned to the task switch state, the parallel processors will transition from the single state to the composite state, and the task switch state will not occur twice. When the task switch process is completed,
The area occupied by the task evicted from local memory becomes free space and is allocated to the requested segment.
以後Cルートと合流し、空き領域の先頭アドレスをセグ
メントベースアドレスとし、データ処理ユニットの発生
する論理アドレスとローカルメモリの実セグメントベー
スアドレスとを対応づけた。Thereafter, it merges with the C route, and the start address of the free area is set as the segment base address, and the logical address generated by the data processing unit is associated with the real segment base address of the local memory.
並列プロセッサのBレジスタ用の、テーブルが作成され
る。即ちローカルメモリ領域をアサインする。A table is created for the B registers of the parallel processors. That is, a local memory area is assigned.
なお、ローカルメモリの空き領域が十分で、セグメント
が並列プロセッサを要求していて、並列プロセッサが単
一状態の場合、ローカルメモリ管理プログラムとしては
aのルートをとり、タスクスイッチ状態へ移行しない。Note that if there is sufficient free space in the local memory, a segment requests a parallel processor, and the parallel processor is in a single state, the local memory management program takes route a and does not transition to the task switch state.
しかし、前記論理/実プロセツサ変換部(第6図参照)
では、ルートCをとり、Bレジスタを設定し、実行され
ているタスクを中断して、実プロセツサ起動部を介して
、実行要求セグメントを含むタスクをそのプロセッサ(
この場合並列プロセッサに限られる)に実行させる。However, the logic/real processor converter (see Figure 6)
Now, we will take route C, set the B register, interrupt the task being executed, and send the task containing the execution request segment to that processor (
(in this case limited to parallel processors).
このときプロセッサの状態は単一→複合→単一のように
変化する。この場合、タスクスイッチ時間はローカルメ
モリ管理プログラムによる場合よりもはるかに短い。At this time, the state of the processor changes from single to composite to single. In this case, the task switch time is much shorter than with a local memory management program.
ローカルメモリの容量がn個のタスク領域を収容できれ
ば、並列プロセッサ内においてn多重処理が擬似的に可
能である。擬似的とはある瞬間では活動しているタスク
は唯一であるためである。If the local memory capacity can accommodate n task areas, n multiprocessing is virtually possible within the parallel processor. It is called pseudo because there is only one active task at a given moment.
並列プロセッサ系でセグメントを実行する実データ処理
部への割付は別のリソースが行う。Allocation to the actual data processing unit that executes segments on a parallel processor system is done by another resource.
以上のように、実プロセツサ、主記憶、ローカルメモリ
が割当てられた後、セグメントの実行がそれらのリソー
スを対象に指示される。この指示を実プロセツサ起動部
が行う。該起動部のフローを第9図に示した。As described above, after the real processor, main memory, and local memory are allocated, segment execution is directed to these resources. This instruction is given by the real processor starting section. The flow of the starting section is shown in FIG.
図示するように、実プロセツサ起動部は、実行させるタ
スク番号と、実行させるセグメントの先頭アドレスを送
信する。As shown in the figure, the real processor starting unit transmits the task number to be executed and the start address of the segment to be executed.
また、実プロセツサが並列プロセッサの場合には、先頭
アドレスの送信に先立ち、実行タスク番号と主記憶のジ
ョブベースアドレスおよびローカルメモリのタスクベー
スアドレスを対応づけた、Aレジス用テーブルをAレジ
スタに、先に作成したBレジスタ用テーブルをBレジス
タに、書き込む。In addition, if the real processor is a parallel processor, before sending the start address, an A register table that associates the execution task number with the job base address of the main memory and the task base address of the local memory is stored in the A register. Write the previously created B register table to the B register.
なお、本実施例においては、セグメントの先頭アドレス
領域に、起動された実プロセツサが初めに実行すべき命
令が格納されているものとする。In this embodiment, it is assumed that the instruction to be executed first by the activated real processor is stored in the start address area of the segment.
また、本実施例においては、先に一部触れたように、ジ
ョブおよびタスクの実行および管理は、セグメント実行
管理プログラムより上位の機能部が行うものとする、し
たがって、前記Aレジスタ用テーブルの作成およびAレ
ジスタの設定は、このより上位の機能部が、実プロセツ
サの起動に先立ち行うものである。Furthermore, in this embodiment, as mentioned in part earlier, the execution and management of jobs and tasks is assumed to be performed by a functional unit higher than the segment execution management program.Therefore, the creation of the A register table The settings of the and A registers are performed by a higher-order functional unit prior to starting up the actual processor.
次に、並列プロセッサについて説明する。Next, parallel processors will be explained.
第3図に、並列プロセッサの構成を示す。FIG. 3 shows the configuration of a parallel processor.
図中1はマスクプロセッサを示し、3が並列プロセッサ
を示す。In the figure, 1 indicates a mask processor, and 3 indicates a parallel processor.
並列プロセッサ制御部50は並列プロセッサ内に1個だ
け存在し、複数のデータ処理部の状態を管理する。Only one parallel processor control unit 50 exists in the parallel processor and manages the states of a plurality of data processing units.
データ処理部30中、54はローカルメモリ、55はデ
ータ処理ユニットで、56はオペランドアクセス用のア
ドレスを生成するオペランドアドレス生成部、52.5
3はオペランドデータに関するアクセス動作論理部であ
る。また、55はデ−タ処理ユニットであり、命令デコ
ード部106、命令アクセス用のアドレスを生成する命
令アドレス生成部107、演算[131、汎用レジスタ
32を備えている。In the data processing unit 30, 54 is a local memory, 55 is a data processing unit, 56 is an operand address generation unit that generates an address for operand access, 52.5
3 is an access operation logic unit regarding operand data. A data processing unit 55 includes an instruction decoding section 106, an instruction address generation section 107 for generating an address for instruction access, an operation [131], and a general-purpose register 32.
データ処理部30は並列プロセッサ3内に複数設けられ
ている。A plurality of data processing units 30 are provided within the parallel processor 3.
第4図aに、並列プロセッサのデータ処理部のオペラン
ドデータに関するアクセス動作論理部の構成を示す。FIG. 4a shows the configuration of an access operation logic section regarding operand data of a data processing section of a parallel processor.
図中、50は並列プロセッサ制御部、54はローカルメ
モリ555はデータ処理ユニットである。In the figure, 50 is a parallel processor control unit, 54 is a local memory 555 is a data processing unit.
制御部50は並列プロセッサ内に1個だけ存在し、複数
のデータ処理部の状態を管理する。Only one control unit 50 exists in the parallel processor and manages the states of a plurality of data processing units.
51.57.58.59.60はレジスタ、56はアド
レスアダー、60はスイッチ回路である。52.53は
複数のレジスタより構成されるレジスタ群である3
前述したように、本データ処理装置においては、セグメ
ントを、より大きな処理単位であるタスクにまとめ、さ
らにタスクを、より大きな処理単位であるジョブにまと
め各処理を管理する。51, 57, 58, 59, 60 are registers, 56 is an address adder, and 60 is a switch circuit. 52 and 53 are a register group consisting of multiple registers.3 As mentioned above, in this data processing device, segments are grouped into tasks, which are larger processing units, and tasks are further grouped into larger processing units. Manage each process by organizing it into a certain job.
以下、その動作について説明する。The operation will be explained below.
前述したように、まず、マスタプロセッサであるスカシ
プロセッサは、データ処理部起動に先立ち、パス10を
介して並列プロセッサ制御部にAレジスタ用テーブルの
内容を送る。この内容は、パス82を通ってAレジスタ
52にセットされ、タスク番号とローカルメモリ上のタ
スクのベースアドレスおよび主記憶上のジョブベースア
ドレスとの変換テーブルが作成される。As described above, first, the master processor, ie, the subprocessor, sends the contents of the A register table to the parallel processor control unit via the path 10, prior to activating the data processing unit. This content is set in the A register 52 through a path 82, and a conversion table between the task number and the base address of the task on the local memory and the job base address on the main memory is created.
また、同様にスカシプロセッサは、パス10を介して並
列プロセッサ制御部にBレジスタ用テーブルの内容を送
る。この内容は、パス82を通ってBレジスタ53にセ
ットされ、論理アドレスととセグメントのローカルメモ
リ上のベースアドレスとの変換テーブルが作成される。Similarly, the scat processor sends the contents of the B register table to the parallel processor control unit via the path 10. This content is set in the B register 53 through path 82, and a conversion table between the logical address and the base address on the local memory of the segment is created.
ここで、並列プロセッサのデータ処理部のアドレス付け
について説明する(第4図す参照)。Here, addressing of the data processing section of the parallel processor will be explained (see FIG. 4).
オペランドアドレス生成部で生成されるアドレスは、論
理アドレスであるから、これを主記憶とローカルメモリ
の実アドレスに変換する必要がある。Since the address generated by the operand address generator is a logical address, it is necessary to convert it into a real address in the main memory and local memory.
そこで、アドレス変換論理のハードウェア量を削減する
ため、主記憶はジョブ単位で、ローカルメモリはセグメ
ント単位でアドレスリロケーションを行う。Therefore, in order to reduce the amount of hardware for address translation logic, address relocation is performed for the main memory on a job-by-job basis, and on the local memory on a segment-by-segment basis.
なお、本実施例において、データ処理ユニットおよびオ
ペランドアドレス生成部はタスク、ジョブを認識しない
。Note that in this embodiment, the data processing unit and the operand address generation unit do not recognize tasks or jobs.
また、タスクの番号の上位をジョブ識別に、下位をジョ
ブ単位に分類されたタスクにアサインする。Further, the upper task number is assigned to job identification, and the lower task number is assigned to tasks classified by job.
データ処理部内で発生した主記憶アクセスは、実行する
タスクにより定まるAレジスタ52の上位データである
主記憶5のジョブベースアドレスと、アドレスアダーが
発生した論理アドレスとより主記憶の実アドレスを構成
することにより行われる。A main memory access that occurs within the data processing unit constitutes the real address of the main memory from the job base address of the main memory 5, which is the upper data of the A register 52 determined by the task to be executed, and the logical address where the address adder was generated. This is done by
また、データ処理部内で発生したローカルメモリアクセ
スは、実行するタスクにより定まるのAレジスタ52の
下位データであるローカルメモリのタスクベースアドレ
スと、アドレスアダーが発生した論理アドレスの上位ア
ドレスを、Bレジスタ53のIビットを除く部分のデー
タによって変換したローカルメモリ54のセグメントベ
ースアドレスと、論理アドレスの残りの下位アドレスに
よりローカルメモリの実アドレスを構成することにより
行う。In addition, when a local memory access occurs in the data processing unit, the task base address of the local memory, which is the lower data of the A register 52 determined by the task to be executed, and the upper address of the logical address where the address adder has been generated are stored in the B register 53. This is done by constructing the real address of the local memory from the segment base address of the local memory 54 converted by the data of the part excluding the I bit, and the remaining lower address of the logical address.
ここに、Bレジスタ53の1ビツトは前記スカシプロセ
ッサの変換テーブルのセット時に設定されるもので、1
ビツト=11′はそのセグメントアドレスがローカルメ
モリ上にないことを示し、す。■ビットが′0′の時、
Bレジスタのセグメントアドレス部は、ローカルメモリ
上のそのセグメント領域が存在している実アドレスを示
す。Here, 1 bit of the B register 53 is set when the conversion table of the above-mentioned search processor is set.
Bit=11' indicates that the segment address is not on local memory. ■When the bit is '0',
The segment address field of the B register indicates the real address where the segment area on the local memory is located.
なお、第10図に、オプションで拡張記憶が付加され、
並列プロセッサと拡張記憶の間にタスクスイッチ用の専
用パス16が具備された場合の記憶領域の一つの割付方
法を示す。In addition, in Fig. 10, extended memory is added as an option,
One method of allocating storage areas when a dedicated path 16 for task switching is provided between a parallel processor and expanded storage is shown.
並列プロセッサで行われる計算は、スカシ又はベクトル
プロセッサで行われるそれに比べると長大であるので、
並列プロセッサで実行されているタスクとそれ以外のプ
ロセッサで実行されるタスクは異っていても良いように
制御すべきである。Calculations performed on a parallel processor are longer than those performed on a computer or vector processor, so
Control should be such that tasks executed on parallel processors and tasks executed on other processors may be different.
このような制御を実現し、かつ記憶制御をあまり複雑に
しないために、主記憶のページング等の外部記憶を用い
た仮想記憶と並列プロセッサ部のそれを分離するのが望
ましい。In order to realize such control and not make storage control too complicated, it is desirable to separate virtual storage using external storage such as main storage paging and that of the parallel processor section.
そこで、これを実現するために必要な並列プロセッサ内
のローカルメモリと拡張記憶との間のセグメント単位の
ページングについて述べる。Therefore, we will discuss segment-based paging between local memory and expanded storage within a parallel processor, which is necessary to achieve this.
図示するように、Bレジスタ53にEビットを追加し、
Eビットが1′の時セグメント空間がローカルメモリ上
に存在し、Cエレジスタが有効であり、0′の時、セグ
メント空間が拡張記憶上に存在し、C,レジスタが有効
であると定義する。As shown in the figure, the E bit is added to the B register 53,
It is defined that when the E bit is 1', the segment space exists on the local memory and the C register is valid; when it is 0', the segment space exists on the extended memory and the C register is valid.
Bレジスタ53のセグメントアドレス部はCレジスタの
カラムアドレスを示すよう設定する。The segment address field of the B register 53 is set to indicate the column address of the C register.
CレジスタはC,、C2の2種類のレジスタがあり、そ
れぞれローカルメモリ上のセグメントアドレス、拡張記
憶上のアドレスを保持する。There are two types of C registers, C, and C2, which hold segment addresses on local memory and addresses on expanded storage, respectively.
これにより、データ処理ユニットよりの、論理アドレス
を、Bレジスタ、Eビットが有効を示すCレジスタの順
に参照して実アドレスに変換する。As a result, the logical address from the data processing unit is converted into a real address by referring to the B register and then the C register whose E bit indicates validity.
また、拡張記憶が並列プロセッサ系に一つだけ存在する
時には、拡張記憶空間を、さらにデータ処理部の番号に
よって区分するのが望ましい。この場合、データ処理部
の番号はC2レジスタ101のpフィールド(第10図
参照)に保持する。Further, when only one extended storage exists in a parallel processor system, it is desirable to further divide the extended storage space by the number of the data processing section. In this case, the number of the data processing unit is held in the p field of the C2 register 101 (see FIG. 10).
なお、C□、C2レジスタは実在のレジスタでなくロー
カルメモリ上の表でもよい。Note that the C□ and C2 registers may not be actual registers but may be tables on the local memory.
以上、Aレジスタ、Bレジスタの設定が終了すると、前
述したように、マスクプロセッサは、データ処理部を以
下のように起動する。When the settings of the A register and the B register are completed, the mask processor activates the data processing section as described below, as described above.
マスタプロセッサ(第3図参照)は、バス10を介して
並列プロセッサに起動すべき実データ処理部の番号、該
データ処理部で処理するタスク番号、すなわち、この場
合は、対応するジョブの主記憶上のベースアドレスおよ
びタスクのローカルメモリ上のベースアドレスを保持し
ているAレジスタのレジスタ番号を送る。The master processor (see FIG. 3) informs the parallel processors via the bus 10 of the number of the actual data processing unit to be activated and the task number to be processed by the data processing unit, that is, in this case, the main memory of the corresponding job. sends the base address above and the register number of the A register holding the base address in the task's local memory.
これを受け、並列プロセッサ制御部50は、目的データ
処理部にバス80.81を介して起動信号、Aレジスタ
の番号を送る。レジスタ番号はレジスタ51にセットさ
れる。In response to this, the parallel processor control section 50 sends an activation signal and the number of the A register to the target data processing section via the bus 80.81. The register number is set in register 51.
起動信号を受け、データ処理部30は、主記憶またはロ
ーカルメモリをアクセスしながら処理を実行するが、こ
の主記憶またはローカルメモリのアクセスは、前述した
アドレス付けに従い、以下のように行われる。Upon receiving the activation signal, the data processing unit 30 executes processing while accessing the main memory or local memory, and the access to the main memory or local memory is performed as follows according to the addressing described above.
オパランドアドレス生成部56で生成されるアドレスは
論理アドレスである。アドレスの上位、下位アドレスは
それぞれバス83.84上に送り出される。上位アドレ
スはBレジスタ53によってアドレスリロケーションが
行われ、変換されたアドレスがレジスタ57にセットさ
れる。下位アドレスはバス84を通ってレジスタ58に
セットされる。レジスタ57.58上のデータはセグメ
ント内のアドレスを示す。The address generated by the opaland address generation unit 56 is a logical address. The upper and lower addresses are sent out on buses 83 and 84, respectively. Address relocation of the upper address is performed by the B register 53, and the converted address is set in the register 57. The lower address is set in register 58 via bus 84. The data on registers 57,58 indicate addresses within the segment.
レジスタ51上のデータは、Aレジスタ52のレジスタ
番号を示し、Aレジスタの下位データはローカルメモリ
上のタスクの先頭アドレスである。The data on the register 51 indicates the register number of the A register 52, and the lower data of the A register is the start address of the task on the local memory.
Aレジスタの下位アドレスはレジスタ59にセットされ
、レジスタ59.57.58でローカルメモリ上の実ア
ドレスを構成する。該実アドレスはバス85上に送出さ
れる。The lower address of the A register is set in register 59, and registers 59, 57, and 58 constitute the real address on the local memory. The real address is sent on bus 85.
データ処理ユニットから送出されたストアデータは、ロ
ーカルメモリアクセスの場合バス86上に送出される。Store data sent from the data processing unit is sent on bus 86 for local memory accesses.
ローカルメモリを読出す命令の時はデータ処理ユニット
55は、バス88を介してスイッチング回路60に作用
し、ローカルメモリの出力り、をバス87上に送出する
。In the case of a command to read the local memory, the data processing unit 55 acts on the switching circuit 60 via the bus 88 and sends the output of the local memory onto the bus 87.
データ処理ユニット55から送出されたストアデータが
主記憶5へのアクセスの場合、バス86は、バス14に
接続された主記憶制御ユニット4ヘスドアデータが送出
される。一方データ処理ユニット25からはバス88上
に′0′信号を送出する。これはインバータ61によっ
て反転させられ、パス89上に送出される。パス89上
の信号はパス14上のデータ信号が有効であることを示
すコマンドである。When the store data sent from the data processing unit 55 is accessing the main memory 5, the bus 86 sends out the door data to the main memory control unit 4 connected to the bus 14. On the other hand, the data processing unit 25 sends a '0' signal onto the bus 88. This is inverted by inverter 61 and sent onto path 89. The signal on path 89 is a command indicating that the data signal on path 14 is valid.
アドレスは、リロケーション変換されずにAレジスタ、
Bレジスタを透過した、オペランドアドレス生成部が生
成したアドレスであるところのパス85上の下位アドレ
スと、レジスタ62上のジョブのベースアドレスを示す
上位アドレスから成り、パス90上に送出される。すな
わち、主記憶アクセスの場合、タスクベースアドレス、
セグメントベースアドレスの変換は行わずに、オペラン
ドアドレス生成部84の生成したアドレスとジョブベー
スアドレスより主記憶の実アドレスを構成する。主記憶
におけるジョブ内においては、そのアドレスとオペラン
ドアドレス生成部56が生成する論理アドレスは等しい
と仮定しているからである。The address is transferred to the A register without relocation conversion.
It consists of a lower address on path 85, which is an address generated by the operand address generator that has passed through the B register, and an upper address indicating the base address of the job on register 62, and is sent out on path 90. In other words, in the case of main memory access, the task base address,
The real address of the main memory is constructed from the address generated by the operand address generation unit 84 and the job base address without converting the segment base address. This is because it is assumed that within the job in the main memory, the address and the logical address generated by the operand address generation unit 56 are equal.
主記憶を読比す命令の場合はパス14上のデータは無意
味である。データ処理ユニット55から主記憶5に対し
アクセスの種類と主記憶続出時に必要なシンク情報がパ
ス91上に送られる。In the case of an instruction that reads and compares the main memory, the data on path 14 is meaningless. The data processing unit 55 sends the type of access to the main memory 5 and the sync information necessary for successive main memory accesses over a path 91.
このシンク情報を用いて、主記憶から読み出されたデー
タは実プロセツサに振り分けられるが。Using this sink information, data read from main memory is distributed to the real processor.
その詳細については、従来の並列パイプライン型ベクト
ルプロセッサが採用している方式であるので、説明を省
略する。The details of this method will be omitted since it is a method adopted by a conventional parallel pipeline vector processor.
データ処理ユニットがタスクスイッチ状態でかつローカ
ルメモリからタスクスイッチ用記憶部へデータを送出す
る指示をマスタプロセッサから受けたときは、ローカル
メモリ読出時と同様のアドレス生成が行われる。When the data processing unit is in the task switch state and receives an instruction from the master processor to send data from the local memory to the task switch storage section, address generation is performed in the same way as when reading from the local memory.
ただし、パス88上の信号値はt Or となり、スイ
ッチング回路60によって読出さtたデータはパス16
(Store)上に送出される。パス91上のオーダ
は主記憶ストアが指示される。However, the signal value on path 88 is t Or, and the data read out by switching circuit 60 is on path 16.
(Store). Orders on path 91 are directed to main memory store.
ローカルメモリのタスク領域が、主記憶又はタスクスイ
ッチ用記憶部に書出された後、他のタスク領域が主記憶
又はタスクスイッチ用記憶部から読出され、ローカルメ
モリへ書込まれる。After the task area of the local memory is written to the main memory or the task switch storage, other task areas are read from the main memory or the task switch storage and written to the local memory.
すなわち、主記憶読出しの場合は、パス14を経由して
ローカルメモリに書込み、タスクスイッチ用記憶部より
の読み呂しの場合は、専用パスパス16 (fetch
)経由にスイッチング回路63を介してローカルメモリ
に書込まれる。That is, when reading from the main memory, writing is done to the local memory via the path 14, and when reading from the task switch storage section, the dedicated path 16 (fetch
) is written to the local memory via the switching circuit 63.
なお、スイッチング回路60の制御は、与えられた命令
に含まれるアクセス先に応じてデータ処理部55が行う
。また、タスクスイッチ処理を記述したプログラムはロ
ーカルメモリの特定のエリアに常駐させる。このプログ
ラムへの分岐は一種のタスク切替である。Note that the switching circuit 60 is controlled by the data processing unit 55 according to the access destination included in the given command. In addition, a program that describes task switch processing is made to reside in a specific area of the local memory. Branching to this program is a type of task switching.
次に、並列プロセッサのデータ処理部30の命令デコー
ド部106と命令アドレス生成部107について説明す
る。Next, the instruction decoding section 106 and instruction address generation section 107 of the data processing section 30 of the parallel processor will be explained.
データ処理部はマスタプロセッサからのセグメントの実
行開始またはタスクスイッチを指示されると、プログラ
ムカウンタを書替え、生成した命令アドレスを主記憶又
はローカルメモリ(含拡張記憶)に送り、命令を取り込
みこれをデコードし処理を行うが、この命令の取り込み
、デコードをおこなうのが、命令デコード部と命令アド
レス生成である。When the data processing unit is instructed to start executing a segment or switch tasks from the master processor, it rewrites the program counter, sends the generated instruction address to main memory or local memory (including extended memory), fetches the instruction, and decodes it. The instruction decoding unit and instruction address generation take in and decode this instruction.
なお、本実施例においては、命令は先に述にたオペラン
ドデータと異なる論理空間に格納する。Note that in this embodiment, instructions are stored in a logical space different from the operand data described above.
したがって、命令の取り込みに関しては、第3図に示し
たアクセス動作論理は用いない。但し、命令とオペラン
ドデータを同じ論理空間に格納する場合は、ハードウェ
ア量の削減のために、第3図に示したアクセス動作論理
を共用するようにしても良い。なお、この場合は、オペ
ランドデータアクセスと、命令フェッチの競合を制御す
るプライオリティ論理が必要となる。Therefore, the access operation logic shown in FIG. 3 is not used for fetching instructions. However, when instructions and operand data are stored in the same logical space, the access operation logic shown in FIG. 3 may be shared in order to reduce the amount of hardware. Note that in this case, priority logic is required to control conflicts between operand data access and instruction fetch.
第11図に、並列プロセッサのデータ処理部の命令デコ
ート部と命令アドレス生成部の構成を示す。FIG. 11 shows the configuration of an instruction decode section and an instruction address generation section of a data processing section of a parallel processor.
図11において、パス150〜152はマスクプロセッ
サからのコマンド、オーダ、アドレスデータ線である。In FIG. 11, paths 150-152 are command, order, and address data lines from the mask processor.
マスタプロセッサがスカラプロセッサの場合、図1に示
したパス11がパス150〜152に対応する。このパ
ス上でコマンド信号はアドレス、オーダ信号よりも1サ
イクル早く送呂されている。When the master processor is a scalar processor, path 11 shown in FIG. 1 corresponds to paths 150 to 152. On this path, the command signal is sent one cycle earlier than the address and order signals.
パス150上のコマンド信号はラッチ105でラッチさ
れた後レジスタ106に作用し、パス151上のオーダ
信号を該レジスタにとりこむ。After the command signal on path 150 is latched by latch 105, it acts on register 106, and the order signal on path 151 is taken into the register.
オーダ信号が′1′の時生成したアドレスは主記憶へ送
出され、′0′の時ローカルメモリ側へ送出される。When the order signal is '1', the generated address is sent to the main memory, and when it is '0', it is sent to the local memory side.
パス150上に起動を指示するコマンドが送出された時
、アドレス加算器107の出力はパス152上のアドレ
スにセレクタ108によって置換えられ、プログラムカ
ウンタ109にセットされる。セグメントの実行開始ま
たはタスクスイッチの場合、パス152上には、前述し
たように。When a command instructing activation is sent on path 150, the output of address adder 107 is replaced by the address on path 152 by selector 108, and set in program counter 109. In the case of segment execution start or task switch, on path 152, as described above.
実行すべきセグメントの先頭アドレスが送出されており
、データ処理部が最初に実行すべき命令が格納されてい
る。The start address of the segment to be executed is sent, and the instruction to be executed first by the data processing unit is stored.
該プログラムカウンタの出力はアドレス加算器107で
命令語長が格納されているレジスタ110の出力と加算
され命令アドレス列が順次作成されていく、生成された
命令アドレスはスイッチング回路111でレジスタ10
6のオーダ情報に従ってそれぞれ主記憶、ローカルメモ
リへ送出される。The output of the program counter is added by the address adder 107 to the output of the register 110 storing the instruction word length, and an instruction address string is sequentially created.The generated instruction address is added to the register 10 by the switching circuit 111.
The data are sent to the main memory and local memory according to the order information of No. 6, respectively.
主記憶、ローカルメモリから読出された命令はパス15
3.154を通る。再記憶を選択する信号はレジスタ1
12を介してセレクタ113に作用し、読出されたデー
タをデコーダ114に送る。Instructions read from main memory and local memory pass 15
3. Passes 154. The signal to select re-memory is register 1.
12 on the selector 113 and sends the read data to the decoder 114.
デコーダ114は命令を解読して、データ処理部内のデ
ータ処理ユニットやオペランドアドレス生成部等の各リ
ソースにオーダ信号等をパス155を介して送る。The decoder 114 decodes the command and sends an order signal or the like to each resource such as a data processing unit in the data processing section and an operand address generation section via a path 155.
その後、デコーダがセグメントの終りを検出した時、パ
ス160上にレジスタ106をリセットする信号が送出
される。この信号によりマスクプロセッサの指示の終了
となる。Thereafter, when the decoder detects the end of the segment, a signal is sent on path 160 to reset register 106. This signal ends the instruction of the mask processor.
なお、データ処理部の第1種状態が変化する時、デコー
ダ114はパス156〜159上にそれぞれ、コマンド
、3種類のオーダ信号を送出する。Note that when the first type state of the data processing section changes, the decoder 114 sends a command and three types of order signals onto the paths 156 to 159, respectively.
(以下余白)
次に、ここで、並列プロセッサのデータ処理部および並
列プロセッサを除くプロセッサが備える。(Hereinafter, blank space) Next, here, processors other than the data processing unit of the parallel processor and the parallel processor are provided.
第1種状態を管理する第1種状態管理部について説明す
る。The first type state management unit that manages the first type state will be explained.
第13図は第1種状態管理部のブロック図である。FIG. 13 is a block diagram of the first type state management section.
第13図においてAND回路300の出力は後に説明す
る第12図のトリガ250〜2’80に相当するので、
AND回路の出力に同じ番号を付けた。レジスタ200
〜204の値は第12図の同番号の状態の時′1′で、
それ以外の時′0′である。レジスタ200〜203の
出力はAND回路301でパス250〜280上の信号
値とレジスタ204の出力の逆と論理積がとられ、レジ
スタ200〜203のセット、リセット信号を生成する
。論理回路302はOR回路である。In FIG. 13, the output of the AND circuit 300 corresponds to the triggers 250 to 2'80 in FIG. 12, which will be explained later.
The same number was assigned to the output of the AND circuit. register 200
The value of ~204 is '1' in the state of the same number in Figure 12,
Otherwise, it is '0'. The outputs of the registers 200-203 are ANDed by the AND circuit 301 with the signal values on the paths 250-280 and the inverse of the output of the register 204 to generate set and reset signals for the registers 200-203. Logic circuit 302 is an OR circuit.
パス290上にマシンチエツク検呂信号が送出されると
、レジスタ200〜203は無条件にリセットされ、レ
ジスタ204がJl にセットされる。レジスタ204
はパス291上にリセット信号が送出されない限り、リ
セットされない。When a machine check signal is sent on path 290, registers 200-203 are reset unconditionally and register 204 is set to Jl. register 204
will not be reset unless a reset signal is sent on path 291.
レジスタ200〜204でプロセッサの第1種状態表現
を示す。Registers 200-204 represent type 1 state representations of the processor.
プロセッサが並列プロセッサの時、プロセッサ内のデー
タ処理部毎にレジスタ200〜204が存在する。また
レジスタ303で現在実行しているタスクを識別する。When the processor is a parallel processor, registers 200 to 204 exist for each data processing unit within the processor. The register 303 also identifies the task currently being executed.
レジスタ303の値はタスク番号をあられすが、データ
処理部の状態がセグメント実行中又はイベント待ち以外
は無意味である。Although the value of the register 303 indicates the task number, it is meaningless unless the state of the data processing unit is executing a segment or waiting for an event.
レジスタ200.201の出力はOR回路307で論理
和がとら九る。OR回路307の出力′1′はレジスタ
303の内容が有意か否かを示し、セレクタ306に作
用する。レジスタ303の内容が有意の時、パス351
上にはタスク番号が、無意味の時101が送出される。The outputs of the registers 200 and 201 are logically summed by an OR circuit 307. The output '1' of the OR circuit 307 indicates whether the contents of the register 303 are significant or not, and acts on the selector 306. When the contents of register 303 are significant, pass 351
The task number on the top is 101 when it is meaningless.
点線352以下は並列プロセッサ系のコントロール部(
第3図50)のプライオリティ決定論理のブロック図で
ある。線353は各データ部を示す。The part below the dotted line 352 is the control section of the parallel processor system (
50) is a block diagram of the priority determination logic of FIG. 3; FIG. Line 353 indicates each data portion.
フリップフロップ320はデータ処理部がセグメントの
実行要求を受理できるか否かを示している6即ち、該フ
リップフロップの出力がt Ojの時受理可で、′1′
の時、受理不可である。マスタプロセッサからセグメン
ト実行要求がパス370に送出されると、AND回路3
21でOR回路322の出力と論理積がとられる。複数
のデータ処理部のうち一つでもセグメント実行可ならば
、パス371上の信号値は11′である。パス37上の
信号によって、プライオリティ回路323の出力が有効
になる。プライオリティ回路は値が′1′のフリップフ
ロップ320のどれか1つを選択し、その通し番号をパ
ス372上に出力する。この番号はデコーダ324でデ
コードされ、フリップフロップをセットする。パス37
3は東線である。また、その通し番号はレジスタ325
にセットされ、これより、マスタプロセッサはセグメン
トを実行させるデータ処理部を決定する。The flip-flop 320 indicates whether or not the data processing unit can accept a segment execution request.6 That is, it can be accepted when the output of the flip-flop is t Oj, and '1'.
It is not acceptable when . When a segment execution request is sent from the master processor to path 370, AND circuit 3
At 21, the output of the OR circuit 322 is ANDed. If even one of the plurality of data processing units can execute the segment, the signal value on path 371 is 11'. The signal on path 37 enables the output of priority circuit 323. The priority circuit selects any one of the flip-flops 320 with a value of '1' and outputs its serial number on path 372. This number is decoded by decoder 324 and sets a flip-flop. pass 37
3 is the east line. Also, the serial number is in register 325.
The master processor determines which data processing unit is to execute the segment.
次に、並列プロセッサ内のデータ処理部の第2種状態を
管理する並列プロセッサ制御部3の第2種状態管理部に
ついて説明する。 第14図にその構成を示す。Next, the type 2 state management section of the parallel processor control section 3 that manages the type 2 state of the data processing section in the parallel processor will be described. FIG. 14 shows its configuration.
並列プロセッサ制御部は並列プロセッサ内のデータ処理
部の第1種状態表現を第2種状態表現に変換するため論
理部である。並列プロセッサ制御部の論理を簡単にする
ため前記変換はマスクプロセッサ内のプログラム又はマ
イクロプログラムが行うことにする。並列プロセッサ制
御部はそのプログラムが参照するデータ、状態を読比す
ための論理である。The parallel processor control unit is a logic unit for converting the first type state representation of the data processing unit in the parallel processor into the second type state representation. In order to simplify the logic of the parallel processor control section, the conversion is performed by a program or microprogram within the mask processor. The parallel processor control unit is the logic for reading and comparing the data and status referenced by the program.
第14図において、各データ処理部で実行しているセグ
メントについて、パス450上に識別番号が、パス45
1上に実プロセツサ番号がマスタプロセッサの論理/実
変換プログラムから送られて来る。各データ処理部で実
行しているセグメントの情報は、実プロセツサ番号に応
じてスイッチング回路400によってふり分けられて、
レジスタ401にセットされる。In FIG. 14, for the segment being executed in each data processing section, an identification number is written on the path 450.
1, the real processor number is sent from the master processor's logical/real conversion program. Information on the segments being executed in each data processing section is distributed by the switching circuit 400 according to the actual processor number.
It is set in register 401.
パス452,453,454はマスタプロセッサ側から
データ処理部のセグメント識別番号、アイドル状態か否
か、動作不可か否かを知るためのポイント信号を伝播さ
せるパスである。Paths 452, 453, and 454 are paths for propagating point signals from the master processor side to determine the segment identification number of the data processing section, whether it is in an idle state, and whether it is inoperable.
データ処理部がアイドル状態又は動作不可状態の時セグ
メント識別番号は無意味である。データ処理部がアイド
ル状態か否かはレジスタ405の値が′1′か10′か
によって示される。The segment identification number is meaningless when the data processing unit is idle or inactive. Whether the data processing section is in an idle state is indicated by whether the value of the register 405 is '1' or '10'.
データ処理部がマシンチエツク等の動作不可状態か否か
はレジスタ409の値が′1′か′OIかによって示さ
れる0両レジスタの値はOR回路412で論理積とられ
、パス457上にセグメント識別番号が有効か無効かを
示す信号が送出される。Whether the data processing section is in a state in which machine check or other operations cannot be performed is determined by whether the value in the register 409 is '1' or 'OI.' The values in both registers are logically ANDed by an OR circuit 412, and a segment is added to the path 457. A signal is sent indicating whether the identification number is valid or invalid.
全てのデータ処理部がアイドル状態か動作不可状態かを
示す信号はそれぞれAND回路406゜410で生成さ
れ、パス458,459上に送出される。Signals indicating whether all data processing units are in an idle state or in an inoperable state are generated by AND circuits 406 and 410, respectively, and sent onto paths 458 and 459.
この、パス458.459の信号を基に、マスクプロセ
ッサは、以下に示す第17第2種状態表現変換プログラ
ムは並列プロセッサの第2種状態表現を決定する。Based on the signals of paths 458 and 459, the mask processor determines the second type state representation of the parallel processor using the seventeenth type 2 state representation conversion program shown below.
第15図に、この第1/第2種状態表現変換プログラム
のフローを示す。FIG. 15 shows the flow of this first/second type state representation conversion program.
第1/第2種状態表現変換プログラムは、まずパス45
9の信号値が1か否か、すなわち全てのデータ処理部が
動作不可状態か否かを調べる(ステップ1601)、そ
して、全てのデータ処理部が動作不可状態であれば、第
2種状態表現を動作不可と決定する(ステップ1.60
2)。The first/second type state representation conversion program first begins with the path 45.
It is checked whether the signal value of 9 is 1, that is, whether all data processing units are in an inoperable state (step 1601), and if all data processing units are in an inoperable state, the second type state expression is is determined to be inoperable (step 1.60
2).
パス459の信号値が1でなければ、パス458の信号
値が1か否か、すなわち全てのデータ処理部がアイドル
状態か否かを調べる(ステップ1603)、そして、全
てのデータ処理部がアイドル状態であれば、第2種状態
表現を単一状態と決定する(ステップ1604)。If the signal value on the path 459 is not 1, it is checked whether the signal value on the path 458 is 1, that is, whether all data processing units are in an idle state (step 1603), and all data processing units are in an idle state. If it is a state, the second type state expression is determined to be a single state (step 1604).
パス458の信号値が1でなければ、順次、アイドル状
態でないデータ処理部を探しくステップ1605、16
06、1607= 1608゜1609.161o、
1611)、 そ(7)データ処理部が実行しているセ
グメントを読み出しくステツブ1,612.1613)
、その後、他のアイドル状態でないデータ処理部を探し
くステップ1614、1615、1616、1617゜
1618)、そのデータ処理部が実行しているセグメン
トを読み出しくステップ1620)、先に探しだしたデ
ータ処理部が実行しているセグメントと同じセグメント
を実行しているか否か調べ(ステップ1621)、異な
るセグメントを実行している場合は、第2種状態表現は
複合状態と判断する(ステップ1624)。If the signal value of the path 458 is not 1, steps 1605 and 16 sequentially search for data processing units that are not in an idle state.
06, 1607 = 1608°1609.161o,
1611), (7) Read the segment being executed by the data processing unit Step 1, 612.1613)
, Then, steps 1614, 1615, 1616, 1617, 1618) to find another data processing unit that is not in an idle state, step 1620) to read the segment being executed by that data processing unit, and perform the data processing found earlier. It is checked whether or not the segment is executing the same segment as the segment being executed (step 1621), and if a different segment is being executed, the second type state expression is determined to be a composite state (step 1624).
先に探しだしたデータ処理部が実行しているセグメント
と同じセグメントを実行している場合は、さらに、先に
探しだしたデータ処理部が実行しているセグメントと異
なるセグメントを実行しているデータ処理部を最大数ま
で(ステップ1622)探し、異なるセグメントを実行
しているデータ処理部が存在しない場合には、第2種状
態表現は単一状態と判断する(ステップ1625)。If the data processing unit that was found earlier is executing the same segment as the segment that is being executed, the data processing unit that was found earlier is executing a segment that is different from the segment that is being executed. The maximum number of processing units is searched (step 1622), and if there is no data processing unit executing different segments, the second type state expression is determined to be a single state (step 1625).
次に、第1種状態表現における状態遷移について説明す
る。Next, state transitions in the first type state representation will be explained.
第12図にこの状態遷移図を示す。FIG. 12 shows this state transition diagram.
図中、200はセグメント実行中、201はイベント持
ち、202はタスクスイッチ中、203はアイドリング
、204は動作不可状態である。In the figure, 200 is a segment being executed, 201 is holding an event, 202 is task switching, 203 is idling, and 204 is in an inoperable state.
また、各状態を遷移させるトリガを実線および点線によ
る矢印で示した。Further, triggers for transitioning each state are shown by solid and dotted arrows.
トリガの番号250は、第13図パス370上の信号で
、マスタプロセッサで実行されるタスク起動ルーチンに
よって、マスタプロセッサよりデータ処理部に送られる
コマンド、251は第11図パス150上の一信号であ
り、マスタプロセッサで実行されるタスク切り替えルー
チンによって、マスタプロセッサよりデータ処理部に送
られる、内部状態退避または回復を指示するコマンド等
を想定しており、260はマスタプロセッサで実行され
るタスク起動ルーチンによって起動された命令(通常第
1番メツセージの命令)によって、第11図パス156
.157上の信号がセットされる条件を想定しており、
261はデータ処理部で実行される命令ストリームの終
端にある命令によって第13図バス156.158上に
送出されてくる信号によるものを想定している。Trigger number 250 is a signal on path 370 in FIG. 13, which is a command sent from the master processor to the data processing unit by the task startup routine executed by the master processor, and 251 is a signal on path 150 in FIG. 11. 260 is a task activation routine executed by the master processor, and 260 is assumed to be a command to instruct internal state saving or recovery, sent from the master processor to the data processing unit by a task switching routine executed by the master processor. The path 156 in FIG.
.. It is assumed that the signal on 157 is set,
261 is assumed to be caused by a signal sent onto buses 156 and 158 in FIG. 13 by an instruction at the end of an instruction stream executed by the data processing section.
270は外部要因又は割込によるもの、280はプロセ
ッサ内のリソースからの完了信号によるもの、290は
マシンチエツク信号によることを示す。270 indicates an external factor or interrupt, 280 indicates a completion signal from a resource within the processor, and 290 indicates a machine check signal.
以上のように、本実施例によれば、スカシ、ベクトル、
並列プロセッサから構成される複合プロセッサ系で、ジ
ョブをセグメント単位に分割し、該セグメントを最も効
率良く処理するプロセッサに割当てることができる。As described above, according to this embodiment, the square, vector,
A multiprocessor system consisting of parallel processors can divide a job into segments and allocate the segments to the processors that can process them most efficiently.
また、この機能によって、複数の性質の異るジョブを数
多く処理しなければならない場合各プロセッサを高い効
率で稼動させることができ、ジョブスループットを向上
させうる。Furthermore, this function allows each processor to operate with high efficiency when a large number of jobs with different properties must be processed, thereby improving job throughput.
また、プロセッサのハードウェア量は、並列プロセッサ
〉ベクトルプロセッサ〉スカシプロセッサの順であって
、各プロセッサを高い効率で稼動させることにより「少
い物量で高処理能力」の計算機を実現できる。In addition, the amount of hardware of the processor is in the order of parallel processor>vector processor>smart processor, and by operating each processor with high efficiency, it is possible to realize a computer with "high processing power with a small amount of material."
さらに、本実施例によれば、並列プロセッサの処理を中
断させ、他タスクの処理を実行させることができるので
並列プロセッサをバックグラウンド処理リソースとして
とり扱うことができる。また並列プロセッサのタスクス
イッチング用ストレージとして拡張記憶のような大容量
補助記憶を用いることができるので、ローカルメモリを
比較的小さく構成でき、コスト低減が可能である。Furthermore, according to this embodiment, the processing of the parallel processor can be interrupted and the processing of other tasks can be executed, so that the parallel processor can be handled as a background processing resource. Furthermore, since large-capacity auxiliary storage such as extended storage can be used as storage for task switching of parallel processors, the local memory can be configured to be relatively small, and costs can be reduced.
また、本実施例よればセグメント実行要求プロセッサ内
を複数種類設定できる。これによって第1候補のプロセ
ッサがビジー又は動作不可の場合、第2候補のプロセッ
サで実行が可能である。この機能で処理−効率向上と信
頼性の向上が期待できる。Further, according to this embodiment, a plurality of types of segment execution request processors can be set. Thus, if the first candidate processor is busy or inoperable, the second candidate processor can execute. This function can be expected to improve processing efficiency and reliability.
[発明の効果]
以上のように、本発明によれば、複数の性質の異るプロ
セッサから構成されるシステムにおいて、並列プロセッ
サ部のようなプロセッサ内部に複数のデータ処理部を具
備するリソースのタスクスイッチングを実現し、これに
よって、マルチジョブ、マルチタスキング処理等におい
て各プロセッサを効率良く制御できる複合プロセッサシ
ステムを提供することができる。[Effects of the Invention] As described above, according to the present invention, in a system composed of a plurality of processors with different characteristics, tasks of a resource including a plurality of data processing units inside a processor such as a parallel processor unit By realizing switching, it is possible to provide a composite processor system that can efficiently control each processor in multi-job, multi-tasking processing, etc.
第1図は本発明の一実施例に係る複合プロセッサシステ
ムの構成を示すブロック図、第2図は本発明の一実施例
に係る複合プロセッサシステムの他の構成を示すブロッ
ク図、第3図は並列プロセッサの構成を示すブロック図
、第4図は並列プロセッサのオペランドアクセス動作論
理の構成を示すブロック図、第5図はセグメント管理プ
ログラムの処理手順を示すフロー図、第6図は論理/実
プロセツサ変換部の処理手順を示すフロー図、第7図は
主記憶管理部の処理手順を示すフロー図、第8図はロー
カルメモリ管理部の処理手順を示すフロー図、第9図は
実プロセツサ起動部の処理手順を示すフロー図、第10
図は拡張記憶追加時のアドレス付けを示す説明図、第1
1図は並列プロセッサ部のデータ処理部の命令デコーダ
部の構成を示すブロック図、第12図はプロセッサの第
1種状態表現による状態遷移図、第13図はプロセッサ
状態管理論理部の構成を示すブロック図、第14図は並
列プロセッサの第2種状態管理部の構成を示すブロック
図、第15図は第1/第2種状態表現変換プログラムの
処理手順を示すフロー図、第16図はプロセッサ間の同
期処理を示す説明図である。
1・・・スカラプロセッサ、2・・・ベクトルプロセッ
サ、3・・・並列プロセッサ、5・・・主記憶、50・
・・並列プロセッサ制御部50.30・・・データ処理
部、54・・・ローカルメモリ、55・・・データ処理
ユニット、56・・・オペランド用アドレス生成部、5
2゜53・・・アクセス動作論理部、55はデータ処理
ユニット、106・・・命令デコード部、107・・・
命令アドレス生成部である。FIG. 1 is a block diagram showing the configuration of a composite processor system according to an embodiment of the present invention, FIG. 2 is a block diagram showing another configuration of the composite processor system according to an embodiment of the present invention, and FIG. Figure 4 is a block diagram showing the configuration of the parallel processor's operand access operation logic, Figure 5 is a flow diagram showing the processing procedure of the segment management program, and Figure 6 is the logical/real processor. 7 is a flowchart showing the processing procedure of the main memory management section, FIG. 8 is a flowchart showing the processing procedure of the local memory management section, and FIG. 9 is a flowchart showing the processing procedure of the real processor starting section. Flow diagram showing the processing procedure, No. 10
The figure is an explanatory diagram showing addressing when adding extended memory.
Figure 1 is a block diagram showing the configuration of the instruction decoder unit of the data processing unit of the parallel processor unit, Figure 12 is a state transition diagram based on the first type state representation of the processor, and Figure 13 shows the configuration of the processor state management logic unit. Block diagram, FIG. 14 is a block diagram showing the configuration of the type 2 state management section of the parallel processor, FIG. 15 is a flow diagram showing the processing procedure of the type 1/second state representation conversion program, and FIG. 16 is the processor FIG. 2 is an explanatory diagram showing synchronization processing between DESCRIPTION OF SYMBOLS 1... Scalar processor, 2... Vector processor, 3... Parallel processor, 5... Main memory, 50.
...Parallel processor control unit 50.30...Data processing unit, 54...Local memory, 55...Data processing unit, 56...Operand address generation unit, 5
2゜53...Access operation logic unit, 55 is a data processing unit, 106...Instruction decoding unit, 107...
This is an instruction address generation unit.
Claims (1)
と複数のデータ処理部を備えた並列プロセッサと、デー
タ処理の性質に応じて、その実行を各プロセッサに割り
当てる処理管理手段と、を有することを特徴とする複合
プロセッサシステム。 2、前記並列プロセッサの各データ処理部は、ローカル
メモリを有することを特徴とする請求項1記載の複合プ
ロセッサシステム。 3、並列プロセッサ専用の拡張記憶装置を備えたことを
特徴とする請求項1または2記載の複合プロセッサシス
テム。 4、請求項1、2または3記載の複合プロセッサシステ
ムであって、いずれかのプロセッサが前記管理手段を備
え、かつ、処理管理手段は、各プロセッサのアドレス変
換テーブルと記憶保護機構を具備することを特徴とする
複合プロセッサシステム。 5、請求項1、2、3または4記載の複合プロセッサシ
ステムであって、 各プロセッサの状態を管理する状態管理手段を備え、前
記処理管理手段は、データ処理の性質と各プロセッサの
状態とに応じて、その実行を各プロセッサに割り当てる
ことを有することを特徴とする複合プロセッサシステム
。 6、請求項5記載の複合プロセッサシステムであって、
前記状態管理手段は、並列プロセッサ全体の状態と並列
プロセッサ内の各データ処理部の状態とで並列プロセッ
サについての状態を管理することを特徴とする複合プロ
セッサシステム。 7、請求項1、2、3、4、5または6記載の複合プロ
セッサシステムであって、 前記処理管理手段が並列プロセッサの各データ処理部の
プログラムカウンタの値を変更可能なハードウェアを有
することを特徴とする複合プロセッサシステム。 8、請求項1、2、3、4、5、6または7記載の複合
プロセッサシステムであって、 前記各プロセッサの各々に、スヌーピング機能を有する
バッファストレージを設けたことを特徴とする複合プロ
セッサシステム。[Claims] 1. A parallel processor including a main memory, a scalar processor, a vector processor, and a plurality of data processing units, and processing management means that allocates execution to each processor according to the nature of data processing; A composite processor system comprising: 2. The multiprocessor system according to claim 1, wherein each data processing section of the parallel processor has a local memory. 3. The multiprocessor system according to claim 1 or 2, further comprising an extended storage device dedicated to the parallel processors. 4. The multiprocessor system according to claim 1, 2 or 3, wherein any of the processors is provided with the management means, and the processing management means is provided with an address conversion table and a storage protection mechanism for each processor. A multiprocessor system featuring: 5. The multiprocessor system according to claim 1, 2, 3, or 4, comprising state management means for managing the state of each processor, wherein the processing management means is configured to control the nature of data processing and the state of each processor. 1. A multiprocessor system, comprising assigning execution to each processor accordingly. 6. The composite processor system according to claim 5,
The multiprocessor system is characterized in that the state management means manages the state of the parallel processor based on the state of the entire parallel processor and the state of each data processing unit within the parallel processor. 7. The multiprocessor system according to claim 1, 2, 3, 4, 5, or 6, wherein the processing management means includes hardware capable of changing the value of the program counter of each data processing unit of the parallel processor. A multiprocessor system featuring: 8. The composite processor system according to claim 1, 2, 3, 4, 5, 6, or 7, wherein each of the processors is provided with a buffer storage having a snooping function. .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4704390A JPH03250241A (en) | 1990-02-27 | 1990-02-27 | Composite processor system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4704390A JPH03250241A (en) | 1990-02-27 | 1990-02-27 | Composite processor system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03250241A true JPH03250241A (en) | 1991-11-08 |
Family
ID=12764141
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4704390A Pending JPH03250241A (en) | 1990-02-27 | 1990-02-27 | Composite processor system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03250241A (en) |
-
1990
- 1990-02-27 JP JP4704390A patent/JPH03250241A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
| US7650602B2 (en) | Parallel processing computer | |
| EP2115584B1 (en) | Method and apparatus for enabling resource allocation identification at the instruction level in a processor system | |
| JP5058970B2 (en) | Sequencer address management | |
| US20070150895A1 (en) | Methods and apparatus for multi-core processing with dedicated thread management | |
| JPH06208552A (en) | Small grain mechanism | |
| CN112346835B (en) | Scheduling processing method and system based on coroutine | |
| US11169837B2 (en) | Fast thread execution transition | |
| Govindarajan et al. | Design and performance evaluation of a multithreaded architecture | |
| JP3090452B2 (en) | Apparatus for controlling activation of a logical system in a data processing system provided with logical processor equipment | |
| US8707016B2 (en) | Thread partitioning in a multi-core environment | |
| JP2000047887A (en) | Speculative multi-thread processing method and speculative multi-thread processing device | |
| US6892280B2 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
| JP2007188523A (en) | Task execution method and multiprocessor system | |
| JPH06243112A (en) | Multiprocessor equipment | |
| US20050172085A1 (en) | Intelligent memory device | |
| US20080134187A1 (en) | Hardware scheduled smp architectures | |
| Souto et al. | Improving concurrency and memory usage in distributed operating systems for lightweight manycores via cooperative time-sharing lightweight tasks | |
| Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
| JP7070384B2 (en) | Arithmetic processing device, memory device, and control method of arithmetic processing device | |
| CN103649931A (en) | An interconnect structure to support the execution of instruction sequences by a plurality of engines | |
| JPH03250241A (en) | Composite processor system | |
| JP3019317B2 (en) | Process scheduling method | |
| Asri et al. | The Non-Uniform Compute Device (NUCD) architecture for lightweight accelerator offload | |
| JPH0744401A (en) | Logic integrated circuit and data processing system thereof |