JPH0695349B2 - プログラム実行制御方式 - Google Patents
プログラム実行制御方式Info
- Publication number
- JPH0695349B2 JPH0695349B2 JP63013280A JP1328088A JPH0695349B2 JP H0695349 B2 JPH0695349 B2 JP H0695349B2 JP 63013280 A JP63013280 A JP 63013280A JP 1328088 A JP1328088 A JP 1328088A JP H0695349 B2 JPH0695349 B2 JP H0695349B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- node
- instruction
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] この発明はプログラム実行制御方式に関し、特に、演算
の対象になるデータが揃い次第命令の実行が可能になる
データフロー型情報処理装置において、プログラムデー
タ記憶するプログラムメモリをアクセスする際のプログ
ラム実行制御方式に関する。
の対象になるデータが揃い次第命令の実行が可能になる
データフロー型情報処理装置において、プログラムデー
タ記憶するプログラムメモリをアクセスする際のプログ
ラム実行制御方式に関する。
[従来の技術および発明が解決しようとする課題] 従来のコンピュータは、プログラムとして種々を命令を
プログラムメモリに記憶しておき、プログラムカウンタ
によってプログラムメモリのアドレスを遂次指定して順
次命令を読出し、その命令を実行するというノイマン型
計算機が大部分である。
プログラムメモリに記憶しておき、プログラムカウンタ
によってプログラムメモリのアドレスを遂次指定して順
次命令を読出し、その命令を実行するというノイマン型
計算機が大部分である。
一方、データフロー型計算機は、プログラムカウンタや
遂次的な命令の実行という概念は持たない非ノイマン型
計算機の一種である。このようなデータフロー型計算機
は、命令の並列処理を基本にしたアーキテクチャを採用
してており、演算の対象になるデータが揃い次第命令の
実行が可能となり、データによって複数の命令を同時に
駆動するため、データの自然な流れに従って並列的にプ
ログラムが実行される。その結果、演算の所要時間が大
幅に短縮するとみなされている。
遂次的な命令の実行という概念は持たない非ノイマン型
計算機の一種である。このようなデータフロー型計算機
は、命令の並列処理を基本にしたアーキテクチャを採用
してており、演算の対象になるデータが揃い次第命令の
実行が可能となり、データによって複数の命令を同時に
駆動するため、データの自然な流れに従って並列的にプ
ログラムが実行される。その結果、演算の所要時間が大
幅に短縮するとみなされている。
ところで、従来のデータフロー型計算機は、プログラム
メモリを内蔵するのが一般的であり、外部にプログラム
メモリを設けるという概念は存在しなかった。
メモリを内蔵するのが一般的であり、外部にプログラム
メモリを設けるという概念は存在しなかった。
それゆえに、この発明の主たる目的は、大容量のプログ
ラムメモリを外付けして、プログラムメモリを高速でア
クセスできるようなプログラム実行制御方式を提供する
ことである。
ラムメモリを外付けして、プログラムメモリを高速でア
クセスできるようなプログラム実行制御方式を提供する
ことである。
[課題を解決するための手段] この発明はデータフロープログラムを記憶するプログラ
ム記憶手段と、プログラム記憶手段から対となるプログ
ラムおよび被処理データが入力されたことを判別する対
データ検出手段と、対データ検出手段によって対となる
プログラムデータおよび被処理データが検出されたこと
に応じて、そのプログラムデータおよび被処理データに
基づく演算を実行する演算処理手段と、プログラム記憶
手段にプログラムデータを与える外部プログラム記憶手
段とを備えた情報処理装置において、プログラム記憶手
段をアクセスするプログラム実行制御方式であって、対
データ検出手段によってプログラム記憶手段から対とな
るプログラムデータおよび被処理データの読出されたこ
とが判別されたことに応じて、外部プログラム記憶手段
のアクセスを実行するとともに、演算処理手段に処理す
べきプログラムデータおよび被処理データを送出し、演
算処理手段の演算処理結果データに対する次の命令をプ
ログラム記憶手段に対してフェッチし、該命令フェッチ
がミスヒットした場合、外部記憶手段に対して直接次の
命令を被処理データとともにアクセスするようにしたも
のである。
ム記憶手段と、プログラム記憶手段から対となるプログ
ラムおよび被処理データが入力されたことを判別する対
データ検出手段と、対データ検出手段によって対となる
プログラムデータおよび被処理データが検出されたこと
に応じて、そのプログラムデータおよび被処理データに
基づく演算を実行する演算処理手段と、プログラム記憶
手段にプログラムデータを与える外部プログラム記憶手
段とを備えた情報処理装置において、プログラム記憶手
段をアクセスするプログラム実行制御方式であって、対
データ検出手段によってプログラム記憶手段から対とな
るプログラムデータおよび被処理データの読出されたこ
とが判別されたことに応じて、外部プログラム記憶手段
のアクセスを実行するとともに、演算処理手段に処理す
べきプログラムデータおよび被処理データを送出し、演
算処理手段の演算処理結果データに対する次の命令をプ
ログラム記憶手段に対してフェッチし、該命令フェッチ
がミスヒットした場合、外部記憶手段に対して直接次の
命令を被処理データとともにアクセスするようにしたも
のである。
[作用] この発明に係るプログラム実行制御方式においては、実
行に必要な命令はフェッチされる直前に外部プログラム
記憶手段からプログラム記憶手段ヘアップロードされて
確実にフェッチされ、たまたまミスヒットした場合に
は、直接外部プログラム記憶手段をアクセスすることに
より、極めて良好な効率で命令のフェッチを実行するこ
とが可能となる。
行に必要な命令はフェッチされる直前に外部プログラム
記憶手段からプログラム記憶手段ヘアップロードされて
確実にフェッチされ、たまたまミスヒットした場合に
は、直接外部プログラム記憶手段をアクセスすることに
より、極めて良好な効率で命令のフェッチを実行するこ
とが可能となる。
[実施例] 第1図はこの発明の一実施例の概略ブロック図である。
まず、第1図を参照して、この発明の一実施例の構成に
ついて説明する。情報処理装置1には外部プログラムメ
モリ2が外付けされている。情報処理装置1は入出力制
御回路を構成する分岐結合部3,4,5,10およびバッファ11
を含む。分岐結合部3には入力データパケットが与えら
れ、この入力データパケットは分岐結合部3によって分
岐されて分岐結合部4または5に与えられる。分岐結合
部5は分岐結合部3から出力された入力データパケット
または後述のバッファ11から与えられるデータパケット
のいずれかをキャッシュプログラムメモリ6に与える。
キャッシュプログラムメモリ6はノードN#とG/C(Gen
eration/Color)とを組合わせたキーコードを複数記憶
していて、該当するキーコードが入力されると、プログ
ラム上の行先ノードN#とその行先ノードN#でどのよ
うな処理をするかを示すTAGが対データ検出部7に出力
される。
まず、第1図を参照して、この発明の一実施例の構成に
ついて説明する。情報処理装置1には外部プログラムメ
モリ2が外付けされている。情報処理装置1は入出力制
御回路を構成する分岐結合部3,4,5,10およびバッファ11
を含む。分岐結合部3には入力データパケットが与えら
れ、この入力データパケットは分岐結合部3によって分
岐されて分岐結合部4または5に与えられる。分岐結合
部5は分岐結合部3から出力された入力データパケット
または後述のバッファ11から与えられるデータパケット
のいずれかをキャッシュプログラムメモリ6に与える。
キャッシュプログラムメモリ6はノードN#とG/C(Gen
eration/Color)とを組合わせたキーコードを複数記憶
していて、該当するキーコードが入力されると、プログ
ラム上の行先ノードN#とその行先ノードN#でどのよ
うな処理をするかを示すTAGが対データ検出部7に出力
される。
対データ検出部7はキャッシュプログラムメモリ6から
読出されたプログラムデータおよび被処理データに対し
て対となるプログラムデータおよび被処理データが入力
されたか否かを判別するものである。1対のプログラム
データおよび被処理データが対データ検出部7で検出さ
れかつ生成されたとき、接点8が閉じられる。なお、プ
ログラムデータがnopの場合にも、対となるべきプログ
ラムデータが不要であるため、接点8は閉じられる。ま
た、対データ検出部7の出力は外部プログラムメモリ2
にも与えられている。対データ検出部7から出力された
プログラムデータおよび被処理データは、接点8を介し
てALU9に与えられて演算され、その演算結果は分岐結合
部10によってバッファ11または分岐結合部4に分岐され
る。バッファ11に記憶された演算結果は分岐結合部5を
介してキャッシュプログラムメモリ6に与えられる。
読出されたプログラムデータおよび被処理データに対し
て対となるプログラムデータおよび被処理データが入力
されたか否かを判別するものである。1対のプログラム
データおよび被処理データが対データ検出部7で検出さ
れかつ生成されたとき、接点8が閉じられる。なお、プ
ログラムデータがnopの場合にも、対となるべきプログ
ラムデータが不要であるため、接点8は閉じられる。ま
た、対データ検出部7の出力は外部プログラムメモリ2
にも与えられている。対データ検出部7から出力された
プログラムデータおよび被処理データは、接点8を介し
てALU9に与えられて演算され、その演算結果は分岐結合
部10によってバッファ11または分岐結合部4に分岐され
る。バッファ11に記憶された演算結果は分岐結合部5を
介してキャッシュプログラムメモリ6に与えられる。
外部プログラムメモリ2は対データ検出部7から出力さ
れたプログラムデータに含まれるN#とG/Cとをキーコ
ードとして、次の命令のプログラムデータを読出してキ
ャッシュプログラムメモリ6にアンプロードする。
れたプログラムデータに含まれるN#とG/Cとをキーコ
ードとして、次の命令のプログラムデータを読出してキ
ャッシュプログラムメモリ6にアンプロードする。
前述のバッファ11は外部プログラムメモリ2がプログラ
ムデータを読出してから、ALU9の演算結果をキャッシュ
プログラムメモリ6に与えるための遅延動作を行なうも
のとして設けらている。なお、外部プログラムメモリ2
は、キャッシュプログラムメモリ6からプログラムデー
タの初期書込み(ダウンロード)が可能なように構成さ
れている。
ムデータを読出してから、ALU9の演算結果をキャッシュ
プログラムメモリ6に与えるための遅延動作を行なうも
のとして設けらている。なお、外部プログラムメモリ2
は、キャッシュプログラムメモリ6からプログラムデー
タの初期書込み(ダウンロード)が可能なように構成さ
れている。
第2図は第1図に示した情報処理装置によって処理され
るプログラムの一例を示す図であり、第3図ないし第10
図は第1図に示した情報処理装置1によって、第2図に
示したプログラムを実行するときの各部のプログラムデ
ータの変化を示す図である。
るプログラムの一例を示す図であり、第3図ないし第10
図は第1図に示した情報処理装置1によって、第2図に
示したプログラムを実行するときの各部のプログラムデ
ータの変化を示す図である。
次に、第1図ないし第10図を参照して、この発明の一実
施例の具体的な動作について説明する。まず、第2図の
プログラムから明らかなように、ノードN#Aに続くプ
ログラムデータは、ノードでデータ0のnop命令を実
行するとともに、ノードDから与えられかつノードで
NOP命令が実行されたデータとノードで加算命令を実
行できるようにキャッシュプログラムメモリ6に配され
ることが望まれる。
施例の具体的な動作について説明する。まず、第2図の
プログラムから明らかなように、ノードN#Aに続くプ
ログラムデータは、ノードでデータ0のnop命令を実
行するとともに、ノードDから与えられかつノードで
NOP命令が実行されたデータとノードで加算命令を実
行できるようにキャッシュプログラムメモリ6に配され
ることが望まれる。
このために、第3図に示すように、情報処理装置1に
は、入力データパケットとして、データ0,TAGソース,G/
C0,N#Aが与えられる。ここで、ノードN#AおよびG/
C0の各々の一部を併せたものがキャッシュプログラムメ
モリ6の物理アドレスを示しており、TAGソースはノー
ドN#Aがプログラムデータの入力部を指定するもので
あり、G/Cはデータ0がどの時刻でサンプリングされた
データであるのかを識別するための識別子として用いら
れている。
は、入力データパケットとして、データ0,TAGソース,G/
C0,N#Aが与えられる。ここで、ノードN#AおよびG/
C0の各々の一部を併せたものがキャッシュプログラムメ
モリ6の物理アドレスを示しており、TAGソースはノー
ドN#Aがプログラムデータの入力部を指定するもので
あり、G/Cはデータ0がどの時刻でサンプリングされた
データであるのかを識別するための識別子として用いら
れている。
なお、ノードN#AとG/C0はキャッシュプログラムメモ
リ6の前記物理アドレスを与えるとともに該メモリをア
クセスするためのキーコードとして取扱われている。上
述の入力データパケットは分岐結合部3,5を介してキャ
ッシュプログラムメモリ6に与えられる。キャッシュプ
ログラムメモリ6はノードN#A,G/C0をキーコードとし
て、対応するプログラムデータをアクセスする。たとえ
ば、対応するプログラムデータとしてノードN#3,TAG
+Lがフェッチされる。
リ6の前記物理アドレスを与えるとともに該メモリをア
クセスするためのキーコードとして取扱われている。上
述の入力データパケットは分岐結合部3,5を介してキャ
ッシュプログラムメモリ6に与えられる。キャッシュプ
ログラムメモリ6はノードN#A,G/C0をキーコードとし
て、対応するプログラムデータをアクセスする。たとえ
ば、対応するプログラムデータとしてノードN#3,TAG
+Lがフェッチされる。
このプログラムデータは、第2図に示すプログラムのノ
ードにおける加算の左側入力を与えることを示してい
る。このとき、ノードにおけるnop命令を処理するた
めに同じデータ0が与えられるので、N#A,G/C0のキー
コードに対して、予めコピーフラグがキャッシュプログ
ラムメモリ6内で設定されている。そして、キャッシュ
プログラムメモリ6によってN#A,G/C0のキーコードに
対して、nopの命令を示すN#8,TAGnopが続けてフェッ
チされる。
ードにおける加算の左側入力を与えることを示してい
る。このとき、ノードにおけるnop命令を処理するた
めに同じデータ0が与えられるので、N#A,G/C0のキー
コードに対して、予めコピーフラグがキャッシュプログ
ラムメモリ6内で設定されている。そして、キャッシュ
プログラムメモリ6によってN#A,G/C0のキーコードに
対して、nopの命令を示すN#8,TAGnopが続けてフェッ
チされる。
キャッシュプログラムメモリ6はフェッチされたN#3,
TAG+Lというプログラムデータに対して、入力データ
パケットに含まれるG/C0とデータ0を付加するととも
に、データが正常にフェッチされたことを示すフラグ0
を付加する。なお、ミスヒットしたときにはフラグ1が
付加される。対データ検出部7はこのプログラムデータ
に対して対となるプログラムデータが既にフェッチされ
ているか否かを判別する。すなわち、第2図に示すノー
ドにおける右側のデータがフェッチされている否かを
判別する。今、ノードにおける右側のデータは未だフ
ェッチされていないので、対データ検出部7はこのプロ
グラムデータを待機させる。
TAG+Lというプログラムデータに対して、入力データ
パケットに含まれるG/C0とデータ0を付加するととも
に、データが正常にフェッチされたことを示すフラグ0
を付加する。なお、ミスヒットしたときにはフラグ1が
付加される。対データ検出部7はこのプログラムデータ
に対して対となるプログラムデータが既にフェッチされ
ているか否かを判別する。すなわち、第2図に示すノー
ドにおける右側のデータがフェッチされている否かを
判別する。今、ノードにおける右側のデータは未だフ
ェッチされていないので、対データ検出部7はこのプロ
グラムデータを待機させる。
一方、ノードにおけるnop命令のためのプログラムデ
ータは、対となるべきプログラムデータを必要としない
ので、キャッシュプログラムメモリ6はフェッチされた
N#8,TAGnopに対して、入力データパケットに含まれる
G/C0,データ0を付加するとともに正常にフェッチされ
たことを示すフラグ0を付加して出力する。また、キャ
ッシュプログラムメモリ6からプログラムデータがフェ
ッチされたことにより、接点8が閉じられる。したがっ
て、nop命令のためのプログラムデータはALU9と外部プ
ログラムメモリ2とに与えられる。
ータは、対となるべきプログラムデータを必要としない
ので、キャッシュプログラムメモリ6はフェッチされた
N#8,TAGnopに対して、入力データパケットに含まれる
G/C0,データ0を付加するとともに正常にフェッチされ
たことを示すフラグ0を付加して出力する。また、キャ
ッシュプログラムメモリ6からプログラムデータがフェ
ッチされたことにより、接点8が閉じられる。したがっ
て、nop命令のためのプログラムデータはALU9と外部プ
ログラムメモリ2とに与えられる。
このとき、情報処理装置1には、次の入力データパケッ
トが与えられたものとする。すなわち、第2図に示すノ
ードBにおける処理を次に行なうためのプログラムデー
タとして、データ1,TAGソース,G/C0,N#Bが分岐結合部
3,5を介してキャッシュプログラムメモリ6に与えられ
る。このプログラムデータは、前述の第3図で説明した
N#Aとほぼ同じであり、ノードでデータ1のnop命
令を実行し、ノードにおいて、データ1をノードDか
ら与えられかつノードでnop命令が実行されたデータ
と加算することになる。
トが与えられたものとする。すなわち、第2図に示すノ
ードBにおける処理を次に行なうためのプログラムデー
タとして、データ1,TAGソース,G/C0,N#Bが分岐結合部
3,5を介してキャッシュプログラムメモリ6に与えられ
る。このプログラムデータは、前述の第3図で説明した
N#Aとほぼ同じであり、ノードでデータ1のnop命
令を実行し、ノードにおいて、データ1をノードDか
ら与えられかつノードでnop命令が実行されたデータ
と加算することになる。
このために、前述の第3図の説明と同様にして、キャッ
シュプログラムメモリ6はN#B,G/C0を該メモリの物理
アドレスおよびキーコードとして、対応するプログラム
データN#4,TAG+Lをフェッチする。このプログラム
データは、第2図に示すプログラムのノードにおける
加算の左側入力を与えるデータである。ノードにおけ
るnop命令を処理するために同じプログラムデータ1が
与えられるので、キャッシュプログラムメモリ6には、
N#B,G/C0のキーコードに対してコピーフラグが予め設
定されている。
シュプログラムメモリ6はN#B,G/C0を該メモリの物理
アドレスおよびキーコードとして、対応するプログラム
データN#4,TAG+Lをフェッチする。このプログラム
データは、第2図に示すプログラムのノードにおける
加算の左側入力を与えるデータである。ノードにおけ
るnop命令を処理するために同じプログラムデータ1が
与えられるので、キャッシュプログラムメモリ6には、
N#B,G/C0のキーコードに対してコピーフラグが予め設
定されている。
したがって、同じN#B,G/C0をキーコードとする次のno
pの命令を示すN#9,TAGnopのプログラムデータが続け
てフェッチされる。さらに、キャッシュプログラムメモ
リ6でフェッチされたN#4,TAG+Lというプログラム
データに対して、入力データパケットに含まれるG/C0と
データ1と正常にフェッチされたことを示すフラグ0が
付加される。そして、対データ検出部7は、そのプログ
ラムデータに対して、対となるプログラムデータが既に
フェッチされているか否かを判別する。すなわち、第2
図に示すノードにおける右側のデータがフェッチされ
ているか否かを判別するが、未だフェッチされていない
ので、このプログラムデータを待機させる。
pの命令を示すN#9,TAGnopのプログラムデータが続け
てフェッチされる。さらに、キャッシュプログラムメモ
リ6でフェッチされたN#4,TAG+Lというプログラム
データに対して、入力データパケットに含まれるG/C0と
データ1と正常にフェッチされたことを示すフラグ0が
付加される。そして、対データ検出部7は、そのプログ
ラムデータに対して、対となるプログラムデータが既に
フェッチされているか否かを判別する。すなわち、第2
図に示すノードにおける右側のデータがフェッチされ
ているか否かを判別するが、未だフェッチされていない
ので、このプログラムデータを待機させる。
一方、前述の入力データパケットがキャッシュプログラ
ムメモリ6に入力されている間に、外部プログラムメモ
リ2は第3図に示すように、対データ検出部7から与え
られたnop命令のためのプログラムデータに含まれるN
#8,G/C0の組合わせで決まるキーコードに対応するアド
レスから次の命令を読出す。すなわち、ノードでnop
命令の処理が行なわれたデータをノードN#xに出力す
るために、N#8,G/C0,N#x,TAGシンクをキャッシュプ
ログラムメモリ6に出力する。
ムメモリ6に入力されている間に、外部プログラムメモ
リ2は第3図に示すように、対データ検出部7から与え
られたnop命令のためのプログラムデータに含まれるN
#8,G/C0の組合わせで決まるキーコードに対応するアド
レスから次の命令を読出す。すなわち、ノードでnop
命令の処理が行なわれたデータをノードN#xに出力す
るために、N#8,G/C0,N#x,TAGシンクをキャッシュプ
ログラムメモリ6に出力する。
また、ALU9にはnop命令のためのデータが与えられる
が、nop命令は何ら演算を行なわないことを示す命令で
あるため、このプログラムデータをそのまま出力する。
nop命令のプログラムデータは分岐結合部10,バッファ1
1,分岐結合部5を介してキャッシュプログラムメモリ6
に与えられる。
が、nop命令は何ら演算を行なわないことを示す命令で
あるため、このプログラムデータをそのまま出力する。
nop命令のプログラムデータは分岐結合部10,バッファ1
1,分岐結合部5を介してキャッシュプログラムメモリ6
に与えられる。
キャッシュプログラムメモリ6には、外部プログラムメ
モリ2から読出されたプログラムデータが、バッファ11
を介して遅延が加えられたプログラムデータのフェッチ
よりも先に入力される。したがって、キャッシュプログ
ラムメモリ6は、、そのプログラムデータに含まれるN
#8,G/C0のキーコードに対応するプログラムデータとし
て、第5図に示すように、N#x,TAGシンクをフェッチ
することができ、続いてバッファ11を介して与えられる
プログラムデータに含まれるN#9,G/C0のキーコードに
対応するプログラムデータであるN#y,TAGシンクをフ
ェッチすることができる。
モリ2から読出されたプログラムデータが、バッファ11
を介して遅延が加えられたプログラムデータのフェッチ
よりも先に入力される。したがって、キャッシュプログ
ラムメモリ6は、、そのプログラムデータに含まれるN
#8,G/C0のキーコードに対応するプログラムデータとし
て、第5図に示すように、N#x,TAGシンクをフェッチ
することができ、続いてバッファ11を介して与えられる
プログラムデータに含まれるN#9,G/C0のキーコードに
対応するプログラムデータであるN#y,TAGシンクをフ
ェッチすることができる。
次に、情報処理装置1には、ノードDのプログラムデー
タとして、第5図に示すように、データ3,TAGソース,G/
C0,N#Dが与えられる。すなわち、ノードDのプログラ
ムデータは、第2図に示すように、ノードでnop命令
を実行し、ノードでinc(インクリメント)命令を実
行するものである。このために、キャッシュプログラム
メモリ6はこのプログラムデータに含まれるN#D,G/C0
をキーコードとして、プログラムN#1,nopをフェッチ
し、同じキーコードN#D,G/C0に対してコピー処理を行
なって、対応するプログラムデータN#2,incをフェッ
チする。すなわち、キャッシュプログラムメモリ6は、
キーコードN#2,TAGincに、入力データパケットに含ま
れるG/C0とデータ0とフラグ0を付加して対データ検出
部7に出力する。
タとして、第5図に示すように、データ3,TAGソース,G/
C0,N#Dが与えられる。すなわち、ノードDのプログラ
ムデータは、第2図に示すように、ノードでnop命令
を実行し、ノードでinc(インクリメント)命令を実
行するものである。このために、キャッシュプログラム
メモリ6はこのプログラムデータに含まれるN#D,G/C0
をキーコードとして、プログラムN#1,nopをフェッチ
し、同じキーコードN#D,G/C0に対してコピー処理を行
なって、対応するプログラムデータN#2,incをフェッ
チする。すなわち、キャッシュプログラムメモリ6は、
キーコードN#2,TAGincに、入力データパケットに含ま
れるG/C0とデータ0とフラグ0を付加して対データ検出
部7に出力する。
これらの処理を実行している間において、外部プログラ
ムメモリ2からはキーコードN#9,G/C0に対応するプロ
グラムN#9,G/C0,N#y,TAGシンクが読出されてキャッ
シュプログラムメモリ6に与えられる。このプログラム
データは、第2図に示すノードでnop命令が処理され
たデータをノードyに出力することを示している。
ムメモリ2からはキーコードN#9,G/C0に対応するプロ
グラムN#9,G/C0,N#y,TAGシンクが読出されてキャッ
シュプログラムメモリ6に与えられる。このプログラム
データは、第2図に示すノードでnop命令が処理され
たデータをノードyに出力することを示している。
また、ALU9は第5図に示すN#1,G/C0,TAGnop,Lデータ
3,フラグ0のプログラムデータがnop命令であるため、
被処理データを素通りさせ、分岐結合部10,バッファ11,
分岐結合部10を介してキャッシュプログラムメモリ6に
与える。キャッシュプログラムメモリ6は、第6図に示
すようにそのプログラムデータのN#1,G/C0をキーコー
ドとして、N#3,TAG+Rをフェッチする。そして、キ
ャッシュプログラムメモリ6は、N#3,G/C0,TRG+R,デ
ータ3,フラグ0からなるプログラムデータを対データ検
出部7に与える。
3,フラグ0のプログラムデータがnop命令であるため、
被処理データを素通りさせ、分岐結合部10,バッファ11,
分岐結合部10を介してキャッシュプログラムメモリ6に
与える。キャッシュプログラムメモリ6は、第6図に示
すようにそのプログラムデータのN#1,G/C0をキーコー
ドとして、N#3,TAG+Rをフェッチする。そして、キ
ャッシュプログラムメモリ6は、N#3,G/C0,TRG+R,デ
ータ3,フラグ0からなるプログラムデータを対データ検
出部7に与える。
このような命令フェッチが可能となるのは外部プログラ
ムメモリ2が第5図に示すN#1,G/C0,TAGnop,Lデータ
3,フラグ0からなるプログラムデータのキーコードN#
1,G/C0に基づいて、対応する2組のプログラムデータ,G
/C0,N#3,TAG+R,N#4,TAG+Rを連続して読出し、これ
らの命令がフェッチされるよりも以前にキャッシュプロ
グラムメモリ6に与えられるからである。それゆえに、
キャッシュプログラムメモリ6はそのプログラムデータ
のN#1,G/C0をキーコードとして、N#4,TAG+Rのデ
ータをもフェッチし、N#4,G/C0,TAG+R,データ3のプ
ログラムデータを対データ検出部7に与える。
ムメモリ2が第5図に示すN#1,G/C0,TAGnop,Lデータ
3,フラグ0からなるプログラムデータのキーコードN#
1,G/C0に基づいて、対応する2組のプログラムデータ,G
/C0,N#3,TAG+R,N#4,TAG+Rを連続して読出し、これ
らの命令がフェッチされるよりも以前にキャッシュプロ
グラムメモリ6に与えられるからである。それゆえに、
キャッシュプログラムメモリ6はそのプログラムデータ
のN#1,G/C0をキーコードとして、N#4,TAG+Rのデ
ータをもフェッチし、N#4,G/C0,TAG+R,データ3のプ
ログラムデータを対データ検出部7に与える。
すなわち、対データ検出部7には、第2図に示したノー
ドの左側の被処理データと、ノードの右側の被処理
データが与えられたことになる。前述の第3図で説明し
たように、ノードの左側のプログラムデータおよび被
処理データは既に対データ検出部7に与えられており、
また、前述の第4図で説明したように、ノードの左側
のプログラムデータおよび被処理データが既に対データ
検出部7に与えられている。したがって、対データ検出
部7はノードの2つの被処理データおよびノードの
2つの被処理データが揃ったことを検出し、第7図に示
すように、まずN#3,G/C0,TAG+,Lデータ0,Rデータ3,
フラグ0のプログラムデータをALU9に与える。応じて、
ALU9はノードにおける加算のための演算処理を実行す
る。さらに、対データ検出部7はN#4,G/C0,TAG+,Lデ
ータ1,Rデータ3のプログラムデータをALU9に与え、ノ
ードにおける演算処理を実行させる。
ドの左側の被処理データと、ノードの右側の被処理
データが与えられたことになる。前述の第3図で説明し
たように、ノードの左側のプログラムデータおよび被
処理データは既に対データ検出部7に与えられており、
また、前述の第4図で説明したように、ノードの左側
のプログラムデータおよび被処理データが既に対データ
検出部7に与えられている。したがって、対データ検出
部7はノードの2つの被処理データおよびノードの
2つの被処理データが揃ったことを検出し、第7図に示
すように、まずN#3,G/C0,TAG+,Lデータ0,Rデータ3,
フラグ0のプログラムデータをALU9に与える。応じて、
ALU9はノードにおける加算のための演算処理を実行す
る。さらに、対データ検出部7はN#4,G/C0,TAG+,Lデ
ータ1,Rデータ3のプログラムデータをALU9に与え、ノ
ードにおける演算処理を実行させる。
前述のごとく、ALU9はノード,の演算処理を行なっ
た後、第2図に示すように、ノード,でisel命令を
実行する。このisel命令は、整数タイプの読出命令であ
る。
た後、第2図に示すように、ノード,でisel命令を
実行する。このisel命令は、整数タイプの読出命令であ
る。
次に、isel命令を実行するときに、キャッシュプログラ
ムメモリ6でハッシュ衝突が生じた場合の動作について
説明する。この実施例では、N#とG/Cとを組合わせて
プログラムデータをフェッチするためのキーコードとし
た。この場合、N#5とN#6は4ビットのコードで表
わせば、“0101",“0110"となり、それぞれを識別する
ことは可能である。しかしながら、たとえば上位2ビッ
トをキーコードとし、下位2ビットを物理アドレスとし
て見た場合、ともに“01"であるため同じになる。すな
わち、上位2ビットをキーコードとして用いた場合に
は、N#5,N#6を識別することはできない。このため
に、第2図に示すノードでisel命令を実行した後、ノ
ードのisel命令を実行すると、ALU9は次のような処理
を実行する。
ムメモリ6でハッシュ衝突が生じた場合の動作について
説明する。この実施例では、N#とG/Cとを組合わせて
プログラムデータをフェッチするためのキーコードとし
た。この場合、N#5とN#6は4ビットのコードで表
わせば、“0101",“0110"となり、それぞれを識別する
ことは可能である。しかしながら、たとえば上位2ビッ
トをキーコードとし、下位2ビットを物理アドレスとし
て見た場合、ともに“01"であるため同じになる。すな
わち、上位2ビットをキーコードとして用いた場合に
は、N#5,N#6を識別することはできない。このため
に、第2図に示すノードでisel命令を実行した後、ノ
ードのisel命令を実行すると、ALU9は次のような処理
を実行する。
すなわち、ALU9はノードの演算を実行すると、第8図
に示すように、バッファ11にN#5,G/C0,TAG★,データ
3の演算結果を出力する。キャッシュプログラムメモリ
6はN#5,G/C0のキーコードに対応して、N#7,TAG*
Rのデータをフェッチする。一方、ALU9はノードでis
elの演算処理を実行した後、ノードでiselの演算処理
を実行し、その演算結果であるN#6,G/C0,TAG★,デー
タ4をバッファ11に出力する。
に示すように、バッファ11にN#5,G/C0,TAG★,データ
3の演算結果を出力する。キャッシュプログラムメモリ
6はN#5,G/C0のキーコードに対応して、N#7,TAG*
Rのデータをフェッチする。一方、ALU9はノードでis
elの演算処理を実行した後、ノードでiselの演算処理
を実行し、その演算結果であるN#6,G/C0,TAG★,デー
タ4をバッファ11に出力する。
ところで、キャッシュプログラムメモリ6は、まず最初
の演算結果のN#5,G/C0をキーコードとして、対応する
プログラムデータをフェッチしようとするが、前述のご
とく、キャッシュメモリではN#5とN#6との識別が
できないためにもともとN#5,G/C0のキーコードとして
外部プログラムメモリ2より与えられたプログラムデー
タの上にN#6,G/C0をキーコードとして外部プログラム
メモリ2より与えられた次のプログラムデータが書込れ
ており、キャッシュプログラムメモリ6はN#5,G/C0を
キーコードに対応する正常なデータをフェッチできず、
ミスヒットを生じる。このような場合であっても、正常
に動作させる必要がある。
の演算結果のN#5,G/C0をキーコードとして、対応する
プログラムデータをフェッチしようとするが、前述のご
とく、キャッシュメモリではN#5とN#6との識別が
できないためにもともとN#5,G/C0のキーコードとして
外部プログラムメモリ2より与えられたプログラムデー
タの上にN#6,G/C0をキーコードとして外部プログラム
メモリ2より与えられた次のプログラムデータが書込れ
ており、キャッシュプログラムメモリ6はN#5,G/C0を
キーコードに対応する正常なデータをフェッチできず、
ミスヒットを生じる。このような場合であっても、正常
に動作させる必要がある。
そこで、この実施例では、キャッシュプログラムメモリ
6はミスヒットを生じた場合に、ハッシュ衝突の生じた
ことを示すために、第9図に示すようにプログラムデー
タにミスヒットフラグ3を立てる。対データ検出部7は
プログラムデータにミスヒットフラグが立っている場合
には、接点8を閉じない。このため、対データ検出部7
から出力されたプログラムデータは外部プログラムメモ
リ2にのみ与えられ、ALU9には与えられない。
6はミスヒットを生じた場合に、ハッシュ衝突の生じた
ことを示すために、第9図に示すようにプログラムデー
タにミスヒットフラグ3を立てる。対データ検出部7は
プログラムデータにミスヒットフラグが立っている場合
には、接点8を閉じない。このため、対データ検出部7
から出力されたプログラムデータは外部プログラムメモ
リ2にのみ与えられ、ALU9には与えられない。
外部プログラムメモリ2は第9図に示すように、対デー
タ検出部7から与えられたプログラムデータのキーコー
ドN#5,G/C0に基づいて、第10図に示すように、ノード
の命令を実行するためのプログラムデータN#7,G/C
0,TAG*7を読出すばかりでなく、演算しようするデー
タ3,フラグ3も読出す。
タ検出部7から与えられたプログラムデータのキーコー
ドN#5,G/C0に基づいて、第10図に示すように、ノード
の命令を実行するためのプログラムデータN#7,G/C
0,TAG*7を読出すばかりでなく、演算しようするデー
タ3,フラグ3も読出す。
すなわち、この実施例では、キャッシュプログラムメモ
リ6でミスヒットした場合、外部プログラムメモリ2を
直接アクセスして、次の命令とともにデータもキャッシ
ュプログラムメモリ6に与えることを特徴としている。
リ6でミスヒットした場合、外部プログラムメモリ2を
直接アクセスして、次の命令とともにデータもキャッシ
ュプログラムメモリ6に与えることを特徴としている。
外部プログラムメモリ2から読出されたノードのプロ
グラムデータはキャッシュプログラムメモリ6に与えら
れるが、このプログラムデータにはデータも付加されて
いるので、ミスヒットフラグに従ってキャッシュプログ
ラムメモリ6を素通りし、対データ検出部7に与えられ
る。対データ検出部7はそのプログラムデータと対とな
るべきデータが入力されるまで待機する。外部プログラ
ムメモリ2はノードのプログラムデータを直接読出し
た後、第10図に示すようにノードのプログラムデータ
N#6,G/C0,TAGR,フラグ0がキャッシュプログラムメモ
リ6に入力される。
グラムデータはキャッシュプログラムメモリ6に与えら
れるが、このプログラムデータにはデータも付加されて
いるので、ミスヒットフラグに従ってキャッシュプログ
ラムメモリ6を素通りし、対データ検出部7に与えられ
る。対データ検出部7はそのプログラムデータと対とな
るべきデータが入力されるまで待機する。外部プログラ
ムメモリ2はノードのプログラムデータを直接読出し
た後、第10図に示すようにノードのプログラムデータ
N#6,G/C0,TAGR,フラグ0がキャッシュプログラムメモ
リ6に入力される。
キャッシュプログラムメモリ6はN#6,G/C0をキーコー
ドとして、N#7,TAG*Rのプログラムデータをフェッ
チする。このプログラムデータは対データ検出部7に与
えられる。対データ検出部7はノードにおける演算を
実行するのに必要な2つのデータが揃ったことを検出
し、再び接点8を閉じ、その2つのプログラムデータを
ALU9に与え、演算処理を実行する。
ドとして、N#7,TAG*Rのプログラムデータをフェッ
チする。このプログラムデータは対データ検出部7に与
えられる。対データ検出部7はノードにおける演算を
実行するのに必要な2つのデータが揃ったことを検出
し、再び接点8を閉じ、その2つのプログラムデータを
ALU9に与え、演算処理を実行する。
以下、同様の動作を行ない、ノードの演算結果とノー
ドCで入力されるプログラムデータに基づいて、ノード
における加算のための演算処理が行なわれ、ノードu
に出力される。
ドCで入力されるプログラムデータに基づいて、ノード
における加算のための演算処理が行なわれ、ノードu
に出力される。
上述のごとく、この発明の一実施例によれば、キャッシ
ュプログラムメモリ6で命令フェッチのミスヒットが生
じた場合には、接点8を開いて、内部プログラムメモリ
2から命令のプログラムデータを読出すとともに、デー
タをもあわせてキャッシュプログラムメモリ6に与える
ようにしたので、ハッシュ衝突が生じても正常な動作を
実行することができる。
ュプログラムメモリ6で命令フェッチのミスヒットが生
じた場合には、接点8を開いて、内部プログラムメモリ
2から命令のプログラムデータを読出すとともに、デー
タをもあわせてキャッシュプログラムメモリ6に与える
ようにしたので、ハッシュ衝突が生じても正常な動作を
実行することができる。
[発明の効果] 以上のように、この発明によれば、必要な命令に対し
て、フェッチされるとともに、プログラム記憶手段へア
ップロードされて確実にフェッチされ、ミスヒットした
場合には、直接外部プログラム記憶手段をアクセスする
ことにより、命令とともにデータも読出すようにしたの
で、極めて良好な効率で命令のフェッチを実行すること
が可能となる。
て、フェッチされるとともに、プログラム記憶手段へア
ップロードされて確実にフェッチされ、ミスヒットした
場合には、直接外部プログラム記憶手段をアクセスする
ことにより、命令とともにデータも読出すようにしたの
で、極めて良好な効率で命令のフェッチを実行すること
が可能となる。
第1図はこの発明の一実施例の概略ブロック図である。
第2図は第1図に示した情報処理装置によって処理され
るプログラムの一例を示す図である。第3図ないし第10
図は第2図に示したプログラムを実行するための手順を
説明するための図である。 図において、1は情報処理装置、2は外部プログラムメ
モリ、3,4,5,10は分岐結合部、6はキャッシュプログラ
ムメモリ、7は対データ検出部、8は接点、9はALU、1
1はバッファを示す。
第2図は第1図に示した情報処理装置によって処理され
るプログラムの一例を示す図である。第3図ないし第10
図は第2図に示したプログラムを実行するための手順を
説明するための図である。 図において、1は情報処理装置、2は外部プログラムメ
モリ、3,4,5,10は分岐結合部、6はキャッシュプログラ
ムメモリ、7は対データ検出部、8は接点、9はALU、1
1はバッファを示す。
Claims (1)
- 【請求項1】データフロープログラムを記憶するプログ
ラム記憶手段と、前記プログラム記憶手段から対となる
プログラムデータおよび被処理データが入力されたこと
を判別する対データ検出手段と、前記対データ検出手段
によって対となるプログラムデータおよび被処理データ
が検出されたことに応じて、そのプログラムデータおよ
び被処理データに基づく演算を実行する演算処理手段
と、前記プログラム記憶手段にプログラムデータを与え
る外部プログラム記憶手段とを備えた情報処理装置にお
いて、前記プログラム記憶手段をアクセスするプログラ
ム実行制御方式であって、 前記対データ検出手段によって前記プログラム記憶手段
から対となるプログラムデータおよび被処理データの読
出されたことが判別されたことに応じて、前記外部プロ
グラム記憶手段のアクセスを実行するとともに、前記演
算処理手段に処理すべきプログラムデータおよび被処理
データを送出し、前記演算処理手段の演算処理結果デー
タに対する次の命令を前記プログラム記憶手段に対して
フェッチし、該命令フェッチがミスヒットした場合、前
記外部記憶手段に対して直接前記次の命令を被処理デー
タとともにアクセスするようにしたことを特徴とする、
プログラム実行制御方式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63013280A JPH0695349B2 (ja) | 1988-01-22 | 1988-01-22 | プログラム実行制御方式 |
| US07/299,772 US5117499A (en) | 1988-01-22 | 1989-01-19 | Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63013280A JPH0695349B2 (ja) | 1988-01-22 | 1988-01-22 | プログラム実行制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01188941A JPH01188941A (ja) | 1989-07-28 |
| JPH0695349B2 true JPH0695349B2 (ja) | 1994-11-24 |
Family
ID=11828788
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63013280A Expired - Fee Related JPH0695349B2 (ja) | 1988-01-22 | 1988-01-22 | プログラム実行制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0695349B2 (ja) |
-
1988
- 1988-01-22 JP JP63013280A patent/JPH0695349B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01188941A (ja) | 1989-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6028015B2 (ja) | 情報処理装置 | |
| US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
| US5819081A (en) | Method of executing a branch instruction of jumping to a subroutine in a pipeline control system | |
| JPH0695349B2 (ja) | プログラム実行制御方式 | |
| JPH03175548A (ja) | マイクロプロセッサ及びアドレス制御方式 | |
| JPH0326862B2 (ja) | ||
| JP2581565B2 (ja) | ガード付命令を実行するデータ処理装置 | |
| JPH04205448A (ja) | 情報処理装置 | |
| JPH046983B2 (ja) | ||
| JPH02127731A (ja) | 演算レジスタのバイパスチェック方式 | |
| JPH0740257B2 (ja) | メモリアクセス制御装置 | |
| JPH0259829A (ja) | マイクロコンピュータ | |
| JPH0248733A (ja) | 情報処理装置 | |
| JPH04246728A (ja) | 情報処理装置 | |
| JPH0279122A (ja) | 浮動小数点演算機構 | |
| JPH0514288B2 (ja) | ||
| JP2622026B2 (ja) | 中央処理装置におけるレジスタ書込制御方式 | |
| JP2902847B2 (ja) | 自己変更コード実行方式 | |
| JPH03119424A (ja) | 情報処理方式及び装置 | |
| JPH04213727A (ja) | 情報処理装置 | |
| JPH06124206A (ja) | 分岐命令予測処理装置及びその処理方法 | |
| JPH03269625A (ja) | データ処理装置 | |
| JPH024011B2 (ja) | ||
| JPH0335323A (ja) | 命令実行制御方式 | |
| JPH0477824A (ja) | 情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |