JPH02278433A - 演算レジスタ上でのデータ待ち合せ実現方法 - Google Patents
演算レジスタ上でのデータ待ち合せ実現方法Info
- Publication number
- JPH02278433A JPH02278433A JP1101425A JP10142589A JPH02278433A JP H02278433 A JPH02278433 A JP H02278433A JP 1101425 A JP1101425 A JP 1101425A JP 10142589 A JP10142589 A JP 10142589A JP H02278433 A JPH02278433 A JP H02278433A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- instruction
- arithmetic
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、計算機システムにおいて直列的に実行される
プロセス(命令系列)に必要とされるデータの待ち合せ
方法に関し、特に縮小命令セット計算機(Reduce
d In5truction Set Compute
r:略称RISC)のアーキテクチャに従うシステムを
構成する演算装置にも好適に用い得る演算レジスタ用デ
ータ待ち合せ方法に関する。
プロセス(命令系列)に必要とされるデータの待ち合せ
方法に関し、特に縮小命令セット計算機(Reduce
d In5truction Set Compute
r:略称RISC)のアーキテクチャに従うシステムを
構成する演算装置にも好適に用い得る演算レジスタ用デ
ータ待ち合せ方法に関する。
[従来の技術]
従来からも、上記したRISC以外の計算機システムに
適したデータ待ち合せ方法としては、メモリ上でデータ
待ち合せを可能にしたもの、すなわち、メモリの各要素
ごとにデータの状態を表すフラグを設け、データ・アク
セス要求をフラグの条件が成立するまで、保留して置く
ようにしたものがある。
適したデータ待ち合せ方法としては、メモリ上でデータ
待ち合せを可能にしたもの、すなわち、メモリの各要素
ごとにデータの状態を表すフラグを設け、データ・アク
セス要求をフラグの条件が成立するまで、保留して置く
ようにしたものがある。
こうした従来法の利点は、プロセス間のデータ待ち合せ
が個々のデータごとに高速に、かつ簡単な記述で行なえ
るという点にある。
が個々のデータごとに高速に、かつ簡単な記述で行なえ
るという点にある。
[発明が解決しようとする課題]
しかし、このようなメモリ上でのデータ待ち合せ方式は
、上記RI SCシステムのように、昨今、富に注目を
浴びてきているレジスタ間演算中心のアーキテクチャに
従う演算装置には適用が困難であった。
、上記RI SCシステムのように、昨今、富に注目を
浴びてきているレジスタ間演算中心のアーキテクチャに
従う演算装置には適用が困難であった。
そもそもこうしたレジスタ間演算中心のアーキテクチャ
では、レジスタが演算装置と密に結合しているため、演
算実行部との調停やアクセス経路に問題があり、外部か
らレジスタへのアクセスが難しいという事情がある。
では、レジスタが演算装置と密に結合しているため、演
算実行部との調停やアクセス経路に問題があり、外部か
らレジスタへのアクセスが難しいという事情がある。
また、レジスタは高速動作と広いデータ転送幅を実現す
る高価な資源であって、その容量には限りがある。
る高価な資源であって、その容量には限りがある。
したがってデータ待ち合せが長期化する場合には、どう
してもメモリへの退避を考えねばならないが、このとき
のデータの待ち合せをどのようにして行なうのかという
課題に対する回答も、これまでの所、報告されていなか
った。
してもメモリへの退避を考えねばならないが、このとき
のデータの待ち合せをどのようにして行なうのかという
課題に対する回答も、これまでの所、報告されていなか
った。
本発明はまさしく、こうした実情に鑑みて成されたもの
で、RI SC型計算機システムにおけるように、レジ
スタ演算を基本とするシステムにも適用可能であって、
かつ、現在実行中のプロセスに関するデータ待ち合せは
もちろん、複数のプロセス間でも自然で効率的なデータ
待ち合せをレジスタ上で行なえるようなデータ待ち合せ
方法を提供せんとするものである。
で、RI SC型計算機システムにおけるように、レジ
スタ演算を基本とするシステムにも適用可能であって、
かつ、現在実行中のプロセスに関するデータ待ち合せは
もちろん、複数のプロセス間でも自然で効率的なデータ
待ち合せをレジスタ上で行なえるようなデータ待ち合せ
方法を提供せんとするものである。
[課題を解決するための手段]
上記目的を達成するため、本発明は、まずもってもっと
も基本的な発明として、次のような構成を)是案する。
も基本的な発明として、次のような構成を)是案する。
すなわち、演算装置の発したデータ転送要求に応答する
等して、現在実行されているプロセスに割り付けられて
いるレジスタに対し、例えば外部のメモリ等からデータ
が送られてき、当該演算装置に到着した場合には、この
演算装置の命令取出部にて取出される命令列中に、当該
到着データのロード命令を自動挿入する。
等して、現在実行されているプロセスに割り付けられて
いるレジスタに対し、例えば外部のメモリ等からデータ
が送られてき、当該演算装置に到着した場合には、この
演算装置の命令取出部にて取出される命令列中に、当該
到着データのロード命令を自動挿入する。
また、この基本的な構成に加え、現在実行中のプロセス
に割り付けられているレジスタに対するものではなく、
局所メモリ中に退避領域が設定されているレジスタ、す
なわち過去に実行されていたが途中で停止されたプロセ
スに割り付けられていたレジスタに対してのデータが到
着した場合には、この到着データを当該レジスタの対応
する退避領域中に書込むという発明も開示する。
に割り付けられているレジスタに対するものではなく、
局所メモリ中に退避領域が設定されているレジスタ、す
なわち過去に実行されていたが途中で停止されたプロセ
スに割り付けられていたレジスタに対してのデータが到
着した場合には、この到着データを当該レジスタの対応
する退避領域中に書込むという発明も開示する。
このようにすれば、現在実行中のプロセスに属するレジ
スタに関してのみならず、過去に実行されていたプロセ
スに属するレジスタのデータ待ち合せも当該レジスタ上
で合理的に行なえる。
スタに関してのみならず、過去に実行されていたプロセ
スに属するレジスタのデータ待ち合せも当該レジスタ上
で合理的に行なえる。
一方、上記のように、過去において実行されていたプロ
セスに関してのプロセス停止がどのように生じたか、換
言すれば、どのような条件のときに現在実行中のプロセ
スを停止させるかについても、上記の基本構成に対して
何等矛盾がなく、円滑で合理的な手法として、本発明は
次のような手法を開示する。
セスに関してのプロセス停止がどのように生じたか、換
言すれば、どのような条件のときに現在実行中のプロセ
スを停止させるかについても、上記の基本構成に対して
何等矛盾がなく、円滑で合理的な手法として、本発明は
次のような手法を開示する。
すなわち、実行されていたプロセスの停止は、そのプロ
セスが現在実行中にあるときに、当該プロセスに割り付
けられているレジスタが参照命令を受けた時点で、この
レジスタに未だデータが書込まれていなかった場合に生
じさせ、同時に、このようにして現在実行中のプロセス
を停止させたときには、実行すべきプロセスを他のプロ
セスに切替える。
セスが現在実行中にあるときに、当該プロセスに割り付
けられているレジスタが参照命令を受けた時点で、この
レジスタに未だデータが書込まれていなかった場合に生
じさせ、同時に、このようにして現在実行中のプロセス
を停止させたときには、実行すべきプロセスを他のプロ
セスに切替える。
そして、このようにした場合には、当該停止させたプロ
セスの復帰手法についても、上記の構成と共存し、円滑
な関係となり得る合理的な手法を提案するのが望ましい
ので、こうした観点から、本発明は、停止されたプロセ
スの復帰に関しても、次のような一手法を開示する。
セスの復帰手法についても、上記の構成と共存し、円滑
な関係となり得る合理的な手法を提案するのが望ましい
ので、こうした観点から、本発明は、停止されたプロセ
スの復帰に関しても、次のような一手法を開示する。
過去において上記のようにプロセス停止を受けた結果、
現在実行されていないプロセスに割り付けられているも
のとなったレジスタには、先に述べた第二発明に係る構
成中に明らかなように、局所メモリにそのレジスタに対
応する退避領域が設定されているので、この退避領域に
データが到着し、かつ、そのレジスタが当該プロセス停
止の原因となったレジスタであった場合には、その時点
で当該プロセスを再度実行可能なプロセスとして再登録
する。
現在実行されていないプロセスに割り付けられているも
のとなったレジスタには、先に述べた第二発明に係る構
成中に明らかなように、局所メモリにそのレジスタに対
応する退避領域が設定されているので、この退避領域に
データが到着し、かつ、そのレジスタが当該プロセス停
止の原因となったレジスタであった場合には、その時点
で当該プロセスを再度実行可能なプロセスとして再登録
する。
もちろん、このようにして再登録されたプロセスが少な
くとも再度実行されるまでには(望ましくは当該プロセ
ス復帰のタイミングで)、退避領域中に入っているデー
タを対応するレジスタに復づ偕させる。
くとも再度実行されるまでには(望ましくは当該プロセ
ス復帰のタイミングで)、退避領域中に入っているデー
タを対応するレジスタに復づ偕させる。
[作 用]
本発明の基本構成ないし第一発明に従うと、現在実行中
のプロセスに割り付けれられているレジスタに対するプ
ログラム上のデータ・ロード命令は、その時点で直ちに
値を要するものではなく、当該レジスタに参照命令が与
えられて実際に使用されるまで遅延し得る。
のプロセスに割り付けれられているレジスタに対するプ
ログラム上のデータ・ロード命令は、その時点で直ちに
値を要するものではなく、当該レジスタに参照命令が与
えられて実際に使用されるまで遅延し得る。
すなわち、実際に使用されるまでに当該レジスタに対す
るデータが到着すれば、演算装置の命令取出部にて取出
される命令列中に当該到着データのロード命令(疑似ロ
ード命令と言っても良い)が自動挿入されるので、多段
パイプライン処理で命令列が実行されている場合にも、
任意の段階で副作用なく、当該レジスタへのデータ書込
み命令を実行することができる。
るデータが到着すれば、演算装置の命令取出部にて取出
される命令列中に当該到着データのロード命令(疑似ロ
ード命令と言っても良い)が自動挿入されるので、多段
パイプライン処理で命令列が実行されている場合にも、
任意の段階で副作用なく、当該レジスタへのデータ書込
み命令を実行することができる。
換言すると、上記したような疑似ロード命令は、通常の
命令実行と同様に取扱い得るものとなり、したがってバ
イブライン・ブレイク等を発生させるおそれもなく、レ
ジスタ上でのデータ待ち合せを可能にしたことを意味す
る。
命令実行と同様に取扱い得るものとなり、したがってバ
イブライン・ブレイク等を発生させるおそれもなく、レ
ジスタ上でのデータ待ち合せを可能にしたことを意味す
る。
一方で、本発明の第二発明にも従った場合には、到着デ
ータが現在実行中のプロセスにではなく、過去に実行さ
れていたが途中で停止されたプロセスに割り付けられて
いたレジスタに対するものであった場合にも、局所メモ
リ中にこのレジスタに対応する退避領域が設定されてい
るので、この中に当該到着データを書込むことができる
。
ータが現在実行中のプロセスにではなく、過去に実行さ
れていたが途中で停止されたプロセスに割り付けられて
いたレジスタに対するものであった場合にも、局所メモ
リ中にこのレジスタに対応する退避領域が設定されてい
るので、この中に当該到着データを書込むことができる
。
そのため、後にこの退避領域に対応するレジスタの割り
付けられているプロセスが再度実行されるときまでには
、当該退避領域中のデータを対応するレジスタに簡単、
かつ高速に書込むことができる。
付けられているプロセスが再度実行されるときまでには
、当該退避領域中のデータを対応するレジスタに簡単、
かつ高速に書込むことができる。
さらに、このようなレジスタ側での基本的なデータ待ち
合せ作用に加え、本発明の第三発明にも従い、実行され
ていたプロセスの停止は、そのプロセスが現在実行中に
あるときに、当該プロセスに割り付けられているレジス
タが参照命令を受けた時点で、このレジスタに未だデー
タが書込まれていなかった場合に生じさせるようにし、
かつ、これに伴って、実行すべきプロセスを他のプロセ
スに切替えるようにすると、時間的な損失もほとんどな
く、複数のプロセスを順次、合理的に実行して行くこと
ができる。
合せ作用に加え、本発明の第三発明にも従い、実行され
ていたプロセスの停止は、そのプロセスが現在実行中に
あるときに、当該プロセスに割り付けられているレジス
タが参照命令を受けた時点で、このレジスタに未だデー
タが書込まれていなかった場合に生じさせるようにし、
かつ、これに伴って、実行すべきプロセスを他のプロセ
スに切替えるようにすると、時間的な損失もほとんどな
く、複数のプロセスを順次、合理的に実行して行くこと
ができる。
これに加え、本発明の第四発明にも従って、過去におい
て上記のようにプロセス停止を受けた結果、現在実行さ
れていないプロセスに割り付けられているものとなった
レジスタに対して対応的に設定されている局所メモリ中
の退避領域にデータが到着し、かつ、そのレジスタが当
該プロセス停止の原因となったものであった場合には、
このプロセスを再度実行可能なプロセスとして再登録す
ると共に、このようにして再登録されたプロセスが少な
くとも再度実行されるまでには、退避領域中に書込まれ
たデータを対応するレジスタに復帰させるべく計ると、
同等特殊な処理を必要とせず、当該プロセスを自動的に
再度、実行可能にすることができる。
て上記のようにプロセス停止を受けた結果、現在実行さ
れていないプロセスに割り付けられているものとなった
レジスタに対して対応的に設定されている局所メモリ中
の退避領域にデータが到着し、かつ、そのレジスタが当
該プロセス停止の原因となったものであった場合には、
このプロセスを再度実行可能なプロセスとして再登録す
ると共に、このようにして再登録されたプロセスが少な
くとも再度実行されるまでには、退避領域中に書込まれ
たデータを対応するレジスタに復帰させるべく計ると、
同等特殊な処理を必要とせず、当該プロセスを自動的に
再度、実行可能にすることができる。
結局、この第四発明にも従うと、上記第一、第二、第三
発明の構成ともあいまって、RISC型のアーキテクチ
ャに適用するにも極めて実行効率が高く、もっとも実用
的な演算システムを構築することができる。
発明の構成ともあいまって、RISC型のアーキテクチ
ャに適用するにも極めて実行効率が高く、もっとも実用
的な演算システムを構築することができる。
なお、プログラミングのスタイルに関しても、本方法は
、レジスタへデータをロードして使用するという現在の
スタイルで自然に記述することができる。
、レジスタへデータをロードして使用するという現在の
スタイルで自然に記述することができる。
[実 施 例]
第1図は本発明のデータ待ち合せ方法を実現し得る基本
ないし単位の演算装置を示している。
ないし単位の演算装置を示している。
この実施例では、当該単位演算装置は縮小命令セット計
算機(RISC)のアーキテクチャに基づき、多段バイ
ブライン処理、例えば、■命令取出しくI F) 。
算機(RISC)のアーキテクチャに基づき、多段バイ
ブライン処理、例えば、■命令取出しくI F) 。
おり、−時には一つのプロセスを実行する。
もちろん、実用的な製品としての汎用並列計算機では、
一般に第1図示のような単位演算装置が通信網1を介し
て互いに結合しながら複数個用いられる。。
一般に第1図示のような単位演算装置が通信網1を介し
て互いに結合しながら複数個用いられる。。
しかるにまず、このような単位の演算装置に関し、簡単
に各々の機能を含みながら、できるだけ静的な構成に即
して説明する所から始める。
に各々の機能を含みながら、できるだけ静的な構成に即
して説明する所から始める。
回路ブロック3,4,7.9はRISC型計算機の基本
機能に係る部分であり、回路ブロック5 6 10.1
1は複数のプロセスをサポートする機能、回路ブロック
2,8.12は他の単位演算装置との通信を行なう機能
に関与する。
機能に係る部分であり、回路ブロック5 6 10.1
1は複数のプロセスをサポートする機能、回路ブロック
2,8.12は他の単位演算装置との通信を行なう機能
に関与する。
個々の回路ブロックにつき説明すると、パケット取扱部
2は、通信網1を介し、外部から送られてきたパケット
(すなわち届は先の書かれたデータ)の仕分けを行なう
もので、当該パケットが到着するたびに現在実行中のプ
ロセス・レジスタ511に依頼し、メモリ・システム4
中の当該対応する退避領域にこのパケットの運んできた
データを書込ませる。
2は、通信網1を介し、外部から送られてきたパケット
(すなわち届は先の書かれたデータ)の仕分けを行なう
もので、当該パケットが到着するたびに現在実行中のプ
ロセス・レジスタ511に依頼し、メモリ・システム4
中の当該対応する退避領域にこのパケットの運んできた
データを書込ませる。
命令取出部3は、通常の機能として、現在実行中のプロ
セス・レジスタ5の示すプログラム・カウンタの示す番
地に従ってメモリ・システム4から命令を取出す。これ
に対応して、メモリ・シス挿入する。
セス・レジスタ5の示すプログラム・カウンタの示す番
地に従ってメモリ・システム4から命令を取出す。これ
に対応して、メモリ・シス挿入する。
送られてきたパケットが現在実行中のプロセスに属する
レジスタに対するものでなかった場合には、後に説明さ
れる所からも明らかなように、当該レジスタにはメモリ
・システム4内の局所メモリ22(第4図)中に対応的
に退避領域が設定されているので・このパケットの処理
をメモリ操作部網1を介して送られてきたパケットが現
在実行中のプロセスに割り付けられているか否かをパケ
ット取扱部2にて判断する判断材料を提供するが、これ
ももちろん、通常のこの種のプロセス・レジスタに見ら
れる通り、現在実行中のプロセス(プログラム・カウン
タ、レジスタ・ファイルの指定等を含む)を示す機能を
持っている。
レジスタに対するものでなかった場合には、後に説明さ
れる所からも明らかなように、当該レジスタにはメモリ
・システム4内の局所メモリ22(第4図)中に対応的
に退避領域が設定されているので・このパケットの処理
をメモリ操作部網1を介して送られてきたパケットが現
在実行中のプロセスに割り付けられているか否かをパケ
ット取扱部2にて判断する判断材料を提供するが、これ
ももちろん、通常のこの種のプロセス・レジスタに見ら
れる通り、現在実行中のプロセス(プログラム・カウン
タ、レジスタ・ファイルの指定等を含む)を示す機能を
持っている。
レジスタ・ファイル6は多数のレジスタの集合体であっ
て、当該レジスタ・ファイル6中、プロセス・レジスタ
5で指定されたレジスタ群に対しては、命令解釈及びオ
ペランド取出部7からの読出しと、演算実行部9からの
書込みが可能である。
て、当該レジスタ・ファイル6中、プロセス・レジスタ
5で指定されたレジスタ群に対しては、命令解釈及びオ
ペランド取出部7からの読出しと、演算実行部9からの
書込みが可能である。
命令解釈及びオペランド取出部7は、命令取出部3から
送られてくる命令の解釈を行ない、レジスタ・ファイル
6からそのオペランド・データを取出す。
送られてくる命令の解釈を行ない、レジスタ・ファイル
6からそのオペランド・データを取出す。
す・アクセス命令である場合にはメモリ操作部11に、
そして外部メモリ・アクセス命令である場合にはパケッ
ト生成部12に、それら各命令を仕分けして送るか、あ
るいは各回路部9 、10.11.12にて選択的に自
身に対する命令が読取られる。
そして外部メモリ・アクセス命令である場合にはパケッ
ト生成部12に、それら各命令を仕分けして送るか、あ
るいは各回路部9 、10.11.12にて選択的に自
身に対する命令が読取られる。
命令解釈及びオペランド取出部7に付属のフラグ検査部
8は、当該命令解釈及びオペランド取出部7がレジスタ
・ファイル6からデータを取出すに際し、当該レジスタ
のフラグを調べる。通常の命令については、当該レジス
タにデータが存在すればそれを演算実行部9に送り、存
在しなければ現在実行中のプロセスを停止(中断)する
。
8は、当該命令解釈及びオペランド取出部7がレジスタ
・ファイル6からデータを取出すに際し、当該レジスタ
のフラグを調べる。通常の命令については、当該レジス
タにデータが存在すればそれを演算実行部9に送り、存
在しなければ現在実行中のプロセスを停止(中断)する
。
現在実行中だったプロセスが停止されると、待機してい
た他の実行可能なプロセスを示すプロセス・レディ・キ
ュー10から新たなプロセスが一つ取出され、プロセス
・レジスタ5に送られる。
た他の実行可能なプロセスを示すプロセス・レディ・キ
ュー10から新たなプロセスが一つ取出され、プロセス
・レジスタ5に送られる。
演算実行部9は命令解釈及びオペランド取出部7から与
えられるデータに関して所定の演算を行ない、その結果
をレジスタ・ファイル6中の指定のレジスタに書込む。
えられるデータに関して所定の演算を行ない、その結果
をレジスタ・ファイル6中の指定のレジスタに書込む。
プロセス・レディ・キューlOについては上述の通りで
あり、また、メモリ操作部11は命令操作依頼に従って
メモリ・システム4との間でデータの読み書きを行なう
。なお、メモリ操作部11にはこのときのフラグを調べ
るフラグ検査部11°も付属しており、存在していない
データに対する参照は、それが書込まれるまで自動的に
待たせる。外部へのデータ転送要求に対しては、データ
をパケット生成部12に送給する。
あり、また、メモリ操作部11は命令操作依頼に従って
メモリ・システム4との間でデータの読み書きを行なう
。なお、メモリ操作部11にはこのときのフラグを調べ
るフラグ検査部11°も付属しており、存在していない
データに対する参照は、それが書込まれるまで自動的に
待たせる。外部へのデータ転送要求に対しては、データ
をパケット生成部12に送給する。
これに応じ、パケット生成部12は送られてきたデータ
から所定フォーマットのパケットを生成し、通信網1に
送り出す。
から所定フォーマットのパケットを生成し、通信網1に
送り出す。
このような静的な説明にあっても、本発明に従うデータ
待ち合せ方法は説明されているが、さらにもう少し具体
的に、本発明の一実施例としての動作例につき、簡単な
モデルを挙げて説明する。
待ち合せ方法は説明されているが、さらにもう少し具体
的に、本発明の一実施例としての動作例につき、簡単な
モデルを挙げて説明する。
、’wえられた場合には、レジスタ・ファイル6中の・
−・1 2′当該レジスタRn中のデータ存在フラ2゛Pを落と
すと同時に、外部のメモリ装置15中の対応するメモリ
Mmにデータ転送要求を送る。これは第2図中、共に実
線の矢印で示されている。
−・1 2′当該レジスタRn中のデータ存在フラ2゛Pを落と
すと同時に、外部のメモリ装置15中の対応するメモリ
Mmにデータ転送要求を送る。これは第2図中、共に実
線の矢印で示されている。
メモリMmでは、そこにデータが存在し、そのデータ存
在フラ7” Pが立っていれば、当該レジスタRnに対
し、当該データを組込んだ返事パケット16を送出する
。
在フラ7” Pが立っていれば、当該レジスタRnに対
し、当該データを組込んだ返事パケット16を送出する
。
これに対し、メモリMmにデータが存在していなかった
場合には、当該メモリMmにデータ待ちフラグWを立て
、そこにレジスタRnへのデータ転送要求を保存して置
く。
場合には、当該メモリMmにデータ待ちフラグWを立て
、そこにレジスタRnへのデータ転送要求を保存して置
く。
したがって、メモリMmにデータが書込まれると、これ
が自動的に返事パケット16によってレジスタRnの側
に送給される。
が自動的に返事パケット16によってレジスタRnの側
に送給される。
一方、第1図示の単位演算装置の方で、当該レジスタR
nの属するプロセスの実行中に、上記の返事パケット1
6が送られてくると、第1図示のパケット取扱部2にお
いて、第2図に符号17で併示のように、データ・ロー
ド命令の自動挿入が行なわれる。
nの属するプロセスの実行中に、上記の返事パケット1
6が送られてくると、第1図示のパケット取扱部2にお
いて、第2図に符号17で併示のように、データ・ロー
ド命令の自動挿入が行なわれる。
すなわち、模式的に第3図に示すように、通常の命令実
行20を果たしている実行パイプライン18に対し、返
事パケット16に伴うデータ・ロード命令19(”ld
Rn、data” )が、矢印17で示されるよ
うに、任意の時点で挿入され、また、このようにして挿
入された当該命令19は、通常の命令と全く同様に取扱
れる。
行20を果たしている実行パイプライン18に対し、返
事パケット16に伴うデータ・ロード命令19(”ld
Rn、data” )が、矢印17で示されるよ
うに、任意の時点で挿入され、また、このようにして挿
入された当該命令19は、通常の命令と全く同様に取扱
れる。
これにより、レジスタRnにデータが書込まれれば、そ
のレジスタRnでは対応するデータ存在フラグPを立て
る。
のレジスタRnでは対応するデータ存在フラグPを立て
る。
その後、第2図中のプログラム13に示されているよう
に、 add Rn、Ra Rb″なる命令に
より、第4図に示されているレジスタ・セット21(R
3x)中のレジスタRnが矢印24で示されているよう
に参照されたとき、上記のようにこのレジスタRnにあ
らかじめデータが到着して・いることがなくて、そのレ
ジスタRnにデータ存在フラグPが立っていなければ(
図示の場合、これを当該フラグ・ビットの論理°“0°
°で表している)、プロセス停止フラグSを立て(論理
°′1°。
に、 add Rn、Ra Rb″なる命令に
より、第4図に示されているレジスタ・セット21(R
3x)中のレジスタRnが矢印24で示されているよう
に参照されたとき、上記のようにこのレジスタRnにあ
らかじめデータが到着して・いることがなくて、そのレ
ジスタRnにデータ存在フラグPが立っていなければ(
図示の場合、これを当該フラグ・ビットの論理°“0°
°で表している)、プロセス停止フラグSを立て(論理
°′1°。
にして)、併せて局所メモリ22中のレジスタ・セット
用退避領域25中の対応するレジスタ退避領域にも停止
フラグSを立てる。
用退避領域25中の対応するレジスタ退避領域にも停止
フラグSを立てる。
また、これに伴い、第1図中に示しであるプロセス・レ
ディ・キューIOから新しいプロセスを一つ取出し、そ
の実行に入る。
ディ・キューIOから新しいプロセスを一つ取出し、そ
の実行に入る。
現在実行中のプロセスに属する以外のレジスタに対応す
る退避領域にデータが到着した場合には、当該退避領域
にこれを書込む。すなわち、第4図に示されていて、先
に説明したレジスタRn夕存在フラグPを立て(0=>
1)、プロセス停止フラグSを落として(1−>O)、
このレジスタの属するプロセスをプロセス・レディ・キ
ューlOに入れる。
る退避領域にデータが到着した場合には、当該退避領域
にこれを書込む。すなわち、第4図に示されていて、先
に説明したレジスタRn夕存在フラグPを立て(0=>
1)、プロセス停止フラグSを落として(1−>O)、
このレジスタの属するプロセスをプロセス・レディ・キ
ューlOに入れる。
また、望ましいことに、この実施例では各レジスタ・セ
ット用に対応するビット・マツプ・テーブル23を用意
しているので、退避領域について書込みのあったレジス
タに対応するビットを立てて置く。
ット用に対応するビット・マツプ・テーブル23を用意
しているので、退避領域について書込みのあったレジス
タに対応するビットを立てて置く。
したがってその後、当該プロセスが再実行されるに先立
って、すなわち、少なくとも当該プロセスが再度、現に
実行されるまでには(望ましくはより一般的に、当該プ
ロセス復帰のタイミングに合せて)、このプロセスに属
し、かつレジスタ・ビット・マツプ・テーブル23にて
指示されるレジスタに対し、それに対応する退避領域か
らデータを復帰させることができる。
って、すなわち、少なくとも当該プロセスが再度、現に
実行されるまでには(望ましくはより一般的に、当該プ
ロセス復帰のタイミングに合せて)、このプロセスに属
し、かつレジスタ・ビット・マツプ・テーブル23にて
指示されるレジスタに対し、それに対応する退避領域か
らデータを復帰させることができる。
以上、本発明に従う実施例につき説明したが、プロセス
の再実行のための情報は、レジスタや退a領域に直接書
込むようにはせず、別途特定の領域に記憶して置くよう
にしても良い。また、ビット・マツプ・テーブル23の
使用は望ましいが、限定的ではない。
の再実行のための情報は、レジスタや退a領域に直接書
込むようにはせず、別途特定の領域に記憶して置くよう
にしても良い。また、ビット・マツプ・テーブル23の
使用は望ましいが、限定的ではない。
さらに、プロセスに割り付けられているレジスタ群は、
プロセスの切替えにより、必ずしもその全てが実際にメ
モリに退避される必要もない。メモリに退避させたレジ
スタについては、例えば上記のように望ましくは用いら
れるビット・マツプ・テーブル中の対応する部分にビッ
トを立て、その復帰を保証して置けば良い。
プロセスの切替えにより、必ずしもその全てが実際にメ
モリに退避される必要もない。メモリに退避させたレジ
スタについては、例えば上記のように望ましくは用いら
れるビット・マツプ・テーブル中の対応する部分にビッ
トを立て、その復帰を保証して置けば良い。
[効 果]
本発明によれば、従来困難であった演算レジスタ上での
データ待ち合せを実現することができる。
データ待ち合せを実現することができる。
これは同時に、汎用高並列計算機としても、特にレジス
タ間演算を中心とする縮小命令セット計算機システムへ
の応用が可能なことを意味し、実際上、これによる波及
効果は、この種の分野の発展に大いに寄与するものであ
る。
タ間演算を中心とする縮小命令セット計算機システムへ
の応用が可能なことを意味し、実際上、これによる波及
効果は、この種の分野の発展に大いに寄与するものであ
る。
第1図は本発明のデータ待ち合せ方法を適用するに適し
た単位ないし基本的な演算装置の一構成例の概略構成図
。 第2図は本発明方法の一実施例における動作の説明図。 第3図は現在実行されているプロセスに割り付けられ、
かつ、データ待ちとなっていたレジスタに対し、本発明
に従って到着データのロード命令を自動挿入した場合の
説明図。 第4図は現在実行されていないプロセスに割り付けら、
れ、データ待ちとなっているレジスタに対し、データが
到着した場合の本発明に従う処理の説明図 である。 図中、1は通信網、2はパケット取扱部、3は命令取出
部、4はメモリ・システム、5はプロセス・レジスタ、
6はレジスタ・ファイル、7は命令解釈及びオペランド
取出部、8はフラグ検査部、9は演算実行部、10はプ
ロセス・レディ・キュー、11は命令操作部、11°は
命令操作部に付属のフラグ検査部、12はパケット生成
部、13はプログラム、15は外部メモリ装置、16は
返事パケット、18は実行パイプライン、21はレジス
タ・セット、22は局所メモリ、23はレジスタ・ビッ
ト・マツプ、テーブル、25はレジスタ・ヒント出Lm
外戒、τ゛らろ。 指定代理人 工業技術院 第2図 第1図 iイも網
た単位ないし基本的な演算装置の一構成例の概略構成図
。 第2図は本発明方法の一実施例における動作の説明図。 第3図は現在実行されているプロセスに割り付けられ、
かつ、データ待ちとなっていたレジスタに対し、本発明
に従って到着データのロード命令を自動挿入した場合の
説明図。 第4図は現在実行されていないプロセスに割り付けら、
れ、データ待ちとなっているレジスタに対し、データが
到着した場合の本発明に従う処理の説明図 である。 図中、1は通信網、2はパケット取扱部、3は命令取出
部、4はメモリ・システム、5はプロセス・レジスタ、
6はレジスタ・ファイル、7は命令解釈及びオペランド
取出部、8はフラグ検査部、9は演算実行部、10はプ
ロセス・レディ・キュー、11は命令操作部、11°は
命令操作部に付属のフラグ検査部、12はパケット生成
部、13はプログラム、15は外部メモリ装置、16は
返事パケット、18は実行パイプライン、21はレジス
タ・セット、22は局所メモリ、23はレジスタ・ビッ
ト・マツプ、テーブル、25はレジスタ・ヒント出Lm
外戒、τ゛らろ。 指定代理人 工業技術院 第2図 第1図 iイも網
Claims (4)
- (1)現在実行中のプロセスに割り付けられているレジ
スタに対するデータが演算装置に到着した場合、該演算
装置の命令取出部にて取出される命令列中に、当該デー
タのロード命令を自動挿入すること; を特徴とする演算レジスタ用データ待ち合せ方法。 - (2)請求項(1)に記載の演算レジスタ用データ待ち
合せ方法であって; さらに、過去に実行されていたが途中で停止された結果
、上記現在実行中のプロセスではなくなったプロセスに
割り付けられていたレジスタに対するデータが上記演算
装置に到着した場合には、該レジスタに対して対応的に
確保されている局所メモリの退避領域中に該データを書
込むこと; を特徴とする演算レジスタ用データ待ち合せ方法。 - (3)請求項(2)に記載の演算レジスタ用データ待ち
合せ方法であって; 上記実行されていたプロセスの上記停止は、該プロセス
が現在実行中にあるときに、該プロセスに割り付けられ
ているレジスタが参照命令を受けた時点で、該レジスタ
に未だデータが存在していなかった場合に生じ; かつ、該現在実行中のプロセスに上記停止が生じたとき
には、実行すべきプロセスを他のプロセスに切替えるこ
と; を特徴とする方法。 - (4)請求項(3)に記載の演算レジスタ用データ待ち
合せ方法であって; 過去において上記停止を受けた結果、現在実行されてい
ないプロセスに割り付けられているものとなったレジス
タの上記退避領域にデータが到着し、かつ、そのレジス
タが上記プロセス停止の原因となっていた場合には、該
レジスタの属する該現在実行されていないプロセスを再
度実行可能なプロセスとして再登録すると共に; 該再登録されたプロセスが少なくとも上記再実行される
までには、上記退避領域に到着したデータを上記対応す
るレジスタに復帰させること; を特徴とする方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1101425A JPH0640316B2 (ja) | 1989-04-20 | 1989-04-20 | 演算レジスタ上でのデータ待ち合せ実現方法 |
| US08/173,478 US5442761A (en) | 1989-04-20 | 1993-12-27 | Method by which packet handler inserts data load instructions in instruction sequence fetched by instruction fetch unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1101425A JPH0640316B2 (ja) | 1989-04-20 | 1989-04-20 | 演算レジスタ上でのデータ待ち合せ実現方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02278433A true JPH02278433A (ja) | 1990-11-14 |
| JPH0640316B2 JPH0640316B2 (ja) | 1994-05-25 |
Family
ID=14300352
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1101425A Expired - Lifetime JPH0640316B2 (ja) | 1989-04-20 | 1989-04-20 | 演算レジスタ上でのデータ待ち合せ実現方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5442761A (ja) |
| JP (1) | JPH0640316B2 (ja) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6209085B1 (en) * | 1995-05-05 | 2001-03-27 | Intel Corporation | Method and apparatus for performing process switching in multiprocessor computer systems |
| US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
| US5794010A (en) * | 1996-06-10 | 1998-08-11 | Lsi Logic Corporation | Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor |
| US5896519A (en) * | 1996-06-10 | 1999-04-20 | Lsi Logic Corporation | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions |
| US6965915B1 (en) * | 1999-03-30 | 2005-11-15 | Siemens Aktiengesellschaft | Communications system for the control of a communications terminal by a remote computer |
| US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
| US6826681B2 (en) * | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
| US7646782B1 (en) * | 2001-07-30 | 2010-01-12 | Primrose Donald R | Data link/physical layer packet buffering and flushing |
| US7415031B2 (en) * | 2001-07-30 | 2008-08-19 | Null Networks Llc | Data link/physical layer packet diversion and insertion |
| US6954848B2 (en) * | 2002-01-02 | 2005-10-11 | Intel Corporation | Marking in history table instructions slowable/delayable for subsequent executions when result is not used immediately |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5247978A (en) * | 1975-07-30 | 1977-04-16 | Inst Francais Du Petrole | Method of converting methnol to protein rich mycelium by microorganism |
| JPS62267833A (ja) * | 1986-05-16 | 1987-11-20 | Nippon Telegr & Teleph Corp <Ntt> | プロセス間通信方法 |
| JPH01224847A (ja) * | 1988-03-04 | 1989-09-07 | Nippon Telegr & Teleph Corp <Ntt> | 電子計算機処理方式 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4901274A (en) * | 1984-07-11 | 1990-02-13 | Hitachi, Ltd. | Method and system for data driven information processing |
| US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
| US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
| US5010477A (en) * | 1986-10-17 | 1991-04-23 | Hitachi, Ltd. | Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations |
| US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
| US5212778A (en) * | 1988-05-27 | 1993-05-18 | Massachusetts Institute Of Technology | Message-driven processor in a concurrent computer |
-
1989
- 1989-04-20 JP JP1101425A patent/JPH0640316B2/ja not_active Expired - Lifetime
-
1993
- 1993-12-27 US US08/173,478 patent/US5442761A/en not_active Expired - Lifetime
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5247978A (en) * | 1975-07-30 | 1977-04-16 | Inst Francais Du Petrole | Method of converting methnol to protein rich mycelium by microorganism |
| JPS62267833A (ja) * | 1986-05-16 | 1987-11-20 | Nippon Telegr & Teleph Corp <Ntt> | プロセス間通信方法 |
| JPH01224847A (ja) * | 1988-03-04 | 1989-09-07 | Nippon Telegr & Teleph Corp <Ntt> | 電子計算機処理方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0640316B2 (ja) | 1994-05-25 |
| US5442761A (en) | 1995-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Henry et al. | A tightly-coupled processor-network interface | |
| CN101158893B (zh) | 数据处理系统中的寄存器重命名 | |
| JPS58151655A (ja) | 情報処理装置 | |
| CN101110017A (zh) | 一种组合指令的技术 | |
| KR940018742A (ko) | 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클로 디스패치하기 위한 방법 및 장치 | |
| JPH02278433A (ja) | 演算レジスタ上でのデータ待ち合せ実現方法 | |
| JPS62502151A (ja) | 大型コンピユ−タシステムのコンピユ−タ機能をシミユレ−トするための配列 | |
| CN100573500C (zh) | 基于Avalon总线的流处理器IP核 | |
| WO2026016845A1 (zh) | 处理器、显卡、计算机设备以及依赖解除方法 | |
| TW449720B (en) | Routing dependent instructions to clustered execution units | |
| US7376950B2 (en) | Signal aggregation | |
| CN108845829A (zh) | 一种系统寄存器访问指令的执行方法 | |
| DE10001168A1 (de) | Ausgabe-Fifo-Datenübertragungssteuereinrichtung | |
| CN120631449A (zh) | 一种处理器程序地址缓冲方法及装置 | |
| RU2007101465A (ru) | Способ управления выполнением программы/команды, архитектура и процессор по этому способу | |
| US20040034858A1 (en) | Programming a multi-threaded processor | |
| JPS58225443A (ja) | 高速デ−タ処理装置 | |
| EP1393162A2 (en) | Method and system for tracking and recycling physical register assignment | |
| JP4608276B2 (ja) | トレース制御回路、マイクロプロセッサ及びトレース制御方法 | |
| US20060070042A1 (en) | Automatic clocking in shared-memory co-simulation | |
| US20250190217A1 (en) | Technique for handling ordering constrained access operations | |
| KR880001399B1 (ko) | 정보 처리 장치 | |
| CN112131152A (zh) | 一种串行交互式传输扩展接口设计方法 | |
| JP2657947B2 (ja) | データ処理装置 | |
| JP3085103B2 (ja) | 並列プロセッサ論理シミュレーション装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |