JPH0277839A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0277839A JPH0277839A JP22832488A JP22832488A JPH0277839A JP H0277839 A JPH0277839 A JP H0277839A JP 22832488 A JP22832488 A JP 22832488A JP 22832488 A JP22832488 A JP 22832488A JP H0277839 A JPH0277839 A JP H0277839A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- data processing
- path
- read
- 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
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データ処理装置に係り、特に、命令読み出し
の高速化を図ったスーパーコンピュータ等のデータ処理
装置に関する。
の高速化を図ったスーパーコンピュータ等のデータ処理
装置に関する。
近年、スーパーコンピュータにおいて命令の読み出しを
高速化する要請が強くなってきている。
高速化する要請が強くなってきている。
これは、
(1)より高速の演算を行おうとすると命令の読み出し
がネックとなる傾向が強くなること、(2)マシンサイ
クルを極端に短縮するとメモリ素子の性能がそれに追随
できず、命令の読み出しに長大なサイクルタイムが必要
になり、これがベクトル処理のスタートアップタイム増
大のように見 ′えること、等に対処しようと
するためである。
がネックとなる傾向が強くなること、(2)マシンサイ
クルを極端に短縮するとメモリ素子の性能がそれに追随
できず、命令の読み出しに長大なサイクルタイムが必要
になり、これがベクトル処理のスタートアップタイム増
大のように見 ′えること、等に対処しようと
するためである。
最近ではアーキテクチャ上の何らかの工夫により、命令
読み出しの時間を実質的に短縮させる方向で研究が進め
られている。
読み出しの時間を実質的に短縮させる方向で研究が進め
られている。
スーパーコンピュータは、科学技術計算を対象に高速の
演算を行うように創られた専用の計算機である。従って
、汎用計算機のいくつかの機能のうち使用する可能性が
ほとんどなく、高速の計算を行う上で障害になる機能は
省略してもよい。このような機能の中に、プログラム中
の命令の書き替えを許す機能がある。一般に、大型計算
機は、この機能をサポートすると、特に、先行制御を深
くした処理の高速化が困難になり、また命令の並列実行
を行う場合にも障害となる。
演算を行うように創られた専用の計算機である。従って
、汎用計算機のいくつかの機能のうち使用する可能性が
ほとんどなく、高速の計算を行う上で障害になる機能は
省略してもよい。このような機能の中に、プログラム中
の命令の書き替えを許す機能がある。一般に、大型計算
機は、この機能をサポートすると、特に、先行制御を深
くした処理の高速化が困難になり、また命令の並列実行
を行う場合にも障害となる。
このため、ある種のベクトル処理装置は、ベクトル処理
側のストア命令でスカラ処理部側の命令を書き替えた場
合、その結果を保証しないようにして前述の問題を回避
している。
側のストア命令でスカラ処理部側の命令を書き替えた場
合、その結果を保証しないようにして前述の問題を回避
している。
この種従来技術として、例えばHiTAC3−820処
理装置マニユアル6020−2−00IP、P、42等
に記述された技術が知られている。
理装置マニユアル6020−2−00IP、P、42等
に記述された技術が知られている。
しかし、前記従来技術は、なお、命令読み出しの時間を
多く必要とし、スーパーコンピュータ等の科学技術計算
を専用に行う高速のデータ処理装置のネックとなってい
るという問題点を有している。
多く必要とし、スーパーコンピュータ等の科学技術計算
を専用に行う高速のデータ処理装置のネックとなってい
るという問題点を有している。
本発明の目的は、前記従来技術の問題点を解決し、プロ
グラム中の命令書き替え時に結果を保証しない仕様をベ
クトル処理部だけでなくスカラ処理部にまで拡大し、こ
れによってデータ処理装置のアーキテクチャ、ハードウ
ェア構成をスーパーコンピュータ向きに変更して、命令
読み出し速度の向上、スタートアップタイムの短縮を図
ることを可能としたデータ処理装置を提供することにあ
る。
グラム中の命令書き替え時に結果を保証しない仕様をベ
クトル処理部だけでなくスカラ処理部にまで拡大し、こ
れによってデータ処理装置のアーキテクチャ、ハードウ
ェア構成をスーパーコンピュータ向きに変更して、命令
読み出し速度の向上、スタートアップタイムの短縮を図
ることを可能としたデータ処理装置を提供することにあ
る。
本発明によれば、前記目的は、次のような構造の命令バ
ッファと、命令バッファを制御する論理機構を備えるこ
とにより達成される。
ッファと、命令バッファを制御する論理機構を備えるこ
とにより達成される。
途]フ<771−
(1)命令アドレスを論理アドレスとするとき、アドレ
ス変換なしで引用できる命令バッファ。
ス変換なしで引用できる命令バッファ。
(2)命令によって命令バッファの内容を制御できる第
2の命令バッファ(以下Controlable I
n−5truction buffer、略してCバ
ッファという)。
2の命令バッファ(以下Controlable I
n−5truction buffer、略してCバ
ッファという)。
バッファ ′ る量ム
(1)命令読み出し要求が命令リクエスタから発行され
たとき、命令アドレスが命令バッファ、Cバッファに在
るか否かを調べる論理回路。
たとき、命令アドレスが命令バッファ、Cバッファに在
るか否かを調べる論理回路。
(2)命令読み出し要求が命令リクエスタから発行され
た時点で命令アドレスが命令バッファ、Cバッファにエ
ントリされていないとき、主記憶部へ命令アドレスから
n命令骨の(n≧1)命令読み出し要求を発行する論理
回路。
た時点で命令アドレスが命令バッファ、Cバッファにエ
ントリされていないとき、主記憶部へ命令アドレスから
n命令骨の(n≧1)命令読み出し要求を発行する論理
回路。
(3)命令バッファ、Cバッファの内容をキャンセルす
る論理回路。
る論理回路。
(4)主記憶からCバッファへ命令で指定された語長だ
けデータを転送する論理回路。
けデータを転送する論理回路。
(5)命令読み出し要求が命令リクエスタから発行され
た時点で、命令アドレスが命令バッファにエントリされ
てなく、Cバッファにエントリされている場合、Cバッ
ファからn命令骨の命令を命令バッファに転送する論理
回路。
た時点で、命令アドレスが命令バッファにエントリされ
てなく、Cバッファにエントリされている場合、Cバッ
ファからn命令骨の命令を命令バッファに転送する論理
回路。
(6)主記憶からCバッファへデータを転送する処理の
起動を行い、次のサイクルで前記転送完了を待つことな
く、後続の命令を実行する命令解読/実行論理回路。
起動を行い、次のサイクルで前記転送完了を待つことな
く、後続の命令を実行する命令解読/実行論理回路。
(7)主記憶からCバッファへデータを転送する途中で
後続の命令が、そのデータ転送範囲に含まれているとき
、後続の命令の実行を中断させ、かつ転送データをCバ
ッファと命令バッファに書込み、かつ前記後続命令の実
行を再開させる論理回路。
後続の命令が、そのデータ転送範囲に含まれているとき
、後続の命令の実行を中断させ、かつ転送データをCバ
ッファと命令バッファに書込み、かつ前記後続命令の実
行を再開させる論理回路。
(8)命令読み出し要求が命令バッファにエントリされ
ていないとき、命令実行を中断させる論理回路。
ていないとき、命令実行を中断させる論理回路。
(9)読み出された命令が命令バッファに書込まれたと
き、命令実行を再開させる論理回路。
き、命令実行を再開させる論理回路。
(10) Cバッファを複数の部分に分け、各部分対応
にフリップフロップを設け、Cバッファの読み出しがあ
った時点で該フリップフロップを“1 ”にセットし、
インタバルタイマがある決ったタイミングで出力する信
号毎に該フリップフロップを“0°°にリセットする論
理部。
にフリップフロップを設け、Cバッファの読み出しがあ
った時点で該フリップフロップを“1 ”にセットし、
インタバルタイマがある決ったタイミングで出力する信
号毎に該フリップフロップを“0°°にリセットする論
理部。
(11)主記憶からCバッファへデータを転送する際、
Cバッファの書き込みカラムを決定し、該カラムにセッ
トされる命令の先頭論理アドレスを保持する記憶部を有
する論理回路。
Cバッファの書き込みカラムを決定し、該カラムにセッ
トされる命令の先頭論理アドレスを保持する記憶部を有
する論理回路。
(12)主記憶から命令バッファに命令列を転送する際
、命令バッファのどのカラムに命令列を格納するかを決
定する論理回路。
、命令バッファのどのカラムに命令列を格納するかを決
定する論理回路。
〔作用]
バッファ記憶を具備するデータ処理装置は、バッファ記
憶を出来るだけ有効に使えるように、バッファ記憶上の
リプレースアルゴリズムが工夫されている。
憶を出来るだけ有効に使えるように、バッファ記憶上の
リプレースアルゴリズムが工夫されている。
命令読み出し専用に命令バッファとCバッファを具備す
る本発明のデータ処理装置は、2つのバッファの制御に
命令読み出し要求の特性を利用し効率的なバッファリン
グが可能である。
る本発明のデータ処理装置は、2つのバッファの制御に
命令読み出し要求の特性を利用し効率的なバッファリン
グが可能である。
プログラムの実行を解析すると、
(1)プログラム文の記述順序に従って順序だって命令
を主記憶から読み出すケースと、 (2)ループによって代表される同じ命令列をデータを
変えてくりかえし実行するケースと、(3)分岐によっ
て代表される全く別の命令アドレスに命令続出要求を行
うケースとに分類することができる。
を主記憶から読み出すケースと、 (2)ループによって代表される同じ命令列をデータを
変えてくりかえし実行するケースと、(3)分岐によっ
て代表される全く別の命令アドレスに命令続出要求を行
うケースとに分類することができる。
前記ケース(1)では、1回の命令読出でn個(n≧1
)の命令を主記憶から読み出し、命令バッファに保持し
ておくことにより、命令読み出しの高速化を行うことが
可能である。また、命令バッファのリプレースアルゴリ
ズムも命令読み出しの順序性を利用して単純化すること
が可能である。
)の命令を主記憶から読み出し、命令バッファに保持し
ておくことにより、命令読み出しの高速化を行うことが
可能である。また、命令バッファのリプレースアルゴリ
ズムも命令読み出しの順序性を利用して単純化すること
が可能である。
前記ケース(2)では、命令バッファの代りにCバッフ
ァを利用し、命令列の繰返し実行時にCバッファから命
令を読み出す。即ち、主記憶から命令読み出しを行うよ
り高速に処理することが可能である。Cバッファは、命
令によってバッファへの書き込が行われるので、命令を
頻発させない限り前にバッファ上にエントリした命令列
を保持している。このため、Cバッファは、ループや分
岐履歴のあるケース(3)の一部の場合でも有効に作用
する。またプログラムの全体でよく使用する関数、サブ
ルーチン等をCバッファに常駐させることにより主記憶
へのアクセス頻度を減少させ、処理を高速化することも
可能である。
ァを利用し、命令列の繰返し実行時にCバッファから命
令を読み出す。即ち、主記憶から命令読み出しを行うよ
り高速に処理することが可能である。Cバッファは、命
令によってバッファへの書き込が行われるので、命令を
頻発させない限り前にバッファ上にエントリした命令列
を保持している。このため、Cバッファは、ループや分
岐履歴のあるケース(3)の一部の場合でも有効に作用
する。またプログラムの全体でよく使用する関数、サブ
ルーチン等をCバッファに常駐させることにより主記憶
へのアクセス頻度を減少させ、処理を高速化することも
可能である。
プログラム実行時、前述した、命令バッファを制御する
論理部は次のように作動する。
論理部は次のように作動する。
命令読み出し要求が処理装置内で発生すると、命令バッ
ファとCバッファに命令アドレスがエントリされていな
いか否かが調べられる。両方のバッファに命令アドレス
がエントリされていない場合、主記憶へ命令読み出し要
求が発行され命令実行は中断される。主記憶から命令列
が読み出され命令バッファに書き込まれると、命令バッ
ファから命令をとり出す動作が開始され、命令実行が再
開される。命令バッファに命令アドレスがエントリされ
てなく、Cバッファに命令アドレスがエントリされてい
る場合、Cバッファから命令バッファに命令列が転送さ
れた後命令実行が再開される。
ファとCバッファに命令アドレスがエントリされていな
いか否かが調べられる。両方のバッファに命令アドレス
がエントリされていない場合、主記憶へ命令読み出し要
求が発行され命令実行は中断される。主記憶から命令列
が読み出され命令バッファに書き込まれると、命令バッ
ファから命令をとり出す動作が開始され、命令実行が再
開される。命令バッファに命令アドレスがエントリされ
てなく、Cバッファに命令アドレスがエントリされてい
る場合、Cバッファから命令バッファに命令列が転送さ
れた後命令実行が再開される。
以上が一般的な命令実行方式である。
プログラムの中でCバッファへのデータ転送を要求する
命令が発行されると、主記憶からCバッファへデータを
転送する動作が開始され、次のマシンサイクルで前記デ
ータ転送命令以外の命令が実行される。Cバッファへの
データ転送命令が連続すると命令実行動作はシリアライ
ズされる。ただし、主記憶からCバッファへのデータ転
送パスを複数設け、Cバッファをインタリーブ構成また
は多面化するような論理的な工夫をすれば、命令実行動
作を並列処理化することができる。しかし、本発明では
、この部分についてこれ以上詳しく説明しない。主記憶
からCバッファへのデータの転送が行われているとき、
命令バッファ内に存在しない命令の読み出し要求が発行
されて、かつ、Cバッファへのデータ転送内にこの命令
読み出し要求の命令が含まれている場合、Cバッファヘ
データを書き込むと同時に命令バッファにもこのデータ
を書き込むように制御される。
命令が発行されると、主記憶からCバッファへデータを
転送する動作が開始され、次のマシンサイクルで前記デ
ータ転送命令以外の命令が実行される。Cバッファへの
データ転送命令が連続すると命令実行動作はシリアライ
ズされる。ただし、主記憶からCバッファへのデータ転
送パスを複数設け、Cバッファをインタリーブ構成また
は多面化するような論理的な工夫をすれば、命令実行動
作を並列処理化することができる。しかし、本発明では
、この部分についてこれ以上詳しく説明しない。主記憶
からCバッファへのデータの転送が行われているとき、
命令バッファ内に存在しない命令の読み出し要求が発行
されて、かつ、Cバッファへのデータ転送内にこの命令
読み出し要求の命令が含まれている場合、Cバッファヘ
データを書き込むと同時に命令バッファにもこのデータ
を書き込むように制御される。
命令バッファ、Cバッファに格納された命令は、両バッ
ファに書き込むパスがないため、ストア系の命令によっ
ては書き替えられない。このためプログラム内の命令書
き替えに対して全く対処できなくなることを防止するた
め、命令バッファ、Cバッファの内容をキャンセルする
手段が設けられる。これによって、主記憶上で書き替え
られた命令列よりは、再度バッファに読み出されて実行
される。
ファに書き込むパスがないため、ストア系の命令によっ
ては書き替えられない。このためプログラム内の命令書
き替えに対して全く対処できなくなることを防止するた
め、命令バッファ、Cバッファの内容をキャンセルする
手段が設けられる。これによって、主記憶上で書き替え
られた命令列よりは、再度バッファに読み出されて実行
される。
本発明ではCバッファをうまく使用すれば性能の向上が
図れるが、仮に使用しなくてもプログラムは正常に動作
する。従って、旧オブジェクトプログラム等を実行する
場合も互換性の問題を生じることはない。
図れるが、仮に使用しなくてもプログラムは正常に動作
する。従って、旧オブジェクトプログラム等を実行する
場合も互換性の問題を生じることはない。
以下、本発明によるデータ処理装置の一実施例を図面に
より詳細に説明する。
より詳細に説明する。
説明を単純化し発明の本質的な点をわかり易く ′
するため、次のような制約条件を置いて説明を行うこと
とする。
するため、次のような制約条件を置いて説明を行うこと
とする。
(1)命令バッファ、Cバッファ、主記憶の論理的な関
係は、この順に命令処理部に近いものとする。
係は、この順に命令処理部に近いものとする。
命令バッファとCバッファを論理的に命令処理部と等価
な位置におくように構成してもよい。また、命令バッフ
ァとCバッファを同じバッファ記憶の部分として、両者
を区別するような識別フラグを設けて実現するように構
成してもよい。しかし、分岐が頻発するような場合の救
済策としてならば後者の方式が有効であるが、関数やサ
ブルーチン等もCバッファに取り込んで主記憶参照動作
を滅少させようとする場合には、Cバッファは、命令バ
ッファよりもかなり大きい容量を持つ必要がある。また
、命令バッファと性質の異るCバッファを論理的に等価
な距離に置くことは、両者を制御する方式が複雑になる
ので望ましくない。
な位置におくように構成してもよい。また、命令バッフ
ァとCバッファを同じバッファ記憶の部分として、両者
を区別するような識別フラグを設けて実現するように構
成してもよい。しかし、分岐が頻発するような場合の救
済策としてならば後者の方式が有効であるが、関数やサ
ブルーチン等もCバッファに取り込んで主記憶参照動作
を滅少させようとする場合には、Cバッファは、命令バ
ッファよりもかなり大きい容量を持つ必要がある。また
、命令バッファと性質の異るCバッファを論理的に等価
な距離に置くことは、両者を制御する方式が複雑になる
ので望ましくない。
(2)命令語長を1種類とし!バイl−CB)とする。
(3)命令バッファを複数のカラムで構成し、1カラム
に格納される命令数をn個とする。
に格納される命令数をn個とする。
(4)Cバッファを複数のカラムで構成し、1カラムに
格納される命令数をm−n個とする。
格納される命令数をm−n個とする。
(5)主記憶からCバッファへ転送されるデータの単位
をIt−m−n (B)とする。
をIt−m−n (B)とする。
(6)Cバッファから命令バッファに転送されるデータ
の単位をff1−n(B)とする。
の単位をff1−n(B)とする。
第1図は本発明によるデータ処理装置の一実施例の概略
を示すブロック図である。第1図において、1は主記憶
、2はCバッファ、3は命令バッファ、4は命令実行制
御部、5は命令実行部、6゜7は比較回路、8はリクエ
スタである。
を示すブロック図である。第1図において、1は主記憶
、2はCバッファ、3は命令バッファ、4は命令実行制
御部、5は命令実行部、6゜7は比較回路、8はリクエ
スタである。
まず、命令実行制御部4は、パス50.51上に命令読
み出し要求とアドレスを発行する。パス50上の要求は
、比較回路6に送られ、そこで命令バッファ3のエント
リアドレスと命令アドレスとが比較される。比較回路6
は、比較の結果命令バッファ3内に目的の命令が存在す
るならば、命令バッファ3からパス52を介してその命
令を命令実行制御部4に送出させる。命令バッファ3内
に目的の命令が存在しない場合は、パス53を通って主
記憶参照要求がリクエスタ8に発行される。
み出し要求とアドレスを発行する。パス50上の要求は
、比較回路6に送られ、そこで命令バッファ3のエント
リアドレスと命令アドレスとが比較される。比較回路6
は、比較の結果命令バッファ3内に目的の命令が存在す
るならば、命令バッファ3からパス52を介してその命
令を命令実行制御部4に送出させる。命令バッファ3内
に目的の命令が存在しない場合は、パス53を通って主
記憶参照要求がリクエスタ8に発行される。
また、パス51上に送られた信号は、比較回路7に送ら
れ、Cバッファ2のエントリアドレスと命令アドレスと
が比較される。比較の結果は、パス54を通ってリクエ
スタ8に発行される。
れ、Cバッファ2のエントリアドレスと命令アドレスと
が比較される。比較の結果は、パス54を通ってリクエ
スタ8に発行される。
リクエスタ8は、パス53.54上の信号に基づいて次
のような動作を行う。
のような動作を行う。
(1)命令バッファ3にもCバッファ2にも目的の命令
がない場合、パス55を介して主記憶参照(以下BTと
略す)要求を発行する。BTリクエストは、主記憶1に
送られ、読み出されたデータは、パス56、セレクタ9
を通って命令バッファ3に書き込まれる。また比較回路
6には命令バッファ3に格納されているn個の命令の先
頭アドレスが格納される。
がない場合、パス55を介して主記憶参照(以下BTと
略す)要求を発行する。BTリクエストは、主記憶1に
送られ、読み出されたデータは、パス56、セレクタ9
を通って命令バッファ3に書き込まれる。また比較回路
6には命令バッファ3に格納されているn個の命令の先
頭アドレスが格納される。
(2)命令バッファ3に目的の命令がなく、Cバッファ
2に在る場合、リクエスタ8は、パス57を経由してC
バッファ2上のデータを読出しパス58゜セレクタ9を
通って命令バッファ3へそのデータを転送する。
2に在る場合、リクエスタ8は、パス57を経由してC
バッファ2上のデータを読出しパス58゜セレクタ9を
通って命令バッファ3へそのデータを転送する。
リクエスタ8に対し直接命令実行制御部4から主記憶、
Cバッファ転送命令が発行された場合、リクエスタ8は
、パス60を通って主記憶参照要求(以下BT2リクエ
スト)を主記憶1に発行する。
Cバッファ転送命令が発行された場合、リクエスタ8は
、パス60を通って主記憶参照要求(以下BT2リクエ
スト)を主記憶1に発行する。
前述の主記憶参照要求は、全て論理−実アドレス変換が
行われて主記憶へ発行される。このアドレス変換処理に
ついては本発明の主旨とは直接関係がないので説明を省
略する。
行われて主記憶へ発行される。このアドレス変換処理に
ついては本発明の主旨とは直接関係がないので説明を省
略する。
BT2リクエストに対応して主記憶から読み出されたデ
ータは、データバッファ10を経てCバッファ2に書き
込まれる。同時にCバッファ2に格納されたm’n個の
命令の先頭アドレスが比較回路7のエントリ部に格納さ
れる。データバッファ10は主記憶からn個ずつ組にな
ってシリアルに読出されて来るデータをCバッファ20
m−n個の命令を格納しているカラムにセットする動作
を行う。
ータは、データバッファ10を経てCバッファ2に書き
込まれる。同時にCバッファ2に格納されたm’n個の
命令の先頭アドレスが比較回路7のエントリ部に格納さ
れる。データバッファ10は主記憶からn個ずつ組にな
ってシリアルに読出されて来るデータをCバッファ20
m−n個の命令を格納しているカラムにセットする動作
を行う。
第2図は第1図の命令バッファ3と比較回路6の構成を
示すブロック図である。第2図の例はn−3,2カラム
の命令バッファについての構成を示している。第2図で
は、第1図と同じ論理部には同じ番号を付け、パスにつ
いては第1図で1本のパスとして表示されているものを
異った用途に(例えば、コマンドとアドレス信号のよう
に)使う場合には、添字a、b、cを付けて表わしてい
る。また、図面の簡約化のため東線表示を用い、これを
太い実線であられしている。第3図以降についても同様
である。
示すブロック図である。第2図の例はn−3,2カラム
の命令バッファについての構成を示している。第2図で
は、第1図と同じ論理部には同じ番号を付け、パスにつ
いては第1図で1本のパスとして表示されているものを
異った用途に(例えば、コマンドとアドレス信号のよう
に)使う場合には、添字a、b、cを付けて表わしてい
る。また、図面の簡約化のため東線表示を用い、これを
太い実線であられしている。第3図以降についても同様
である。
第2図において、命令実行制御部4から命令読み出し要
求(アドレス)がパス50aを通ってレジスタ100に
セットされる。レジスタ100上のアドレスは100a
部が命令バッファのカラムアドレス、100b部がカラ
ム内アドレスを示していると仮定する。フリップフロッ
プ101は、カラム内の命令が使用できるか否か(有効
か否か)を示すフリップフロップであり、値“1″が有
効を示す。レジスタ102は、カラムの先頭に格納され
ている命令のアドレスを保持する。レジスタ列103は
前記のレジスタ102内の命令アドレスから連続する3
個の命令を保持する。フリップフロップ101、レジス
タ102.103をカラムという。論理回路104は、
サイクリックなカウンタであり、実装しであるカラム数
−1を超えると“0°゛にラップアラウンドされる。サ
イクリックカウンタ104の出力は、パス150を通っ
てスイッチング回路105〜107へ入力される。
求(アドレス)がパス50aを通ってレジスタ100に
セットされる。レジスタ100上のアドレスは100a
部が命令バッファのカラムアドレス、100b部がカラ
ム内アドレスを示していると仮定する。フリップフロッ
プ101は、カラム内の命令が使用できるか否か(有効
か否か)を示すフリップフロップであり、値“1″が有
効を示す。レジスタ102は、カラムの先頭に格納され
ている命令のアドレスを保持する。レジスタ列103は
前記のレジスタ102内の命令アドレスから連続する3
個の命令を保持する。フリップフロップ101、レジス
タ102.103をカラムという。論理回路104は、
サイクリックなカウンタであり、実装しであるカラム数
−1を超えると“0°゛にラップアラウンドされる。サ
イクリックカウンタ104の出力は、パス150を通っ
てスイッチング回路105〜107へ入力される。
パス151〜154は、第1図に示すセレクタ9から送
られてくる信号であって、それぞれアドバンス、ライト
イネーブル、アドレス、データ信号である。第1図では
これらの信号線は1本の信号線に省略して示されている
。これらの各信号は、スイッチング回路105〜107
によって各カラムに分配される。
られてくる信号であって、それぞれアドバンス、ライト
イネーブル、アドレス、データ信号である。第1図では
これらの信号線は1本の信号線に省略して示されている
。これらの各信号は、スイッチング回路105〜107
によって各カラムに分配される。
レジスタ100にセットされた命令アドレスは、比較回
路110によって、レジスタ102上の命令アドレスと
一致しているか否かが調べられ、その結果がAND回路
111に送られる。フリップフロップ101の出力も同
回路111に送られ、未セツトカラムのアドレスとの比
較を無効にする。
路110によって、レジスタ102上の命令アドレスと
一致しているか否かが調べられ、その結果がAND回路
111に送られる。フリップフロップ101の出力も同
回路111に送られ、未セツトカラムのアドレスとの比
較を無効にする。
AND回路111の出力が“°1″のとき、対応するカ
ラムの中にレジスタ100上の命令アドレスに相当する
命令が存在することを示す。
ラムの中にレジスタ100上の命令アドレスに相当する
命令が存在することを示す。
AND回路111の出力は、エンコーダ112によって
コード化されパス156上に送り出される。パス156
上の信号が“0”のとき、命令バッファ3内に命令アド
レスに対応する命令がないことを示す。パス156上の
コード信号は、セレクタ113に作用し命令のあるカラ
ムからのデータを選択してパス157〜159上に送出
する。
コード化されパス156上に送り出される。パス156
上の信号が“0”のとき、命令バッファ3内に命令アド
レスに対応する命令がないことを示す。パス156上の
コード信号は、セレクタ113に作用し命令のあるカラ
ムからのデータを選択してパス157〜159上に送出
する。
レジスタ100内の100bフイールドは、カラム内ア
ドレスを保持している。該アドレスは、パス160を経
由してセレクタ114に作用し、パス157〜159の
どれかを選択し、そのデータをレジスタ116に送出す
る。レジスタ116の出力は、パス52を通って第1図
の命令実行制御部4に送られる。
ドレスを保持している。該アドレスは、パス160を経
由してセレクタ114に作用し、パス157〜159の
どれかを選択し、そのデータをレジスタ116に送出す
る。レジスタ116の出力は、パス52を通って第1図
の命令実行制御部4に送られる。
パス156上の信号値が“0°゛となり、命令バッファ
3内に命令が存在しないことが示されたとき、比較回路
117は、パス53a上に“1′を出力する。パス53
a上のこの信号は、BT要求を示し、第1図のりクエス
タ8に送られる。レジスタ100の100aフイールド
のデータは、パス53bを通って同様にリクエスタ8に
送られる。
3内に命令が存在しないことが示されたとき、比較回路
117は、パス53a上に“1′を出力する。パス53
a上のこの信号は、BT要求を示し、第1図のりクエス
タ8に送られる。レジスタ100の100aフイールド
のデータは、パス53bを通って同様にリクエスタ8に
送られる。
第2図の命令バッファは、実装されているカラム数に入
っている命令の範囲内でならどのように分岐しても同じ
遅延時間後に命令を読出すことができる。
っている命令の範囲内でならどのように分岐しても同じ
遅延時間後に命令を読出すことができる。
パス50b上に命令バッファ3の内容をクリアする信号
が送られてくると、フリップフロップ101の内容は、
“0°”にリセットされ、全エントリアドレスが無効化
される。
が送られてくると、フリップフロップ101の内容は、
“0°”にリセットされ、全エントリアドレスが無効化
される。
Cバッファ2の構成を示すブロック図が第3゜4図に示
されている。Cバッファ2は、命令バッファ3よりも大
容量であることが望ましいのでメモリ素子を用いて実現
する例を示した。Cバッファ2の書き込み動作と読み出
し動作は、並列的に行われるので、メモリ素子を使う場
合にはバッファの論理を2面化するか、1/2のマシン
サイクルで作動させる必要がある。ここではマシンサイ
クルを1/2とする場合を例として説明する。
されている。Cバッファ2は、命令バッファ3よりも大
容量であることが望ましいのでメモリ素子を用いて実現
する例を示した。Cバッファ2の書き込み動作と読み出
し動作は、並列的に行われるので、メモリ素子を使う場
合にはバッファの論理を2面化するか、1/2のマシン
サイクルで作動させる必要がある。ここではマシンサイ
クルを1/2とする場合を例として説明する。
■マシンサイクルをW/Rサイクルの2つに分け、Wサ
イクルで作動する論理部を[株]で、Rサイクルで作動
する論理部を■で、両サイクルで作動する部分を◎で示
す。
イクルで作動する論理部を[株]で、Rサイクルで作動
する論理部を■で、両サイクルで作動する部分を◎で示
す。
第3図を用いてCバッファ2への書込動作を説明する。
ここではm=3とする。
Cバッファ2への書き込みデータは、主記憶1からパス
260上にn個の命令が1マシンサイクル単位に送られ
て来る。パス260に対するアドバンス信号はパス26
1である。論理回路210は、サイクリックカウンタで
、パス261上の7ドバンス信号によってO→1→2→
3→0→のように値が変化する。該カウンタの出力は、
パス255上に出力される。サイクリックカウンタ21
0は、値が3→0へ変化するとき、パス256上にパル
スを送出する。パス260上のCバッファのエントリア
ドレスは、レジスタ211にセットされる。パス256
上のパルス信号によって、レジスタ211上のデータは
、レジスタ212に移行し、スイッチング回路213に
送られる。パス254上の信号は、このエントリアドレ
スをどのレジスタ202に書き込むかを指示する。これ
によって、パス260上に送られて来たエントリアドレ
スは、レジスタ202のいずれかに書き込まれる。
260上にn個の命令が1マシンサイクル単位に送られ
て来る。パス260に対するアドバンス信号はパス26
1である。論理回路210は、サイクリックカウンタで
、パス261上の7ドバンス信号によってO→1→2→
3→0→のように値が変化する。該カウンタの出力は、
パス255上に出力される。サイクリックカウンタ21
0は、値が3→0へ変化するとき、パス256上にパル
スを送出する。パス260上のCバッファのエントリア
ドレスは、レジスタ211にセットされる。パス256
上のパルス信号によって、レジスタ211上のデータは
、レジスタ212に移行し、スイッチング回路213に
送られる。パス254上の信号は、このエントリアドレ
スをどのレジスタ202に書き込むかを指示する。これ
によって、パス260上に送られて来たエントリアドレ
スは、レジスタ202のいずれかに書き込まれる。
パス262上には、Cバッファに書き込むべきn個の命
令が主記憶1から送られて来る。パス262上のデータ
は、レジスタ214に格納された後、スイッチング回路
215に送られ、パス255上のサイクリックカウンタ
210の出力によってm−3に対応して3個実装されて
いるRAM素子201のどれかに送られる。
令が主記憶1から送られて来る。パス262上のデータ
は、レジスタ214に格納された後、スイッチング回路
215に送られ、パス255上のサイクリックカウンタ
210の出力によってm−3に対応して3個実装されて
いるRAM素子201のどれかに送られる。
パス261上のアドバンス信号は、レジスタ216を経
由してAND回路217に入力される。
由してAND回路217に入力される。
パス253上の信号はW/Rサイクルを示す信号である
。ここではWサイクルを値“1゛で表わす。
。ここではWサイクルを値“1゛で表わす。
従って、1マシンサイクルのWサイクル時にRAM素子
201に書き込みが行われる。
201に書き込みが行われる。
フリップフロップ21Bは、Cバッファのカラム内の命
令列がインターバルタイマ230が出力を出している間
に使用されたか否かを示している。
令列がインターバルタイマ230が出力を出している間
に使用されたか否かを示している。
ここでは、値“°1°゛が使用されたことを、値“0”
が使用されなかったことを示すとする。
が使用されなかったことを示すとする。
フリップフロップ218は、インターバルタイマ230
が出力を出すと一斉に” o ”クリアされる。また、
このフリップフロップ21Bは、パス250上にCバッ
ファ読み出し論理部(第4図)からデータが読み出され
たことを示す信号が送られて来ると1°“にセットされ
る。
が出力を出すと一斉に” o ”クリアされる。また、
このフリップフロップ21Bは、パス250上にCバッ
ファ読み出し論理部(第4図)からデータが読み出され
たことを示す信号が送られて来ると1°“にセットされ
る。
フリップフロップ218の出力は、エンコーダ219に
よってコード化されパス263上に送り出される。22
0は、乱数発生器であって、その出力はパス264上に
送り出される。エンコーダ219の出力が全て“0”の
とき、即ちCバッファのどのカラムも使用されていると
き、比較回路222の出力は、“1゛となり、これによ
って、セレクタ221は、パス264と251を接続す
る。従って、パス251上の信号によってCバッファの
カラム上のデータをリプレースする場合、あまり多くの
データをCバッファに書込んでも性能向上は望めなくな
る。Cバッファの管理は、ユーザの責任で命令を発行し
なければならない。
よってコード化されパス263上に送り出される。22
0は、乱数発生器であって、その出力はパス264上に
送り出される。エンコーダ219の出力が全て“0”の
とき、即ちCバッファのどのカラムも使用されていると
き、比較回路222の出力は、“1゛となり、これによ
って、セレクタ221は、パス264と251を接続す
る。従って、パス251上の信号によってCバッファの
カラム上のデータをリプレースする場合、あまり多くの
データをCバッファに書込んでも性能向上は望めなくな
る。Cバッファの管理は、ユーザの責任で命令を発行し
なければならない。
パス251上のデータは、第4図からの読み出アドレス
データバス252とセレクタ200上で、W/Rサイク
ルの選別が行われパス254上に送出されRAM201
のアドレス情報となる。パス254上のデータは第4図
にも送出される。
データバス252とセレクタ200上で、W/Rサイク
ルの選別が行われパス254上に送出されRAM201
のアドレス情報となる。パス254上のデータは第4図
にも送出される。
第4図はCバッファの読み出し部分のブロック図を示し
ている。パス57上にはCバッファを読み出するための
アドレスが送られてき、該アドレスは、レジスタ230
にセットされる。レジスタ230のaフィールドは、C
バッファから読み出す命令列が格納されているカラムの
命令列の先頭アドレスに対応する(比較できる)もので
ある。
ている。パス57上にはCバッファを読み出するための
アドレスが送られてき、該アドレスは、レジスタ230
にセットされる。レジスタ230のaフィールドは、C
バッファから読み出す命令列が格納されているカラムの
命令列の先頭アドレスに対応する(比較できる)もので
ある。
bフィールドは、m個に別かれているCバッファのどの
ブロックを読出せばよいかを示している。
ブロックを読出せばよいかを示している。
Cフィールドは、第4図の論理では用いられない。
レジスタ230のaフィールドのアドレスはパス280
を通って比較回路232に送られ、レジスタ202上の
カラムアドレスと比較される。フリップフロップ231
は、Cバッファのカラムアドレスが有効であるか否か、
即ちカラム内の命令列が使用できるか否かを示している
。ここではフリップフロップの値が“1゛の時に有効で
あるとする。比較回路232の出力と該フリップフロッ
プ231の出力とは、AND回路233で論理積がとら
れ、その結果がパス250上に送出される。
を通って比較回路232に送られ、レジスタ202上の
カラムアドレスと比較される。フリップフロップ231
は、Cバッファのカラムアドレスが有効であるか否か、
即ちカラム内の命令列が使用できるか否かを示している
。ここではフリップフロップの値が“1゛の時に有効で
あるとする。比較回路232の出力と該フリップフロッ
プ231の出力とは、AND回路233で論理積がとら
れ、その結果がパス250上に送出される。
パス250上の信号は、エンコーダ234でコード化さ
れパス252を介してセレクタ200に送出される。セ
レクタ200からは、RAM201のアドレスが出力さ
れる。この論理についてはすでに第3図で説明した。R
AM201から読出されたデータ(命令列)は、セレク
タ235でレジスタ230のbフィールドの情報によっ
て選択されパス288上に送出される。
れパス252を介してセレクタ200に送出される。セ
レクタ200からは、RAM201のアドレスが出力さ
れる。この論理についてはすでに第3図で説明した。R
AM201から読出されたデータ(命令列)は、セレク
タ235でレジスタ230のbフィールドの情報によっ
て選択されパス288上に送出される。
パス261上の信号は、スイッチング回路237で選択
され、書き込みカラムに対応するフリップフロップ23
1のセットを行う。
され、書き込みカラムに対応するフリップフロップ23
1のセットを行う。
パス285は、第1図の命令実行制御回路4からのCバ
ッファパージパスである。
ッファパージパスである。
エンコーダ234の出力が“0°゛、即ちCバッファ内
に読み出すべき命令列がセットされていないとき、比較
回路236の出力が°“1°“となり、BT2リクエス
ト要求がパス54上に送出される。
に読み出すべき命令列がセットされていないとき、比較
回路236の出力が°“1°“となり、BT2リクエス
ト要求がパス54上に送出される。
第5図は第1図のりクエスタ8のCバッファへの転送処
理部のブロック図である。
理部のブロック図である。
第5図において、命令実行制御回路4からCバッファへ
データを転送する命令は、パス59a上に信号を送出す
ることにより発行される。この指示信号は、レジスタ3
00にスタックされる。フリップフロップ301は、[
Cバッファへのデー夕転送命令」が実行中であるとき値
“l”′を保持している。このとき、レジスタ300上
の後続のデータ転送命令は受は付けられない。データ転
送命令が完了しパス256上に終了信号が送出される(
第3図参照)とフリップフロップ301はリセットされ
、後続のデータ転送命令がレジスタ302にセットされ
実行に移される。一方、該転送命令のアドレスは、パス
59bを経由してリクエスタに送られてくる。パス59
c、d上の信号は、それぞれ転送数(mの値)、オーダ
を示していてレジスタ330,331に保持される。レ
ジスタ303には1回のデータ転送量(n (B))の
値が格納されている。パス354上の信号値が“′1パ
になるとカウンタ310がリセットされ、セレクタ30
4は、レジスタ306のデータを加算器311を通して
レジスタ312にセットする。
データを転送する命令は、パス59a上に信号を送出す
ることにより発行される。この指示信号は、レジスタ3
00にスタックされる。フリップフロップ301は、[
Cバッファへのデー夕転送命令」が実行中であるとき値
“l”′を保持している。このとき、レジスタ300上
の後続のデータ転送命令は受は付けられない。データ転
送命令が完了しパス256上に終了信号が送出される(
第3図参照)とフリップフロップ301はリセットされ
、後続のデータ転送命令がレジスタ302にセットされ
実行に移される。一方、該転送命令のアドレスは、パス
59bを経由してリクエスタに送られてくる。パス59
c、d上の信号は、それぞれ転送数(mの値)、オーダ
を示していてレジスタ330,331に保持される。レ
ジスタ303には1回のデータ転送量(n (B))の
値が格納されている。パス354上の信号値が“′1パ
になるとカウンタ310がリセットされ、セレクタ30
4は、レジスタ306のデータを加算器311を通して
レジスタ312にセットする。
またレジスタ330,331上のデータもレジスタ33
2,333へ移される。次のサイクルで、レジスタ31
2上のデータ(アドレス)は、パス351を通って加算
器311に還流する。次のす2フ イクルでは、パス354上の信号は“0゛となり、セレ
クタ304は、レジスタ303のデータを加算器311
に送出する。AND回路313は、タイミングベースか
らのパルス“TB”“をパス352から入力されて、毎
マシンサイクル毎にレジスタ312に対してセット信号
を送出する。従って、パス351上にはlマシンサイク
ルピッチで主記憶1をアクセスするためのアドレスが生
成される。
2,333へ移される。次のサイクルで、レジスタ31
2上のデータ(アドレス)は、パス351を通って加算
器311に還流する。次のす2フ イクルでは、パス354上の信号は“0゛となり、セレ
クタ304は、レジスタ303のデータを加算器311
に送出する。AND回路313は、タイミングベースか
らのパルス“TB”“をパス352から入力されて、毎
マシンサイクル毎にレジスタ312に対してセット信号
を送出する。従って、パス351上にはlマシンサイク
ルピッチで主記憶1をアクセスするためのアドレスが生
成される。
このアドレスは、比較回路310によってレジスタ33
2内のデータと比較され、両者が一致した場合、比較回
路310は、出力値“1゛を送出する。レジスタ332
には、Cバッファに何回!・n (B)のデータを転送
するかの情報が格納されている。比較回路310の出力
は、インバータ315で反転されて、パス353を通り
AND回路313に入力される。これにより、データ転
送に必要な回数のアドレスを生成した後はアドレスが生
成されないように制御される。
2内のデータと比較され、両者が一致した場合、比較回
路310は、出力値“1゛を送出する。レジスタ332
には、Cバッファに何回!・n (B)のデータを転送
するかの情報が格納されている。比較回路310の出力
は、インバータ315で反転されて、パス353を通り
AND回路313に入力される。これにより、データ転
送に必要な回数のアドレスを生成した後はアドレスが生
成されないように制御される。
フリップフロップ302の出力は、パス60aを通って
主記憶1へ送出される。この出力が“0”のとき、パス
60b、c上のデータは、無効データとして扱われる。
主記憶1へ送出される。この出力が“0”のとき、パス
60b、c上のデータは、無効データとして扱われる。
レジスタ312.333の出力は、それぞれパス60b
、cを通って主記憶1へ送られる。このパス60b、c
上のデータは、それぞれアドレス、オーダを示している
。
、cを通って主記憶1へ送られる。このパス60b、c
上のデータは、それぞれアドレス、オーダを示している
。
第6図は第1図のりクエスタ8の論理部の一部で、Cパ
ツファヘデータを転送中、命令バッファ読み出し要求が
発生したときのCバッファと命令バッファ間のデータ転
送に関する部分を示す図である。
ツファヘデータを転送中、命令バッファ読み出し要求が
発生したときのCバッファと命令バッファ間のデータ転
送に関する部分を示す図である。
第6図において、パス60b上にアドレスが送出されて
くると1マシンサイクル毎にレジスタ400〜402上
にそのアドレスが転送されていく。このとき、命令バッ
ファ側の比較回路6からBTリクエスト要求アドレスが
パス53bに出力されたとする。該アドレスは、レジス
タ403にスタックされ、比較回路404でアドレスの
一致が調べられ、その結果がエンコーダ405に送出さ
れる。エンコーダ405でコード化された結果は、レジ
スタ406にスタックされ、Cバッファへ書込むデータ
が主記憶lから読み出されるまで保持される。
くると1マシンサイクル毎にレジスタ400〜402上
にそのアドレスが転送されていく。このとき、命令バッ
ファ側の比較回路6からBTリクエスト要求アドレスが
パス53bに出力されたとする。該アドレスは、レジス
タ403にスタックされ、比較回路404でアドレスの
一致が調べられ、その結果がエンコーダ405に送出さ
れる。エンコーダ405でコード化された結果は、レジ
スタ406にスタックされ、Cバッファへ書込むデータ
が主記憶lから読み出されるまで保持される。
Cバッファへ書込む処理は、第3図で説明した通りであ
るが、Cバッファへ書込むと同時に書込データを命令バ
ッファ側へ転送することが必要になる。このため、第3
図のスイッチング回路215の出力パス268をレジス
タ407〜409へ接続し、m個の書込データが順にレ
ジスタ407゜408、・・・・・・にセットされるよ
うにする。
るが、Cバッファへ書込むと同時に書込データを命令バ
ッファ側へ転送することが必要になる。このため、第3
図のスイッチング回路215の出力パス268をレジス
タ407〜409へ接続し、m個の書込データが順にレ
ジスタ407゜408、・・・・・・にセットされるよ
うにする。
レジスタ406の出力は、セレクタ411に作用し、レ
ジスタ407〜409上のデータのうち、比較回路40
4で一致したアドレスに対応するデータのみをレジスタ
410へ送る。一方、命令バッファ側とCバッファ側の
2つの比較回路6,7の出力が共に「レジスタ403上
のアドレスがエントリされていない」ことを示している
とき、パス53a、54上には“1”が出力されている
ので、これをAND回路412で論理積をとり結果をレ
ジスタ413に保持しておく。レジスタ413の出力は
、レジスタ4100セット信号として用いられる。命令
バッファ側の比較回路6のパス53a上の信号値が“1
”″で、Cバッファ側の比較回路7のパス54上の信号
値が“0”のとき、即ち命令バッファに目的とする命令
列がなく、Cバッファ上に目的とする命令列が存在する
とき、AND回路414でこれが検出され、AND回路
412の出力と併せて、エンコーダ415でコード化さ
れる。
ジスタ407〜409上のデータのうち、比較回路40
4で一致したアドレスに対応するデータのみをレジスタ
410へ送る。一方、命令バッファ側とCバッファ側の
2つの比較回路6,7の出力が共に「レジスタ403上
のアドレスがエントリされていない」ことを示している
とき、パス53a、54上には“1”が出力されている
ので、これをAND回路412で論理積をとり結果をレ
ジスタ413に保持しておく。レジスタ413の出力は
、レジスタ4100セット信号として用いられる。命令
バッファ側の比較回路6のパス53a上の信号値が“1
”″で、Cバッファ側の比較回路7のパス54上の信号
値が“0”のとき、即ち命令バッファに目的とする命令
列がなく、Cバッファ上に目的とする命令列が存在する
とき、AND回路414でこれが検出され、AND回路
412の出力と併せて、エンコーダ415でコード化さ
れる。
比較回路7からはAND回路414の出力が′“1”′
の場合、パス288上にCバッファから読み出した命令
列が送り出されている。従って、セレクタ416で主記
憶側のCバッファ書き込み命令列とパス288のCバッ
ファからの読み出し命令列が選択されて、そのいずれか
一方がパス58経由で命令バッファに送出されることに
なる。
の場合、パス288上にCバッファから読み出した命令
列が送り出されている。従って、セレクタ416で主記
憶側のCバッファ書き込み命令列とパス288のCバッ
ファからの読み出し命令列が選択されて、そのいずれか
一方がパス58経由で命令バッファに送出されることに
なる。
第7図は第1図の命令実行制御部7のブロック図である
。
。
第7図において、パス52を通って命令が命令バッファ
から送られて来る。パス52a、52b上にはそれぞれ
コマンド、データが伝播しているものとする。
から送られて来る。パス52a、52b上にはそれぞれ
コマンド、データが伝播しているものとする。
パス52b上のデータは、レジスタに501にセットさ
れる。レジスタ501のデータ即ち命令は、デコーダ5
03で解読され、論理回路504で命令実行に必要なオ
ーダ類が生成される。ここでは、命令実行に必要な情報
として、命令を実行する演算器などの資源、命令結果を
書き込むためのレジスタ類などのビジー状態を考える。
れる。レジスタ501のデータ即ち命令は、デコーダ5
03で解読され、論理回路504で命令実行に必要なオ
ーダ類が生成される。ここでは、命令実行に必要な情報
として、命令を実行する演算器などの資源、命令結果を
書き込むためのレジスタ類などのビジー状態を考える。
演算器。
レジスタを総称してリソースといい、これらのリソース
のビジーを管理するためにフリップフロップ507が設
けられている。すなわち、フリップフロップ507が°
°1°゛のとき、対応するリソースがビジーであること
を示す。
のビジーを管理するためにフリップフロップ507が設
けられている。すなわち、フリップフロップ507が°
°1°゛のとき、対応するリソースがビジーであること
を示す。
第7図において、論理回路504で命令を実行するため
の情報(簡単のため1個とする)が作られ、パス550
上にその情報が送出されると、この情報は、セレクタ5
08に作用し命令実行に必要なフリップフロップ507
の情報をパス551上に送出する。該情報は、インバー
タ509で反転されAND回路510に入力される。一
方、しジスタ500にセットされたレジスタ501上の
命令が有効であることを示す指示信号は、AND回路5
02を通って、レジスタ505にセットされ、パス55
2を介してAND回路510に入力される。即ちAND
回路510の出力が“I IIのとき、命令が実行可で
あることを示している。該出力は、レジスタ511を通
ってレジスタ501のセット信号となると同時に、パス
50を介して命令バッファ部に次命令続出要求のコマン
ド信号となって送出される。ANI)回路510の出力
が“0゛すなわち命令実行不可のとき、パス50上には
命令続出要求が生成されず、レジスタ501もセットさ
れない。またAND回路502の出力は常に°“0″と
なり命令実行が抑止される。
の情報(簡単のため1個とする)が作られ、パス550
上にその情報が送出されると、この情報は、セレクタ5
08に作用し命令実行に必要なフリップフロップ507
の情報をパス551上に送出する。該情報は、インバー
タ509で反転されAND回路510に入力される。一
方、しジスタ500にセットされたレジスタ501上の
命令が有効であることを示す指示信号は、AND回路5
02を通って、レジスタ505にセットされ、パス55
2を介してAND回路510に入力される。即ちAND
回路510の出力が“I IIのとき、命令が実行可で
あることを示している。該出力は、レジスタ511を通
ってレジスタ501のセット信号となると同時に、パス
50を介して命令バッファ部に次命令続出要求のコマン
ド信号となって送出される。ANI)回路510の出力
が“0゛すなわち命令実行不可のとき、パス50上には
命令続出要求が生成されず、レジスタ501もセットさ
れない。またAND回路502の出力は常に°“0″と
なり命令実行が抑止される。
パス50上に命令実行指示が行われると、スイッチング
回路506を介してその命令実行に必要なリソースに対
応するフリップフロップ507が“1”にセットされる
。
回路506を介してその命令実行に必要なリソースに対
応するフリップフロップ507が“1”にセットされる
。
このフリップフロップ507は、リソース側から命令処
理を完了したときに出力されるフリー信号がパス560
を介して送られて来るまで“0“にリセットされない。
理を完了したときに出力されるフリー信号がパス560
を介して送られて来るまで“0“にリセットされない。
第7図のような方式の命令実行制御を行うと、1命令の
処理が複数ステージを要するような命令のとき、先行す
る命令の実行中に、後続の命令の実行をリソースがビジ
ーでなければ実行することができる。即ち、主記憶1か
らCバッファへのデータ転送が長いマシンサイクルを要
しても、命令の並列実行が可能であるので、命令実行に
及ぼす影響はほとんどない。
処理が複数ステージを要するような命令のとき、先行す
る命令の実行中に、後続の命令の実行をリソースがビジ
ーでなければ実行することができる。即ち、主記憶1か
らCバッファへのデータ転送が長いマシンサイクルを要
しても、命令の並列実行が可能であるので、命令実行に
及ぼす影響はほとんどない。
前述した本発明の実施例は、主記憶からCバッファへの
命令列の転送が通常の命令フェッチを防げないような論
理的工夫を施し、Cバッファの導入による悪影響がない
ようにした。
命令列の転送が通常の命令フェッチを防げないような論
理的工夫を施し、Cバッファの導入による悪影響がない
ようにした。
以上説明したように、本発明によれば、命令バッファと
Cバッファの性質の異る2つのバッファを用いて命令読
み出しの高速化を図ることができる。
Cバッファの性質の異る2つのバッファを用いて命令読
み出しの高速化を図ることができる。
また、命令バッファによって、複数の命令を−度にバッ
ファ上に主記憶から読出すことにより、主記憶バッファ
間のデータ転送の効率を良くし、命令読み出し要求のア
ドレスの連続性に対するバッファの効率的反応を可能に
でき、命令バッファ内の命令に、任意の順序でアクセス
可能になるような論理構成をとることにより、バッファ
内分岐処理の著しい高速化を実現することができる。
ファ上に主記憶から読出すことにより、主記憶バッファ
間のデータ転送の効率を良くし、命令読み出し要求のア
ドレスの連続性に対するバッファの効率的反応を可能に
でき、命令バッファ内の命令に、任意の順序でアクセス
可能になるような論理構成をとることにより、バッファ
内分岐処理の著しい高速化を実現することができる。
さらに、Cバッファによって、頻度高く使用されるルー
チン類のバッファ内常駐が可能になり、かつ、命令バッ
ファに容量的に入り切らないプログラム内の分岐処理を
高速化できる。
チン類のバッファ内常駐が可能になり、かつ、命令バッ
ファに容量的に入り切らないプログラム内の分岐処理を
高速化できる。
第1図は本発明によるデータ処理装置の一実施例の概略
構成を示すブロック図、第2図は命令バッファ部の構成
を示すブロック図、第3図、4図はCバッファ部の構成
を示すブロック図、第5図、第6図はりクエスタ部の構
成を示すブロック図、第7図は命令実行制御部の構成を
示すブロック図である。 1・・・・・・・・・主記憶、2・・・・・・・・・C
バッファ、3・・・・・・・・・命令バッファ、4・・
・・・・・・・命令実行制御部、5・・・・・・・・・
命令実行部、6.7・・・・・・・・・比較回路、8・
・・・・・・・・リクエスタ、9・・・・・・・・・セ
レクタ、10・・・・・・・・・データバッファ。
構成を示すブロック図、第2図は命令バッファ部の構成
を示すブロック図、第3図、4図はCバッファ部の構成
を示すブロック図、第5図、第6図はりクエスタ部の構
成を示すブロック図、第7図は命令実行制御部の構成を
示すブロック図である。 1・・・・・・・・・主記憶、2・・・・・・・・・C
バッファ、3・・・・・・・・・命令バッファ、4・・
・・・・・・・命令実行制御部、5・・・・・・・・・
命令実行部、6.7・・・・・・・・・比較回路、8・
・・・・・・・・リクエスタ、9・・・・・・・・・セ
レクタ、10・・・・・・・・・データバッファ。
Claims (1)
- 【特許請求の範囲】 1、命令バッファを備えるデータ処理装置において、命
令読み出し動作をトリガとして複数の命令を1回の主記
憶アクセスでバッファに転送し、次回の命令読み出しを
バッファから行う論理部、バッファにエントリされてい
ない命令を読み出すように要求されたとき、再び複数の
命令を1度に主記憶から読み出す論理部、及び、読み出
した命令列がバッファに入らないとき、自動的に前もつ
て読み出した命令列の一部を消去し、そこに新たな命令
を書き込む論理部を備える第1の命令バッファと、命令
によつて主記憶から命令列をローディングする論理部を
備える第2の命令バッファとを備えたことを特徴とする
データ処理装置。 2、前記第2の命令バツフアへの命令列転送と、データ
処理とを並列に実行可能であることを特徴とする特許請
求の範囲第1項記載のデータ処理装置。 3、前記第1及び第2の命令バッファの内容を無効化す
る論理部をさらに備えたことを特徴とする特許請求の範
囲第1項または第2項記載のデータ処理装置。 4、命令読み出し要求がデータ処理部から発行されたと
き、該読み出し要求の命令が、前記第1、第2の命令バ
ッファ内に存在するか否かを検出する論理部をさらに備
えることを特徴とする特許請求の範囲第1項、第2項ま
たは第3項記載のデータ処理装置。 5、前記読み出し要求の命令が、第1、第2の命令バッ
ファ内に存在するか否かを検出する論理部の検出結果に
基づいて、前記第2の命令バッファから前記第1の命令
バッファに命令列を転送する論理部をさらに備えること
を特徴とする特許請求の範囲第4項記載のデータ処理装
置。 6、命令読み出し要求に対する前記第1、第2の命令バ
ッファの応答に基づいて、主記憶へ、命令列の命令バツ
フアへの転送を要求する論理部をさらに備えることを特
徴とする特許請求の範囲第1項ないし第5項のうち1項
記載のデータ処理装置。 7、前記命令列の命令バツフアへの転送を要求する論理
部から発行された命令列の転送要求が未完のとき、デー
タ処理部から命令読み出し要求が発行され、前記論理部
の要求による命令列転送の中に、前記データ処理部の要
求による命令を含む場合、前記第2の命令バッファに前
記論理部の要求による命令列を書き込むと同時に、前記
データ処理部の要求による命令を含む部分を前記第1の
命令バッファに転送する機能を有する論理部をさらに備
えることを特徴とする特許請求の範囲第6項記載のデー
タ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22832488A JPH0277839A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22832488A JPH0277839A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0277839A true JPH0277839A (ja) | 1990-03-16 |
Family
ID=16874666
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22832488A Pending JPH0277839A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0277839A (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5718075A (en) * | 1980-07-07 | 1982-01-29 | Nec Corp | Information processor |
| JPS6356731A (ja) * | 1986-08-27 | 1988-03-11 | Mitsubishi Electric Corp | デ−タ処理装置 |
| JPS6393039A (ja) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
-
1988
- 1988-09-14 JP JP22832488A patent/JPH0277839A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5718075A (en) * | 1980-07-07 | 1982-01-29 | Nec Corp | Information processor |
| JPS6356731A (ja) * | 1986-08-27 | 1988-03-11 | Mitsubishi Electric Corp | デ−タ処理装置 |
| JPS6393039A (ja) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6272596B1 (en) | Data processor | |
| JPS61107434A (ja) | デ−タ処理装置 | |
| JPH0769812B2 (ja) | データ処理装置 | |
| JPH0527971A (ja) | 情報処理装置 | |
| US4047245A (en) | Indirect memory addressing | |
| JPH04140880A (ja) | ベクトル処理装置 | |
| JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
| JPH0760388B2 (ja) | パイプライン制御回路 | |
| JPS5824954A (ja) | アドレス制御方式 | |
| US5276853A (en) | Cache system | |
| JPH0512751B2 (ja) | ||
| JPS5941215B2 (ja) | 主記憶装置書込み制御方式 | |
| JPH0277839A (ja) | データ処理装置 | |
| JP2783285B2 (ja) | 情報処理装置 | |
| JPH117410A (ja) | キャッシュ装置 | |
| JP2668987B2 (ja) | データ処理装置 | |
| JPS6391756A (ja) | 記憶装置の部分書き込み命令処理方式 | |
| JP2924004B2 (ja) | 命令コード転送方式 | |
| JPH07319753A (ja) | バスサイクルのマルチプレクス方式 | |
| JPH0462086B2 (ja) | ||
| JPS62248029A (ja) | 表示制御装置 | |
| JPH0346033A (ja) | ジヨブ間データ転送制御方法 | |
| JPH0775017B2 (ja) | メモリ・アクセス方式 | |
| JPH04182831A (ja) | 情報処理装置及び情報処理方法 | |
| JPH01305452A (ja) | バッファ記憶装置のストア制御方式 |