JP2761324B2 - 高速演算処理方式 - Google Patents
高速演算処理方式Info
- Publication number
- JP2761324B2 JP2761324B2 JP12848892A JP12848892A JP2761324B2 JP 2761324 B2 JP2761324 B2 JP 2761324B2 JP 12848892 A JP12848892 A JP 12848892A JP 12848892 A JP12848892 A JP 12848892A JP 2761324 B2 JP2761324 B2 JP 2761324B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- processing
- instruction
- cycle
- operand
- 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
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、可変長の命令実行パイ
プラインを有する命令処理装置の演算処理方式に関す
る。命令処理装置は、数多くの命令を高速に実行する能
力を備えていなければならない。中でも、特に高速性が
要求されるのは四則演算であり、とりわけ大型機では、
科学技術計算の高速処理能力が重要とされので、浮動小
数点演算命令を高速に実行できる能力が必要である。
プラインを有する命令処理装置の演算処理方式に関す
る。命令処理装置は、数多くの命令を高速に実行する能
力を備えていなければならない。中でも、特に高速性が
要求されるのは四則演算であり、とりわけ大型機では、
科学技術計算の高速処理能力が重要とされので、浮動小
数点演算命令を高速に実行できる能力が必要である。
【0002】このため、大型機では、専用の浮動小数点
演算器を設け、さらに、データの処理に関しては、高度
なパイプライン処理方式により、高速に命令を実行す
る。具体的には、比較的容易に構成が可能な演算オーバ
ラップ処理がよく用いられる。演算オーバラップ処理を
用いる場合には、専用の浮動小数点演算器を演算オーバ
ラップ動作可能な構成にして、命令実行パイプラインに
通常の演算サイクルの他に、演算オーバラップ処理サイ
クル(Vサイクル)を設ける。
演算器を設け、さらに、データの処理に関しては、高度
なパイプライン処理方式により、高速に命令を実行す
る。具体的には、比較的容易に構成が可能な演算オーバ
ラップ処理がよく用いられる。演算オーバラップ処理を
用いる場合には、専用の浮動小数点演算器を演算オーバ
ラップ動作可能な構成にして、命令実行パイプラインに
通常の演算サイクルの他に、演算オーバラップ処理サイ
クル(Vサイクル)を設ける。
【0003】浮動小数点演算命令は、このVサイクルを
使用して実行する。Vサイクルは、最低で一つでよい
が、3サイクル以上を要する浮動小数点演算命令につい
て高速処理を実現するためには、必要に応じてVサイク
ルを、例えばV1 サイクル、V 2 サイクルへと増加させ
る。つまり、演算オーバラップ処理サイクルの多段化を
行なう。
使用して実行する。Vサイクルは、最低で一つでよい
が、3サイクル以上を要する浮動小数点演算命令につい
て高速処理を実現するためには、必要に応じてVサイク
ルを、例えばV1 サイクル、V 2 サイクルへと増加させ
る。つまり、演算オーバラップ処理サイクルの多段化を
行なう。
【0004】一方、浮動小数点演算命令の中には、その
オペランド・データの内容に依存して、特殊なマイクロ
・プログラム処理が必要となる場合がある。また、演算
実行において、浮動小数点演算器が例外的な中間結果を
出力した場合には、最終結果を得るために、マイクロ・
プログラム処理による特別な演算後処理が必要となる場
合がある。
オペランド・データの内容に依存して、特殊なマイクロ
・プログラム処理が必要となる場合がある。また、演算
実行において、浮動小数点演算器が例外的な中間結果を
出力した場合には、最終結果を得るために、マイクロ・
プログラム処理による特別な演算後処理が必要となる場
合がある。
【0005】
【従来の技術】命令処理装置における演算制御部の処理
方式は、一般的に次の二つの場合に分けられる。ひとつ
は、マイクロ・プログラムが汎用演算器を制御して命令
を実行する方式、すなわちマイクロ・プログラム処理を
行なう場合である。
方式は、一般的に次の二つの場合に分けられる。ひとつ
は、マイクロ・プログラムが汎用演算器を制御して命令
を実行する方式、すなわちマイクロ・プログラム処理を
行なう場合である。
【0006】また、第二の方式は、浮動小数点演算器な
どの専用演算器を設け、通常のオペランド・データの実
行は専用演算器で高速に実行し、マイクロ・プログラム
は、演算器の起動や、特殊なオペランド・データ処理
や、演算器が出力する例外的な中間結果に対する処理を
行なうという場合であり、これらを命令やオペランド・
データの内容によって最適に使い分けるという方式であ
る。
どの専用演算器を設け、通常のオペランド・データの実
行は専用演算器で高速に実行し、マイクロ・プログラム
は、演算器の起動や、特殊なオペランド・データ処理
や、演算器が出力する例外的な中間結果に対する処理を
行なうという場合であり、これらを命令やオペランド・
データの内容によって最適に使い分けるという方式であ
る。
【0007】ところで、従来、実行する命令が特殊な処
理を行なう必要があるという場合であって、その特殊な
処理の必要性がその命令の解読のみで判断できるという
場合については、命令制御部は、命令の解読をして演算
制御部を起動するときに、演算制御部に対する指令コー
ドを修飾することで、その命令が特殊な処理を行なう必
要がある命令であることを、演算制御部に指示してい
た。
理を行なう必要があるという場合であって、その特殊な
処理の必要性がその命令の解読のみで判断できるという
場合については、命令制御部は、命令の解読をして演算
制御部を起動するときに、演算制御部に対する指令コー
ドを修飾することで、その命令が特殊な処理を行なう必
要がある命令であることを、演算制御部に指示してい
た。
【0008】一方、浮動小数点演算命令の中には、オペ
ランド・データに依存して、浮動小数点演算器が出力し
た中間結果に対し、最終結果を得るために特別な演算後
処理を必要とするものがある。また、オペランド・デー
タに依存して、特殊な処理が要求される命令もある。
ランド・データに依存して、浮動小数点演算器が出力し
た中間結果に対し、最終結果を得るために特別な演算後
処理を必要とするものがある。また、オペランド・デー
タに依存して、特殊な処理が要求される命令もある。
【0009】オペランド・データに依存して特殊な処理
が必要な場合、および特別の演算後処理が必要な場合に
ついては、当然、命令制御部においてその必要性を判断
することは不可能である。
が必要な場合、および特別の演算後処理が必要な場合に
ついては、当然、命令制御部においてその必要性を判断
することは不可能である。
【0010】そこで、演算制御部が起動し、実行する命
令のオペランド・データが記憶制御部あるいは命令制御
部から演算制御部へ供給された時点で、演算制御部がそ
のオペランド・データを解析することで前記処理の必要
性を判断することとしている。また、この時、命令制御
部から演算制御部への指令コードに対応する専用の浮動
小数点演算器が起動される。
令のオペランド・データが記憶制御部あるいは命令制御
部から演算制御部へ供給された時点で、演算制御部がそ
のオペランド・データを解析することで前記処理の必要
性を判断することとしている。また、この時、命令制御
部から演算制御部への指令コードに対応する専用の浮動
小数点演算器が起動される。
【0011】オペランド・データを解析することによっ
て前記処理が必要となった場合には、演算制御部は命令
制御部に演算終了信号を通知しないことで、命令制御部
の命令実行パイプラインを停止させる。
て前記処理が必要となった場合には、演算制御部は命令
制御部に演算終了信号を通知しないことで、命令制御部
の命令実行パイプラインを停止させる。
【0012】それから、演算制御部は前記条件を検出し
た命令の処理をマイクロ・プログラムに割り出して、マ
イクロ・プログラム制御で命令処理を続行する。演算制
御部は、マイクロ・プログラム割出し処理が終了する
と、命令制御部に演算終了信号を通知して、命令制御部
の命令実行パイプラインの停止状態を解除する。
た命令の処理をマイクロ・プログラムに割り出して、マ
イクロ・プログラム制御で命令処理を続行する。演算制
御部は、マイクロ・プログラム割出し処理が終了する
と、命令制御部に演算終了信号を通知して、命令制御部
の命令実行パイプラインの停止状態を解除する。
【0013】従来方式の命令実行パイプラインで、一般
命令を実行するときの動作例を、図4に示す。命令実行
パイプラインは、各サイクルで実行する処理が明確に定
義されている。
命令を実行するときの動作例を、図4に示す。命令実行
パイプラインは、各サイクルで実行する処理が明確に定
義されている。
【0014】図中、Dサイクルは命令デコードサイク
ル、Aサイクルはオペランドアドレス計算サイクル、T
サイクルはTLBアクセスサイクル、Bサイクルはオペ
ランドキャッシュアクセスサイクル、Eサイクルは演算
制御部の演算サイクル、そしてWサイクルは演算結果の
書き込みサイクルを示している。
ル、Aサイクルはオペランドアドレス計算サイクル、T
サイクルはTLBアクセスサイクル、Bサイクルはオペ
ランドキャッシュアクセスサイクル、Eサイクルは演算
制御部の演算サイクル、そしてWサイクルは演算結果の
書き込みサイクルを示している。
【0015】なお、命令実行パイプラインの各サイクル
は、オーバラップさせることができるので、先行命令の
影響で後続命令が待たされることがなければ、1サイク
ルごとに処理結果を得ることができる。
は、オーバラップさせることができるので、先行命令の
影響で後続命令が待たされることがなければ、1サイク
ルごとに処理結果を得ることができる。
【0016】図4において、オペランド・レジスタ10
1はオペランド・データを格納するためのものであり、
演算結果レジスタ102は、演算結果を格納するための
ものである。また、汎用演算器110は、各種演算を行
なうものである。なお、図中点線で示すタイミングで
は、後述するEEND信号の通知がなされていない。
1はオペランド・データを格納するためのものであり、
演算結果レジスタ102は、演算結果を格納するための
ものである。また、汎用演算器110は、各種演算を行
なうものである。なお、図中点線で示すタイミングで
は、後述するEEND信号の通知がなされていない。
【0017】図4に示す,,およびの命令は、1
サイクルで演算を実行する命令である。この場合、演算
制御部は、命令制御部へ演算終了信号(EEND信号)
を通知する必要はない。しかし、の命令のように2サ
イクル以上で演算を実行するマルチEサイクル命令は、
その最終の演算サイクル(Eサイクル)で、演算終了信
号(EEND信号)を命令制御部へ通知する必要があ
る。
サイクルで演算を実行する命令である。この場合、演算
制御部は、命令制御部へ演算終了信号(EEND信号)
を通知する必要はない。しかし、の命令のように2サ
イクル以上で演算を実行するマルチEサイクル命令は、
その最終の演算サイクル(Eサイクル)で、演算終了信
号(EEND信号)を命令制御部へ通知する必要があ
る。
【0018】図5と図6に、従来方式で演算オーバラッ
プ処理を行なう場合の、命令実行パイプラインの動作例
を示す。浮動小数点演算の実行には、2サイクル以上必
要な場合があり、さらに演算オーバラップ処理が可能な
場合は、演算オーバラップ処理サイクル(Vサイクル)
を使用する。
プ処理を行なう場合の、命令実行パイプラインの動作例
を示す。浮動小数点演算の実行には、2サイクル以上必
要な場合があり、さらに演算オーバラップ処理が可能な
場合は、演算オーバラップ処理サイクル(Vサイクル)
を使用する。
【0019】図5は、浮動小数点演算命令〜を、2
サイクルで実行する場合を示している。図中、浮動小数
点演算器210は、演算オーバラップ処理が可能な専用
の演算器であり、2サイクルで命令の実行をする。図5
に示す構成では、演算処理は2サイクルで実行されてい
るが、その演算結果は、演算オーバラップ処理により、
1サイクルおきに出力されている。
サイクルで実行する場合を示している。図中、浮動小数
点演算器210は、演算オーバラップ処理が可能な専用
の演算器であり、2サイクルで命令の実行をする。図5
に示す構成では、演算処理は2サイクルで実行されてい
るが、その演算結果は、演算オーバラップ処理により、
1サイクルおきに出力されている。
【0020】,,,およびの命令は、すべて専
用の浮動小数点演算器210で最終結果を得ることがで
きるので、一定したサイクルで演算の実行を継続するこ
とができる。従って、演算制御部から命令制御部へ、演
算終了信号(EEND信号)を通知する必要はない。
用の浮動小数点演算器210で最終結果を得ることがで
きるので、一定したサイクルで演算の実行を継続するこ
とができる。従って、演算制御部から命令制御部へ、演
算終了信号(EEND信号)を通知する必要はない。
【0021】図6は、浮動小数点演算命令を3サイクル
で実行する場合を示している。浮動小数点演算器310
は、演算オーバラップ処理可能な専用の演算器であり、
3サイクルで命令の実行をする。図6に示す構成では、
演算処理は3サイクルで実行されているが、その演算結
果は、演算オーバラップ処理により、2サイクルおきに
出力されている。
で実行する場合を示している。浮動小数点演算器310
は、演算オーバラップ処理可能な専用の演算器であり、
3サイクルで命令の実行をする。図6に示す構成では、
演算処理は3サイクルで実行されているが、その演算結
果は、演算オーバラップ処理により、2サイクルおきに
出力されている。
【0022】,,およびの命令は、浮動小数点演
算器310で最終演算結果を得ることができる命令であ
る。一方、の命令は、浮動小数点演算器310の演算
結果に特別の演算後処理が必要な命令である。そこで、
命令の実行に際しては、必要となった演算後処理をマ
イクロプログラムに割り出す前に、命令制御部への演算
終了信号(EEND信号)の通知を抑止する。それか
ら、マイクロ・プログラム制御による汎用演算器110
の操作を行ない、命令処理を続行する。
算器310で最終演算結果を得ることができる命令であ
る。一方、の命令は、浮動小数点演算器310の演算
結果に特別の演算後処理が必要な命令である。そこで、
命令の実行に際しては、必要となった演算後処理をマ
イクロプログラムに割り出す前に、命令制御部への演算
終了信号(EEND信号)の通知を抑止する。それか
ら、マイクロ・プログラム制御による汎用演算器110
の操作を行ない、命令処理を続行する。
【0023】処理が終了すると、最終演算結果を演算結
果の格納待ちレジスタ103に設定して、命令制御部へ
演算終了信号(EEND信号)を通知する。演算終了信
号(EEND信号)の通知によって、命令実行パイプラ
インは演算オーバラップ処理サイクル(Vサイクル)に
なる。演算オーバラップ処理サイクル(Vサイクル)で
は、演算結果の格納待ちレジスタ103の内容を、演算
結果レジスタ102に転送する。
果の格納待ちレジスタ103に設定して、命令制御部へ
演算終了信号(EEND信号)を通知する。演算終了信
号(EEND信号)の通知によって、命令実行パイプラ
インは演算オーバラップ処理サイクル(Vサイクル)に
なる。演算オーバラップ処理サイクル(Vサイクル)で
は、演算結果の格納待ちレジスタ103の内容を、演算
結果レジスタ102に転送する。
【0024】図6に示すように、この演算オーバラップ
処理サイクル(Vサイクル)は、1サイクルのみであ
る。そのため、演算オーバラップ処理が可能な専用の浮
動小数点演算器310を設けているのにもかかわらず、
最適な場合でも2サイクルおきにしか演算結果を得るこ
とができない。
処理サイクル(Vサイクル)は、1サイクルのみであ
る。そのため、演算オーバラップ処理が可能な専用の浮
動小数点演算器310を設けているのにもかかわらず、
最適な場合でも2サイクルおきにしか演算結果を得るこ
とができない。
【0025】そこで、演算オーバラップ処理のオーバラ
ップ度を深くとるという方法、すなわち演算オーバラッ
プ処理サイクル(Vサイクル)の多段化を行なう方法が
用いられる。例えば、演算オーバラップ処理サイクル
(Vサイクル)を、V1 サイクルと、V2 サイクルとに
変更する。
ップ度を深くとるという方法、すなわち演算オーバラッ
プ処理サイクル(Vサイクル)の多段化を行なう方法が
用いられる。例えば、演算オーバラップ処理サイクル
(Vサイクル)を、V1 サイクルと、V2 サイクルとに
変更する。
【0026】図7は、演算オーバラップ処理サイクル
(Vサイクル)をV1 サイクルと、V 2 サイクルとに変
更した場合の命令実行パイプラインの動作例を示してい
る。図中、第一の演算オーバラップ処理サイクルである
V1 サイクルは、格納待ちレジスタ104を有してい
る。また、第二の演算オーバラップ処理サイクルである
V 2 サイクルは、格納待ちレジスタ103を有してい
る。
(Vサイクル)をV1 サイクルと、V 2 サイクルとに変
更した場合の命令実行パイプラインの動作例を示してい
る。図中、第一の演算オーバラップ処理サイクルである
V1 サイクルは、格納待ちレジスタ104を有してい
る。また、第二の演算オーバラップ処理サイクルである
V 2 サイクルは、格納待ちレジスタ103を有してい
る。
【0027】の命令処理をマイクロ・プログラムに割
り出し、マイクロ・プログラム制御で汎用演算器110
を操作して演算結果を得るとき、その演算結果は、演算
オーバラップ処理サイクルが有する2段で構成する格納
待ちレジスタ104,103の内、格納待ちレジスタ1
04に設定する。
り出し、マイクロ・プログラム制御で汎用演算器110
を操作して演算結果を得るとき、その演算結果は、演算
オーバラップ処理サイクルが有する2段で構成する格納
待ちレジスタ104,103の内、格納待ちレジスタ1
04に設定する。
【0028】V1 サイクルでは、格納待ちレジスタ10
4の内容を格納待ちレジスタ103に転送する。V2 サ
イクルでは、格納待ちレジスタ103の内容を演算結果
レジスタ102に転送する。図7の構成例によれば、専
用の浮動小数点演算器310で最終演算結果を得られる
場合には、1サイクルごとに演算結果を出力することが
可能になる。
4の内容を格納待ちレジスタ103に転送する。V2 サ
イクルでは、格納待ちレジスタ103の内容を演算結果
レジスタ102に転送する。図7の構成例によれば、専
用の浮動小数点演算器310で最終演算結果を得られる
場合には、1サイクルごとに演算結果を出力することが
可能になる。
【0029】
【発明が解決しようとする課題】オペランド・データに
依存して、特別な演算後処理が必要となる場合を検出し
て、命令制御部に対する演算終了信号(以下、「EEN
D信号」という。)を制御する場合は、詳細にマイクロ
・プログラムへの割出し条件を分離すれば、無駄なマイ
クロ・プログラム割出しは発生しない。しかしながら、
EEND信号の作成論理が複雑になるので、命令制御部
に対するEEND信号の信号遅延が増大する。
依存して、特別な演算後処理が必要となる場合を検出し
て、命令制御部に対する演算終了信号(以下、「EEN
D信号」という。)を制御する場合は、詳細にマイクロ
・プログラムへの割出し条件を分離すれば、無駄なマイ
クロ・プログラム割出しは発生しない。しかしながら、
EEND信号の作成論理が複雑になるので、命令制御部
に対するEEND信号の信号遅延が増大する。
【0030】EEND信号は、直接に命令処理パイプラ
インの制御に使用するので、特に高速な命令処理装置で
は、EEND信号の信号遅延の増大は許容できない問題
である。よって、現実的に図7に示す構成を使用するこ
とはできない。
インの制御に使用するので、特に高速な命令処理装置で
は、EEND信号の信号遅延の増大は許容できない問題
である。よって、現実的に図7に示す構成を使用するこ
とはできない。
【0031】この問題は、図5に示す浮動小数点演算命
令を2サイクルで実行する場合でも同様であり、2サイ
クルの浮動小数点演算においては、EEND信号の信号
遅延のためにマイクロ・プログラム割出し処理が使用で
きない。
令を2サイクルで実行する場合でも同様であり、2サイ
クルの浮動小数点演算においては、EEND信号の信号
遅延のためにマイクロ・プログラム割出し処理が使用で
きない。
【0032】すなわち、図5に示す構成では、マイクロ
・プログラムへの割り出しを行なわない場合の処理を、
専用の浮動小数点演算器を用いて2サイクルで実行でき
たとしても、オペランド・データに依存して、マイクロ
・プログラムへの割り出しが必要な場合の処理があるの
で、実際に2サイクルの浮動小数点演算器を使用するこ
とはできない。
・プログラムへの割り出しを行なわない場合の処理を、
専用の浮動小数点演算器を用いて2サイクルで実行でき
たとしても、オペランド・データに依存して、マイクロ
・プログラムへの割り出しが必要な場合の処理があるの
で、実際に2サイクルの浮動小数点演算器を使用するこ
とはできない。
【0033】本発明は、このような従来の問題点に鑑
み、実行する命令のオペランド・データに依存して、マ
イクロ・プログラム割出し処理の必要性が生じた場合
に、命令制御部への命令実行パイプラインの停止および
その解除の指示を的確に、かつ迅速に行なうことによっ
て、演算オーバラップ処理による高速演算を実現する手
段を提供することを目的とする。
み、実行する命令のオペランド・データに依存して、マ
イクロ・プログラム割出し処理の必要性が生じた場合
に、命令制御部への命令実行パイプラインの停止および
その解除の指示を的確に、かつ迅速に行なうことによっ
て、演算オーバラップ処理による高速演算を実現する手
段を提供することを目的とする。
【0034】
【課題を解決するための手段】本発明によれば、上述の
目的は、前記特許請求の範囲に記載した手段にて達成さ
れる。
目的は、前記特許請求の範囲に記載した手段にて達成さ
れる。
【0035】すなわち、請求項1の発明は、演算サイク
ルの他に、多段化した演算オーバラップ処理サイクルを
持つ可変長の命令実行パイプラインを有すると共に、演
算オーバラップ動作可能な専用の浮動小数点演算器と、
汎用演算器とを擁し、演算制御をマイクロプログラムで
行なう命令処理装置において、EEND信号とは別の演
算オーバラップ処理サイクルの演算終了信号を設け、演
算オーバラップ処理においては、演算オーバラップ動作
可能な専用の浮動小数点演算器を用いて、多段化した演
算オーバラップ処理サイクルで演算オーバラップ処理の
演算を実行し、その実行中に、演算オーバラップ処理サ
イクルを延長してマイクロプログラム割出し処理を実行
することとなった場合には、演算オーバラップ処理サイ
クルの前記演算終了信号を発行するタイミングを制御し
て命令列の処理を進めていく高速演算処理方式である。
ルの他に、多段化した演算オーバラップ処理サイクルを
持つ可変長の命令実行パイプラインを有すると共に、演
算オーバラップ動作可能な専用の浮動小数点演算器と、
汎用演算器とを擁し、演算制御をマイクロプログラムで
行なう命令処理装置において、EEND信号とは別の演
算オーバラップ処理サイクルの演算終了信号を設け、演
算オーバラップ処理においては、演算オーバラップ動作
可能な専用の浮動小数点演算器を用いて、多段化した演
算オーバラップ処理サイクルで演算オーバラップ処理の
演算を実行し、その実行中に、演算オーバラップ処理サ
イクルを延長してマイクロプログラム割出し処理を実行
することとなった場合には、演算オーバラップ処理サイ
クルの前記演算終了信号を発行するタイミングを制御し
て命令列の処理を進めていく高速演算処理方式である。
【0036】また、請求項2の発明は、オペランド・レ
ジスタの内容を退避するためのオペランド退避レジスタ
を設けると共に、演算オーバラップ処理サイクルを延長
してマイクロプログラム割出し処理を実行することとな
った命令に後続する命令のオペランド・データを、その
マイクロプログラム割出し処理の実行開始に際し、必要
に応じてオペランド・レジスタから前記オペランド退避
レジスタへ転送し、マイクロ・プログラム割出し処理の
実行終了に際しては、前記オペランド退避レジスタに退
避していたオペランド・データを、オペランド・レジス
タに復元する高速演算処理方式である。
ジスタの内容を退避するためのオペランド退避レジスタ
を設けると共に、演算オーバラップ処理サイクルを延長
してマイクロプログラム割出し処理を実行することとな
った命令に後続する命令のオペランド・データを、その
マイクロプログラム割出し処理の実行開始に際し、必要
に応じてオペランド・レジスタから前記オペランド退避
レジスタへ転送し、マイクロ・プログラム割出し処理の
実行終了に際しては、前記オペランド退避レジスタに退
避していたオペランド・データを、オペランド・レジス
タに復元する高速演算処理方式である。
【0037】
【作用】本発明では、演算サイクル(Eサイクル)の終
了を通知する従来の演算終了信号に加え、新たに演算オ
ーバラップ処理サイクルの演算終了信号(以下、「VE
ND信号」という。)を設ける。
了を通知する従来の演算終了信号に加え、新たに演算オ
ーバラップ処理サイクルの演算終了信号(以下、「VE
ND信号」という。)を設ける。
【0038】そして、演算オーバラップ処理を行なう命
令では、演算オーバラップ処理の第一サイクル(V1 サ
イクル)で、VEND信号を命令制御部に通知すること
とする。このとき、EEND信号は通知しない。
令では、演算オーバラップ処理の第一サイクル(V1 サ
イクル)で、VEND信号を命令制御部に通知すること
とする。このとき、EEND信号は通知しない。
【0039】図1と図2に、演算サイクル(Eサイク
ル)の終了を通知する従来のEEND信号の代わりに、
本発明によるVEND信号を設け、このVEND信号を
使用した場合における命令実行パイプラインの動作例を
示す。なお、図中、CSAは、コントロール・ストアの
アドレス・レジスタを示し、CSDは、コントロール・
ストアの読み出し・レジスタを示す。
ル)の終了を通知する従来のEEND信号の代わりに、
本発明によるVEND信号を設け、このVEND信号を
使用した場合における命令実行パイプラインの動作例を
示す。なお、図中、CSAは、コントロール・ストアの
アドレス・レジスタを示し、CSDは、コントロール・
ストアの読み出し・レジスタを示す。
【0040】図1は、浮動小数点演算命令を2サイクル
で実行する場合を示す図である。本構成例で明らかなよ
うに、従来では2サイクルの浮動小数点演算において
は、EEND信号の信号遅延のためにマイクロ・プログ
ラム割出し処理を適用できなかったが、本発明によるV
END信号を使用することで、2サイクルの浮動小数点
演算においてもマイクロ・プログラム割出し処理が可能
になった。
で実行する場合を示す図である。本構成例で明らかなよ
うに、従来では2サイクルの浮動小数点演算において
は、EEND信号の信号遅延のためにマイクロ・プログ
ラム割出し処理を適用できなかったが、本発明によるV
END信号を使用することで、2サイクルの浮動小数点
演算においてもマイクロ・プログラム割出し処理が可能
になった。
【0041】図2は、浮動小数点演算命令を3サイクル
で実行する場合を示す図である。図2に示すように、多
段化した演算オーバラップ処理サイクルを持つ命令処理
パイプラインにおいても、マイクロ・プログラム割出し
処理が可能になった。
で実行する場合を示す図である。図2に示すように、多
段化した演算オーバラップ処理サイクルを持つ命令処理
パイプラインにおいても、マイクロ・プログラム割出し
処理が可能になった。
【0042】しかし、VEND信号を使用することでい
くつかの解決しなければならない問題もある。VEND
信号を使用する場合、マイクロ・プログラム割出し処理
はV 1 サイクルで実行する。この間、図1または図2に
示す後続命令は他の条件で待たれることがなければ、
演算サイクル(Eサイクル)で待つことになる。
くつかの解決しなければならない問題もある。VEND
信号を使用する場合、マイクロ・プログラム割出し処理
はV 1 サイクルで実行する。この間、図1または図2に
示す後続命令は他の条件で待たれることがなければ、
演算サイクル(Eサイクル)で待つことになる。
【0043】従って、この後続命令を演算サイクル
(Eサイクル)で待たせるための手段を考えなければな
らない。例えば、マイクロ・プログラム割出し処理にお
いて、特殊処理や、演算結果の後処理を行なうときは、
命令制御部が、演算制御部に対する指令コードを、後続
命令エントリに指定することとする。
(Eサイクル)で待たせるための手段を考えなければな
らない。例えば、マイクロ・プログラム割出し処理にお
いて、特殊処理や、演算結果の後処理を行なうときは、
命令制御部が、演算制御部に対する指令コードを、後続
命令エントリに指定することとする。
【0044】また、必要に応じて後続命令のオペラン
ド・データを、オペランド・レジスタ101から退避す
るためのレジスタ105を設け、ここに後続命令のオ
ペランド・データを保持しておく。そして、マイクロ・
プログラム割出し処理が終了するときには、オペランド
退避レジスタ105の内容をオペランド・レジスタ10
1に復元する。
ド・データを、オペランド・レジスタ101から退避す
るためのレジスタ105を設け、ここに後続命令のオ
ペランド・データを保持しておく。そして、マイクロ・
プログラム割出し処理が終了するときには、オペランド
退避レジスタ105の内容をオペランド・レジスタ10
1に復元する。
【0045】マイクロ・プログラム割出し処理が終了し
たら、後続命令の指令コードでコントロールストア
(CS)からマイクロ・コードを読み出し、読み出した
マイクロ・コードを解読して後続命令の実行を開始す
る。
たら、後続命令の指令コードでコントロールストア
(CS)からマイクロ・コードを読み出し、読み出した
マイクロ・コードを解読して後続命令の実行を開始す
る。
【0046】
【実施例】図3は、本発明の一実施例を示す図である。
図中、オペランド・レジスタ101−1,101−2,
101−3、演算結果レジスタ102、2段構成の格納
待ちレジスタ103,104、オペランド退避レジスタ
105−1,105−2,105−3については、すで
に他の図で説明したものと同様の構成である。
図中、オペランド・レジスタ101−1,101−2,
101−3、演算結果レジスタ102、2段構成の格納
待ちレジスタ103,104、オペランド退避レジスタ
105−1,105−2,105−3については、すで
に他の図で説明したものと同様の構成である。
【0047】マイクロ・プログラムの作業レジスタ10
6−1,106−2,106−3は、オペランド・デー
タやマイクロ・プログラム処理の途中結果を保持するも
のであり、セレクタ回路712は、ABUSまたはBB
USの選択を行なうものである。
6−1,106−2,106−3は、オペランド・デー
タやマイクロ・プログラム処理の途中結果を保持するも
のであり、セレクタ回路712は、ABUSまたはBB
USの選択を行なうものである。
【0048】浮動小数点演算器210は、演算オーバラ
ップ動作可能な専用の演算器であり、2サイクルで命令
を処理する。浮動小数点演算器310は、演算オーバラ
ップ動作可能な専用の演算器であり、3サイクルで命令
を処理する。また、汎用演算器110は、マイクロ・プ
ログラム割出し処理の演算など、各種演算を行なうもの
である。
ップ動作可能な専用の演算器であり、2サイクルで命令
を処理する。浮動小数点演算器310は、演算オーバラ
ップ動作可能な専用の演算器であり、3サイクルで命令
を処理する。また、汎用演算器110は、マイクロ・プ
ログラム割出し処理の演算など、各種演算を行なうもの
である。
【0049】演算結果1101は、汎用演算器110の
演算結果である。また、演算結果2101は、2サイク
ルの浮動小数点演算器210の演算結果であり、演算結
果3101は、3サイクルの浮動小数点演算器310の
演算結果である。
演算結果である。また、演算結果2101は、2サイク
ルの浮動小数点演算器210の演算結果であり、演算結
果3101は、3サイクルの浮動小数点演算器310の
演算結果である。
【0050】ステータス1102は、汎用演算器110
のオペランド・ステータス,演算結果ステータスであ
る。また、ステータス2102は、浮動小数点演算器2
10のオペランド・ステータス,演算結果ステータスで
あり、ステータス3102は、浮動小数点演算器310
のオペランド・ステータス,演算結果ステータスであ
る。
のオペランド・ステータス,演算結果ステータスであ
る。また、ステータス2102は、浮動小数点演算器2
10のオペランド・ステータス,演算結果ステータスで
あり、ステータス3102は、浮動小数点演算器310
のオペランド・ステータス,演算結果ステータスであ
る。
【0051】コントロール・ストア(以下、「CS」と
いう。)710は、演算制御部のマイクロ・プログラム
を格納するものである。アドレス・レジスタ701は、
CS710のアドレス・レジスタ(以下、「CSA」と
いう。)であり、マイクロコード・アドレス7101
は、マルチEサイクルにおけるCS710の後続のマイ
クロコード・アドレスである。
いう。)710は、演算制御部のマイクロ・プログラム
を格納するものである。アドレス・レジスタ701は、
CS710のアドレス・レジスタ(以下、「CSA」と
いう。)であり、マイクロコード・アドレス7101
は、マルチEサイクルにおけるCS710の後続のマイ
クロコード・アドレスである。
【0052】また、エントリ・アドレス7102は、マ
イクロプログラム割出し処理のエントリアドレスであ
り、読み出し・レジスタ(CSD)702は、CS71
0の読み出しレジスタである。
イクロプログラム割出し処理のエントリアドレスであ
り、読み出し・レジスタ(CSD)702は、CS71
0の読み出しレジスタである。
【0053】ステータス制御回路711は、状況に応じ
て各種ステータスを制御するものである。EEND信号
7111、及びVEND信号7112については、既に
詳細に説明した。制御信号7113は、CSA701の
制御信号である。
て各種ステータスを制御するものである。EEND信号
7111、及びVEND信号7112については、既に
詳細に説明した。制御信号7113は、CSA701の
制御信号である。
【0054】命令実行パイプライン制御回路750は、
命令処理装置のパイプライン動作を制御するものであ
る。指令コード7501は、演算制御部に対する指令コ
ードであり、レジスタ・スタック760は、各種のレジ
スタから構成されるものである。オペランド・キャッシ
ュ770は、オペランド・データを保持する高速メモリ
である。7601は、レジスタ・スタック760から読
出したオペランド・データである。7602は、レジス
タ・スタック760から読出したオペランド・データで
ある。7701は、オペランド・キャッシュ770から
読出したオペランド・データである。1021は、演算
結果レジスタ102からの演算結果データである。
命令処理装置のパイプライン動作を制御するものであ
る。指令コード7501は、演算制御部に対する指令コ
ードであり、レジスタ・スタック760は、各種のレジ
スタから構成されるものである。オペランド・キャッシ
ュ770は、オペランド・データを保持する高速メモリ
である。7601は、レジスタ・スタック760から読
出したオペランド・データである。7602は、レジス
タ・スタック760から読出したオペランド・データで
ある。7701は、オペランド・キャッシュ770から
読出したオペランド・データである。1021は、演算
結果レジスタ102からの演算結果データである。
【0055】
【発明の効果】以上説明したように、本発明によれば、
多段化した演算オーバラップ処理サイクルを持つ可変長
の命令処理パイプラインと、演算オーバラップ動作可能
な専用の浮動小数点演算器とを具備する構成において、
VEND信号を設けているので、多段化した演算オーバ
ラップ処理サイクルを持つ命令処理パイプラインにおい
ても、マイクロ・プログラムの割出し処理を実現するこ
とができる。
多段化した演算オーバラップ処理サイクルを持つ可変長
の命令処理パイプラインと、演算オーバラップ動作可能
な専用の浮動小数点演算器とを具備する構成において、
VEND信号を設けているので、多段化した演算オーバ
ラップ処理サイクルを持つ命令処理パイプラインにおい
ても、マイクロ・プログラムの割出し処理を実現するこ
とができる。
【0056】また、多段化した演算オーバラップ処理
と、専用の浮動小数点演算器とによって高速演算処理を
実行する一方で、特殊処理や、演算結果の後処理につい
ては、マイクロ・プログラム制御で処理することによっ
て、専用の浮動小数点演算器による高速演算処理と、適
切なマイクロ・プログラム処理との両立を達成すること
ができる。よって、専用の浮動小数点演算器を活かす適
切な構成を実現することができるという効果がある。
と、専用の浮動小数点演算器とによって高速演算処理を
実行する一方で、特殊処理や、演算結果の後処理につい
ては、マイクロ・プログラム制御で処理することによっ
て、専用の浮動小数点演算器による高速演算処理と、適
切なマイクロ・プログラム処理との両立を達成すること
ができる。よって、専用の浮動小数点演算器を活かす適
切な構成を実現することができるという効果がある。
【図1】本発明による命令実行パイプラインの動作例を
示す図である。
示す図である。
【図2】本発明による命令実行パイプラインの動作例を
示す図である。
示す図である。
【図3】本発明の一実施例を示す図である。
【図4】従来の命令実行パイプラインの動作例を示す図
である。
である。
【図5】従来の命令実行パイプラインの動作例を示す図
である。
である。
【図6】従来の命令実行パイプラインの動作例を示す図
である。
である。
【図7】従来の命令実行パイプラインの動作例を示す図
である。
である。
101,101−1,101−2,101−3 オペラ
ンド・レジスタ 102 演算結果レジスタ 103,104 格納待ちレジスタ 105,105−1,105−2,105−3 オペラ
ンド退避レジスタ 106−1,106−2,106−3 作業レジスタ 110 汎用演算器 210,310 浮動小数点演算器 701 アドレス・レジスタ 702 読み出し・レジスタ 710 コントロール・ストア 711 ステータス制御回路 712 セレクタ回路 750 命令実行パイプライン制御回路 760 レジスタ・スタック 770 オペランド・キャッシュ 1101,2101,3101 演算結果 1102,2102,3102 ステータス 7101 マイクロコード・アドレス 7102 エントリ・アドレス 7111 EEND信号 7112 VEND信号 7113 制御信号 7501 指令コード 7601,7602,7701 オペランド・データ 1021 演算結果データ
ンド・レジスタ 102 演算結果レジスタ 103,104 格納待ちレジスタ 105,105−1,105−2,105−3 オペラ
ンド退避レジスタ 106−1,106−2,106−3 作業レジスタ 110 汎用演算器 210,310 浮動小数点演算器 701 アドレス・レジスタ 702 読み出し・レジスタ 710 コントロール・ストア 711 ステータス制御回路 712 セレクタ回路 750 命令実行パイプライン制御回路 760 レジスタ・スタック 770 オペランド・キャッシュ 1101,2101,3101 演算結果 1102,2102,3102 ステータス 7101 マイクロコード・アドレス 7102 エントリ・アドレス 7111 EEND信号 7112 VEND信号 7113 制御信号 7501 指令コード 7601,7602,7701 オペランド・データ 1021 演算結果データ
Claims (2)
- 【請求項1】演算サイクルの他に、多段化した演算オー
バラップ処理サイクルを持つ可変長の命令実行パイプラ
インを有すると共に、演算オーバラップ動作可能な専用
の浮動小数点演算器と、汎用演算器とを擁し、演算制御
をマイクロプログラムで行なう命令処理装置において、 演算サイクルの演算終了信号とは別の演算オーバラップ
処理サイクルの演算終了信号を設け、演算オーバラップ
処理においては、演算オーバラップ動作可能な専用の浮
動小数点演算器を用いて、多段化した演算オーバラップ
処理サイクルで演算オーバラップ処理の演算を実行し、 その実行中に、演算オーバラップ処理サイクルを延長し
てマイクロプログラム割出し処理を実行することとなっ
た場合には、演算オーバラップ処理サイクルの前記演算
終了信号を発行するタイミングを制御して命令列の処理
を進めていくことを特徴とする高速演算処理方式。 - 【請求項2】オペランド・レジスタの内容を退避するた
めのオペランド退避レジスタを設けると共に、 演算オーバラップ処理サイクルを延長してマイクロプロ
グラム割出し処理を実行することとなった命令に後続す
る命令のオペランド・データを、そのマイクロプログラ
ム割出し処理の実行開始に際し、必要に応じてオペラン
ド・レジスタから前記オペランド退避レジスタへ転送
し、マイクロプラグラム割出し処理の実行終了に際して
は、前記オペランド退避レジスタに退避していたオペラ
ンド・データを、オペランド・レジスタに復元する請求
項1記載の高速演算処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12848892A JP2761324B2 (ja) | 1992-05-21 | 1992-05-21 | 高速演算処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12848892A JP2761324B2 (ja) | 1992-05-21 | 1992-05-21 | 高速演算処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05324319A JPH05324319A (ja) | 1993-12-07 |
JP2761324B2 true JP2761324B2 (ja) | 1998-06-04 |
Family
ID=14985995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12848892A Expired - Fee Related JP2761324B2 (ja) | 1992-05-21 | 1992-05-21 | 高速演算処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2761324B2 (ja) |
-
1992
- 1992-05-21 JP JP12848892A patent/JP2761324B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05324319A (ja) | 1993-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04329435A (ja) | 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 | |
JPH0250260A (ja) | ベクタープロセッサの例外報告機構 | |
JP2761324B2 (ja) | 高速演算処理方式 | |
JPH06295243A (ja) | データ処理装置 | |
JPH1196006A (ja) | 情報処理装置 | |
JP4311087B2 (ja) | プロセッサおよび例外処理方法 | |
JPH0123812B2 (ja) | ||
JPH0797326B2 (ja) | 情報処理装置 | |
JPS61211746A (ja) | プログラム実行制御方式 | |
JPS59220844A (ja) | 命令再実行制御方式 | |
JPS59178547A (ja) | 命令リトライ方式 | |
JPH0279122A (ja) | 浮動小数点演算機構 | |
JPH0916399A (ja) | 計算機 | |
JPS60247743A (ja) | パイプライン演算制御装置 | |
JPS61288232A (ja) | 出力命令制御方式 | |
JPH052485A (ja) | パイプライン制御方式 | |
JP2000305782A (ja) | 演算装置 | |
JPH05250161A (ja) | マイクロコンピュータ装置 | |
JPH03154929A (ja) | 中央処理装置 | |
JPS60247742A (ja) | パイプライン演算制御装置 | |
JPS6239779B2 (ja) | ||
JPH0769800B2 (ja) | データ処理装置 | |
JPH0675789A (ja) | 情報処理装置 | |
JPH03108061A (ja) | ベクトル演算装置 | |
JPH04116726A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19980310 |
|
LAPS | Cancellation because of no payment of annual fees |