JPH0553805A - 電子計算機 - Google Patents
電子計算機Info
- Publication number
- JPH0553805A JPH0553805A JP21764191A JP21764191A JPH0553805A JP H0553805 A JPH0553805 A JP H0553805A JP 21764191 A JP21764191 A JP 21764191A JP 21764191 A JP21764191 A JP 21764191A JP H0553805 A JPH0553805 A JP H0553805A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- parallel
- executed
- parallel execution
- 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)【要約】
【目的】本発明は、命令列を構成する各命令に、該命令
と並列に実行可能な命令数情報を付加するとともに、こ
の情報に基づいて命令の並列実行を制御することを特徴
としている。 【構成】命令列を構成する命令を、これら命令の種類に
対応する演算部により同時実行可能にしたもので、各命
令に該命令と並列に実行可能な命令数情報を付加して、
これら命令を命令バッファ23に複数保持し、これら保
持された複数の命令の先頭命令に付加された並列実行可
能命令数情報に基づいて並列実行の可能性を並列実行可
能性判定部25で判定するとともに、上記命令バッファ
23に保持された各命令の種類に対応する演算部を判定
し、この判定結果と上記並列実行可能性判定部25の判
定結果により並列実行制御部26にて上記複数の命令に
対する並列実行を制御するようにしている。
と並列に実行可能な命令数情報を付加するとともに、こ
の情報に基づいて命令の並列実行を制御することを特徴
としている。 【構成】命令列を構成する命令を、これら命令の種類に
対応する演算部により同時実行可能にしたもので、各命
令に該命令と並列に実行可能な命令数情報を付加して、
これら命令を命令バッファ23に複数保持し、これら保
持された複数の命令の先頭命令に付加された並列実行可
能命令数情報に基づいて並列実行の可能性を並列実行可
能性判定部25で判定するとともに、上記命令バッファ
23に保持された各命令の種類に対応する演算部を判定
し、この判定結果と上記並列実行可能性判定部25の判
定結果により並列実行制御部26にて上記複数の命令に
対する並列実行を制御するようにしている。
Description
【0001】
【産業上の利用分野】本発明は、命令列を構成する各命
令を並列的に実行可能にした電子計算機に関する。
令を並列的に実行可能にした電子計算機に関する。
【0002】
【従来の技術】一般に、電子計算機の命令列は、直列的
に逐一演算されることを前提にして構成されており、こ
のような命令列を演算するには、命令列より各命令を1
個づつ取り出しながら演算実行するようになっている。
に逐一演算されることを前提にして構成されており、こ
のような命令列を演算するには、命令列より各命令を1
個づつ取り出しながら演算実行するようになっている。
【0003】ところで、最近、このような命令系での処
理を高速化することが考えられており、その一例とし
て、パイプライン技術が導入されている。このパイプラ
イン技術は、命令の実行を複数の段に分解し、これら分
解された実行段を単位として、複数の命令を同時に演算
するようにしたものである。これにより、命令系の処理
のサイクルタイムを短縮することが可能となり、命令列
全体の処理時間を短縮して高速化を可能にしている。
理を高速化することが考えられており、その一例とし
て、パイプライン技術が導入されている。このパイプラ
イン技術は、命令の実行を複数の段に分解し、これら分
解された実行段を単位として、複数の命令を同時に演算
するようにしたものである。これにより、命令系の処理
のサイクルタイムを短縮することが可能となり、命令列
全体の処理時間を短縮して高速化を可能にしている。
【0004】しかしながら、このようなパイプライン技
術を採用しても、実行を開始される命令は1サイクルあ
たり1個であり、これを越える命令実行の高速化は不可
能であった。
術を採用しても、実行を開始される命令は1サイクルあ
たり1個であり、これを越える命令実行の高速化は不可
能であった。
【0005】これに対して、近年、命令単位で並列実行
を可能とする技術が導入されるようになっており、1サ
イクルあたりの実行命令数が1を越えることも可能にな
っている。
を可能とする技術が導入されるようになっており、1サ
イクルあたりの実行命令数が1を越えることも可能にな
っている。
【0006】このような技術の代表的なものとして、V
LIW(Very Long Instruction
Word)技術とスパースカラ技術が知られている。
VLIW技術は、あらかじめ定められた数の複数の命令
を1つの実行単位として定義し、計算機は、これらの複
数の命令を必ず同時に実行するようにしている。この場
合、計算機は、複数の命令が同時に実行可能であるか否
かを判定する必要がないので、制御が簡単にでき、少な
いハードウェアで実現でき、また、サイクルタイムを短
くすることも可能になる。
LIW(Very Long Instruction
Word)技術とスパースカラ技術が知られている。
VLIW技術は、あらかじめ定められた数の複数の命令
を1つの実行単位として定義し、計算機は、これらの複
数の命令を必ず同時に実行するようにしている。この場
合、計算機は、複数の命令が同時に実行可能であるか否
かを判定する必要がないので、制御が簡単にでき、少な
いハードウェアで実現でき、また、サイクルタイムを短
くすることも可能になる。
【0007】しかしながら、このようなVLIW技術で
は、処理の並列性をコンパイラまたは人手により判定
し、あらかじめ命令の割り当てを行っておかなければな
らず、また、命令の都合により定めらた数の命令を同時
に実行できない場合には、NOP命令で埋めることによ
って定められた数を満足させる必要がある。
は、処理の並列性をコンパイラまたは人手により判定
し、あらかじめ命令の割り当てを行っておかなければな
らず、また、命令の都合により定めらた数の命令を同時
に実行できない場合には、NOP命令で埋めることによ
って定められた数を満足させる必要がある。
【0008】図7に、命令列の一例を示し、このような
命令列を整数および論理命令演算部、メモリアクセス命
令演算部、分岐命令演算部の3つの演算部を有するVL
IW型電子計算機で実行する場合、図8に示すような命
令列となり、上述したNOP命令が多数使用されてい
る。
命令列を整数および論理命令演算部、メモリアクセス命
令演算部、分岐命令演算部の3つの演算部を有するVL
IW型電子計算機で実行する場合、図8に示すような命
令列となり、上述したNOP命令が多数使用されてい
る。
【0009】ところが、このようなNOP命令を多数使
用することは、メモリの使用効率が悪化し、特に、キャ
ッシュ・メモリを使用している計算機システムでは、キ
ャッシュ・メモリの記憶領域が不必要に浪費されて、ヒ
ット率が低くなるため計算機システム全体の性能低下を
きたす欠点がある。このことは、並列度の低い処理を行
う場合、命令の最適割当能力の低いコンパイラを用いる
場合、あるいは人手による最適化が十分でない場合など
に、傾向が著しくなり、計算機自体の持っている処理能
力が十分に発揮できなくなることがある。また、各命令
の定義がハードウェアに依存するようになっているた
め、異なるハードウェアで同一の命令列を実行すること
が困難であり、コンパチビリティが保ちにくい欠点もあ
った。例えば、図7に示した命令列を、整数命令演算
部、論理命令演算部、メモリアクセス命令演算部、分岐
命令演算部の4つの演算部を有するVLIW型電子計算
機で実行しようとすると、その命令列は、図9に示すよ
うになり、上述した図7に示した命令列とまったく異な
るものとなり、これらの間でのコンパチビリティが成立
しないことからも明らかである。
用することは、メモリの使用効率が悪化し、特に、キャ
ッシュ・メモリを使用している計算機システムでは、キ
ャッシュ・メモリの記憶領域が不必要に浪費されて、ヒ
ット率が低くなるため計算機システム全体の性能低下を
きたす欠点がある。このことは、並列度の低い処理を行
う場合、命令の最適割当能力の低いコンパイラを用いる
場合、あるいは人手による最適化が十分でない場合など
に、傾向が著しくなり、計算機自体の持っている処理能
力が十分に発揮できなくなることがある。また、各命令
の定義がハードウェアに依存するようになっているた
め、異なるハードウェアで同一の命令列を実行すること
が困難であり、コンパチビリティが保ちにくい欠点もあ
った。例えば、図7に示した命令列を、整数命令演算
部、論理命令演算部、メモリアクセス命令演算部、分岐
命令演算部の4つの演算部を有するVLIW型電子計算
機で実行しようとすると、その命令列は、図9に示すよ
うになり、上述した図7に示した命令列とまったく異な
るものとなり、これらの間でのコンパチビリティが成立
しないことからも明らかである。
【0010】一方、スパースカラー技術は、従来と同様
の逐一実行を前提とした命令列を解釈しながら並列実行
の可能性を調べるハードウェアを備え、並列実行可能な
場合には、これら複数の命令を並列に実行するように制
御するものである。
の逐一実行を前提とした命令列を解釈しながら並列実行
の可能性を調べるハードウェアを備え、並列実行可能な
場合には、これら複数の命令を並列に実行するように制
御するものである。
【0011】したがって、このようなスパースカラー技
術によれば、図7で述べた命令列をそのまま実行するこ
とが可能になり、命令列中に不必要なNOP命令が挿入
されることがないためVLIW型電子計算機で問題とな
っている性能低下は起こらない。また、命令列は、逐次
実行を前提としたものであるから、並列実行を行わない
ハードウェアを含めて異なるハードウェアにより同一の
命令列が実行できるようになり、コンパチビリティの問
題を生じない。
術によれば、図7で述べた命令列をそのまま実行するこ
とが可能になり、命令列中に不必要なNOP命令が挿入
されることがないためVLIW型電子計算機で問題とな
っている性能低下は起こらない。また、命令列は、逐次
実行を前提としたものであるから、並列実行を行わない
ハードウェアを含めて異なるハードウェアにより同一の
命令列が実行できるようになり、コンパチビリティの問
題を生じない。
【0012】ところが、このようなスパースカラー技術
を採用したものは、並列実行可能性を調べるのに、各命
令に必要な演算器が競合するか否かを判定する他に、演
算で使用されるオペランドの間に存在関係がある可否か
を判定する必要があり、このため一般に、論理手段が複
雑になり、ハードウェアが増大し、コストが高くなる欠
点があった。また、複雑な論理手段を使用するためサイ
クルタイムを短縮することが困難になるとともに、性能
の向上を計る上での障害にもなっていた。
を採用したものは、並列実行可能性を調べるのに、各命
令に必要な演算器が競合するか否かを判定する他に、演
算で使用されるオペランドの間に存在関係がある可否か
を判定する必要があり、このため一般に、論理手段が複
雑になり、ハードウェアが増大し、コストが高くなる欠
点があった。また、複雑な論理手段を使用するためサイ
クルタイムを短縮することが困難になるとともに、性能
の向上を計る上での障害にもなっていた。
【0013】
【発明が解決しようとする課題】このように従来のVL
IW技術を採用したものは、命令列中にNOP命令が多
数使用されるため、メモリの使用効率が悪化し、計算機
としての処理能力を十分発揮できないとともに、異なる
ハードウェアで同一の命令列を実行することが困難であ
ることから、コンパチビリティが保ちにくい欠点があ
り、一方、スパースカラー技術を採用したものでは、並
列実行可能性を調べるための論理手段が複雑になること
から、ハードウェアが増大し、コストが高くなり、さら
に、サイクルタイムを短縮することが困難で、計算機の
性能向上を計ることが難しい欠点があった。
IW技術を採用したものは、命令列中にNOP命令が多
数使用されるため、メモリの使用効率が悪化し、計算機
としての処理能力を十分発揮できないとともに、異なる
ハードウェアで同一の命令列を実行することが困難であ
ることから、コンパチビリティが保ちにくい欠点があ
り、一方、スパースカラー技術を採用したものでは、並
列実行可能性を調べるための論理手段が複雑になること
から、ハードウェアが増大し、コストが高くなり、さら
に、サイクルタイムを短縮することが困難で、計算機の
性能向上を計ることが難しい欠点があった。
【0014】本発明は、上記事情に鑑みてなされたもの
で、メモリの使用効率を高めることができるとともに、
命令列のコンパチビリティを保つこともでき、加えてハ
ードウェアの小形化をも可能にした電子計算機を提供す
ることを目的とする。
で、メモリの使用効率を高めることができるとともに、
命令列のコンパチビリティを保つこともでき、加えてハ
ードウェアの小形化をも可能にした電子計算機を提供す
ることを目的とする。
【0015】
【課題を解決するための手段】本発明の電子計算機は、
命令列を構成する命令を、これら命令の種類に対応する
演算手段により同時実行可能にしたものであって、各命
令に該命令と並列に実行可能な命令数情報を付加し、こ
れら命令を複数保持する命令列保持手段、この命令列保
持手段に保持された複数の命令のうち先頭命令に付加さ
れた並列実行可能命令数情報に基づいて並列実行の可能
性を判定する並列実行可能性判定手段、命令列保持手段
に保持された各命令の種類に対応する演算手段を判定す
るとともに、これら判定結果と上記並列実行可能性判定
手段の判定結果より上記複数の命令に対する並列実行を
制御する並列実行制御手段により構成している。
命令列を構成する命令を、これら命令の種類に対応する
演算手段により同時実行可能にしたものであって、各命
令に該命令と並列に実行可能な命令数情報を付加し、こ
れら命令を複数保持する命令列保持手段、この命令列保
持手段に保持された複数の命令のうち先頭命令に付加さ
れた並列実行可能命令数情報に基づいて並列実行の可能
性を判定する並列実行可能性判定手段、命令列保持手段
に保持された各命令の種類に対応する演算手段を判定す
るとともに、これら判定結果と上記並列実行可能性判定
手段の判定結果より上記複数の命令に対する並列実行を
制御する並列実行制御手段により構成している。
【0016】
【作用】この結果、本発明によれば命令列を構成する各
命令に該命令と並列に実行可能な命令数情報を付加し、
この情報に基づいて並列実行の可能性を判定するととも
に、この判定結果により命令の並列実行を制御するよう
にできるので、命令列中に並列実行を可能にするための
不必要な命令を挿入するのを不要にできる。しかも、V
LIW型電子計算機の場合で演算部の数が変更される場
合も、命令列の変更を行うことなく対処でき、命令列の
コンパチビリティの維持も確保可能となる。さらに、各
命令に付加される実行可能命令数情報により命令の並列
実行可能性が調べられるようになることで、オペランド
の依存関係から命令の並列実行可能性を調べるためのハ
ードウェアなどを不必要なものにすることもできる。
命令に該命令と並列に実行可能な命令数情報を付加し、
この情報に基づいて並列実行の可能性を判定するととも
に、この判定結果により命令の並列実行を制御するよう
にできるので、命令列中に並列実行を可能にするための
不必要な命令を挿入するのを不要にできる。しかも、V
LIW型電子計算機の場合で演算部の数が変更される場
合も、命令列の変更を行うことなく対処でき、命令列の
コンパチビリティの維持も確保可能となる。さらに、各
命令に付加される実行可能命令数情報により命令の並列
実行可能性が調べられるようになることで、オペランド
の依存関係から命令の並列実行可能性を調べるためのハ
ードウェアなどを不必要なものにすることもできる。
【0017】
【実施例】以下、本発明の一実施例を図面にしたがい説
明する。
明する。
【0018】まず、図1は同実施例の電子計算機に用い
られる命令語の構成を示すもので、この命令語は、命令
の種類を表すオペレーションコードOPを保持するビッ
トフィールド11、並列実行可能な命令数nを保持する
ビットフィールド12および命令のオペランドOPR情
報を保持するビットフィールド13からなっている。
られる命令語の構成を示すもので、この命令語は、命令
の種類を表すオペレーションコードOPを保持するビッ
トフィールド11、並列実行可能な命令数nを保持する
ビットフィールド12および命令のオペランドOPR情
報を保持するビットフィールド13からなっている。
【0019】ここで、ビットフィールド11、13に保
持されるオペレーションコードOPおよびオペランドO
PRは、従来から周知のものであり、ここでは詳述しな
い。また、ビットフィールド12に保持される並列実行
可能な命令数nは、所定ビット数から構成されるが、こ
の場合のビットフィールド12の幅、並列実行可能命令
数を表すビット並びの定義は、さまざまな形で用いるこ
とができる。
持されるオペレーションコードOPおよびオペランドO
PRは、従来から周知のものであり、ここでは詳述しな
い。また、ビットフィールド12に保持される並列実行
可能な命令数nは、所定ビット数から構成されるが、こ
の場合のビットフィールド12の幅、並列実行可能命令
数を表すビット並びの定義は、さまざまな形で用いるこ
とができる。
【0020】そして、このように構成される命令語を用
いて上述した図7に示す命令列を表すと、図2に示すよ
うになる。この場合、各命令に対する並列実行可能命令
数は、( )内の数字で示されている。次に、図3は、
このような命令語を使用する並列演算型の電子計算機の
概略的構成を示している。
いて上述した図7に示す命令列を表すと、図2に示すよ
うになる。この場合、各命令に対する並列実行可能命令
数は、( )内の数字で示されている。次に、図3は、
このような命令語を使用する並列演算型の電子計算機の
概略的構成を示している。
【0021】この場合、電子計算機は、命令語を解読す
る命令解読部21と、整数および論理命令演算部22
1、メモリアクセス命令演算部222および分岐命令演
算部223を有する演算部22から構成されている。こ
こで、演算部22は、それぞれの演算部221、22
2、223を同時に並列演算できるようにしている。す
なわち並列数N=3としている。
る命令解読部21と、整数および論理命令演算部22
1、メモリアクセス命令演算部222および分岐命令演
算部223を有する演算部22から構成されている。こ
こで、演算部22は、それぞれの演算部221、22
2、223を同時に並列演算できるようにしている。す
なわち並列数N=3としている。
【0022】命令解読部21は、図4に示すように構成
している。図において、23は命令バッファで、この命
令バッファ23は、図示しないメモリから読み出される
命令語24を保持するようにしている。この場合、命令
語24は、上述した図1に示した構成のもので、命令バ
ッファ23には、同時に3つの命令語24を保持できる
ようにしている。
している。図において、23は命令バッファで、この命
令バッファ23は、図示しないメモリから読み出される
命令語24を保持するようにしている。この場合、命令
語24は、上述した図1に示した構成のもので、命令バ
ッファ23には、同時に3つの命令語24を保持できる
ようにしている。
【0023】そして、命令バッファ23に保持された各
命令語24のうち先頭の命令語24のビットフィールド
12の並列実行可能命令数nは、並列実行可能性判定部
25に送られ、各命令語24のビットフィールド11の
オペレーションコードOPは、並列実行制御部26に送
られる。ここで、並列実行可能性判定部25は、先頭の
命令語24のビットフィールド12より並列実行可能な
命令数nを解読し、この命令語24に続く第2番目の命
令語24が並列実行可能であれば信号線271を“1”
とし、さらにこれに続く第3番目の命令語24も並列実
行可能であれば信号線272も“1”とする。なお、先
頭の命令語24および第2番目の命令語24が並列実行
可能でない場合は、信号線271および272をともに
“0”とする。
命令語24のうち先頭の命令語24のビットフィールド
12の並列実行可能命令数nは、並列実行可能性判定部
25に送られ、各命令語24のビットフィールド11の
オペレーションコードOPは、並列実行制御部26に送
られる。ここで、並列実行可能性判定部25は、先頭の
命令語24のビットフィールド12より並列実行可能な
命令数nを解読し、この命令語24に続く第2番目の命
令語24が並列実行可能であれば信号線271を“1”
とし、さらにこれに続く第3番目の命令語24も並列実
行可能であれば信号線272も“1”とする。なお、先
頭の命令語24および第2番目の命令語24が並列実行
可能でない場合は、信号線271および272をともに
“0”とする。
【0024】また、並列実行制御部26は、命令バッフ
ァ23の各命令語24のビットフィールド11より命令
の種類を表すオペレーションコードOPを解読し、各命
令で使用される上述の演算部221、222、223が
競合するか否かを判定するとともに、上記並列実行可能
性判定部25の信号線271、272の状態に基づいて
実際に命令を並列実行するか否かを指示するようにして
いる。そして、先頭の命令語24に対する第2番目およ
び第3番目の命令語24の並列実行の指示内容は、信号
線281、282より出力するようにしている。図5は
並列実行可能判定部25の構成例を示す図で、ここで
は、並列実行可能命令数を表すビットフィールド12の
幅を3ビットとした場合を示している。
ァ23の各命令語24のビットフィールド11より命令
の種類を表すオペレーションコードOPを解読し、各命
令で使用される上述の演算部221、222、223が
競合するか否かを判定するとともに、上記並列実行可能
性判定部25の信号線271、272の状態に基づいて
実際に命令を並列実行するか否かを指示するようにして
いる。そして、先頭の命令語24に対する第2番目およ
び第3番目の命令語24の並列実行の指示内容は、信号
線281、282より出力するようにしている。図5は
並列実行可能判定部25の構成例を示す図で、ここで
は、並列実行可能命令数を表すビットフィールド12の
幅を3ビットとした場合を示している。
【0025】この場合、ビットフィールド12の3ビッ
トの並列実行可能命令数nを格納する命令数格納部25
1とオア回路252、253から構成され、命令数格納
部251の(n00、n01、n02)の値が(000)の時
に並列実行可能命令数“0”で、信号線271および2
72がともに“0”、(001)の時に並列実行可能命
令数“1”で、信号線271のみが“1”、(010)
の時に並列実行可能命令数“2”で、信号線271、2
72がともに“1”となるようにしている。ここでの
(n00、n01、n02)の値と並列実行可能命令数の定義
は、何等の制限がなく、種々変形可能である。また、ビ
ットフールド12の幅も3ビットに限らず自由に定義で
きることは勿論である。
トの並列実行可能命令数nを格納する命令数格納部25
1とオア回路252、253から構成され、命令数格納
部251の(n00、n01、n02)の値が(000)の時
に並列実行可能命令数“0”で、信号線271および2
72がともに“0”、(001)の時に並列実行可能命
令数“1”で、信号線271のみが“1”、(010)
の時に並列実行可能命令数“2”で、信号線271、2
72がともに“1”となるようにしている。ここでの
(n00、n01、n02)の値と並列実行可能命令数の定義
は、何等の制限がなく、種々変形可能である。また、ビ
ットフールド12の幅も3ビットに限らず自由に定義で
きることは勿論である。
【0026】次に、図6は並列実行制御部26の構成例
を示したものである。この場合、図3に示す各命令語2
4のビットフィールド11のオペレーションコードOP
より命令の種類を解読するとともに、この解読結果より
演算部コードを出力するオペレーションコードデコード
回路261、262、263、これらオペレーションコ
ードデコード回路261、262、263の出力を26
1と262、261と263、262と263の各組み
合わせで比較する比較器264、265、266、イン
バータ267、268、269およびアンド回路26
0、270から構成されている。次に、以上のように構
成した実施例の動作を説明する。
を示したものである。この場合、図3に示す各命令語2
4のビットフィールド11のオペレーションコードOP
より命令の種類を解読するとともに、この解読結果より
演算部コードを出力するオペレーションコードデコード
回路261、262、263、これらオペレーションコ
ードデコード回路261、262、263の出力を26
1と262、261と263、262と263の各組み
合わせで比較する比較器264、265、266、イン
バータ267、268、269およびアンド回路26
0、270から構成されている。次に、以上のように構
成した実施例の動作を説明する。
【0027】まず、図2に示した命令列のある部分、例
えば(5)〜(7)の命令を処理する場合を説明する
と、この場合、図4に示す命令解読部21の命令バッフ
ァ23には、 (5) … addu r7、r3、r8 (2) (6) … st r24、r6[r22] (1) (7) … br r25 (0)
えば(5)〜(7)の命令を処理する場合を説明する
と、この場合、図4に示す命令解読部21の命令バッフ
ァ23には、 (5) … addu r7、r3、r8 (2) (6) … st r24、r6[r22] (1) (7) … br r25 (0)
【0028】の各命令語が格納される。この場合、ad
du命令は、整数および論理命令演算部221で演算さ
れ、st命令はメモリアクセス命令演算部222で演算
され、br命令は分岐命令演算部223で演算されるも
のとする。
du命令は、整数および論理命令演算部221で演算さ
れ、st命令はメモリアクセス命令演算部222で演算
され、br命令は分岐命令演算部223で演算されるも
のとする。
【0029】ここで、addu命令の並列実行可能命令
数は、(2)であるからビットフィールド12の3ビッ
トの並列実行可能命令数nを格納する命令数格納部25
1の(n00、n01、n02)の値は、(010)となって
おり、信号線271および272はともに“1”を出力
する。これは最初の命令adduに続く、2つの命令s
t、brがともに並列実行可能であることを示してい
る。この場合、並列実行可能命令数が(2)であって
(並列数N−1)以下に相当するので、この時の並列実
行可能命令数(2)の命令が並列実行可能であると判定
される。
数は、(2)であるからビットフィールド12の3ビッ
トの並列実行可能命令数nを格納する命令数格納部25
1の(n00、n01、n02)の値は、(010)となって
おり、信号線271および272はともに“1”を出力
する。これは最初の命令adduに続く、2つの命令s
t、brがともに並列実行可能であることを示してい
る。この場合、並列実行可能命令数が(2)であって
(並列数N−1)以下に相当するので、この時の並列実
行可能命令数(2)の命令が並列実行可能であると判定
される。
【0030】一方、各命令addu、st、brに相当
する命令語の各ビットフィールド11のオペレーション
コードOPは、オペレーションコードデコード回路26
1、262、263に送られ、ここで、演算部コードに
デコードされ、比較器264、265、266に送られ
る。この場合、オペレーションコードデコード回路26
1には、整数および論理命令演算部221を示すコー
ド、オペレーションコードデコード回路262には、メ
モリアクセス命令演算部222を示すコード、オペレー
ションコードデコード回路263には、分岐命令演算部
223を示すコードがそれぞれ出力される。これによ
り、オペレーションコードデコード回路261、26
2、263の出力を261と262、261と263、
262と263の各組み合わせで比較する比較器26
4、265、266の出力は、すべて0となる。 これ
により、インバータ267、268、269を介してア
ンド回路260、270に1出力が与えられ、同時に並
列実行可能判定部25の信号線271、272の1出力
がアンド回路260、270に与えられるので、これら
アンド回路260、270の出力は、ともに1となり、
addu命令とともに、st命令およびbr命令が並列
に実行可能になるような指示が出力されることになる。
する命令語の各ビットフィールド11のオペレーション
コードOPは、オペレーションコードデコード回路26
1、262、263に送られ、ここで、演算部コードに
デコードされ、比較器264、265、266に送られ
る。この場合、オペレーションコードデコード回路26
1には、整数および論理命令演算部221を示すコー
ド、オペレーションコードデコード回路262には、メ
モリアクセス命令演算部222を示すコード、オペレー
ションコードデコード回路263には、分岐命令演算部
223を示すコードがそれぞれ出力される。これによ
り、オペレーションコードデコード回路261、26
2、263の出力を261と262、261と263、
262と263の各組み合わせで比較する比較器26
4、265、266の出力は、すべて0となる。 これ
により、インバータ267、268、269を介してア
ンド回路260、270に1出力が与えられ、同時に並
列実行可能判定部25の信号線271、272の1出力
がアンド回路260、270に与えられるので、これら
アンド回路260、270の出力は、ともに1となり、
addu命令とともに、st命令およびbr命令が並列
に実行可能になるような指示が出力されることになる。
【0031】次に、図2に示した命令列の最初の部分で
ある、(1)〜(3)の命令を処理する場合を説明す
る。この場合、図4に示す命令解読部21の命令バッフ
ァ23には (1) … st r25、r2[r8] (4) (2) … sub r8、r25、200 (3) (3) … or r24、r0、r2 (3)
ある、(1)〜(3)の命令を処理する場合を説明す
る。この場合、図4に示す命令解読部21の命令バッフ
ァ23には (1) … st r25、r2[r8] (4) (2) … sub r8、r25、200 (3) (3) … or r24、r0、r2 (3)
【0032】の各命令語が格納される。この場合、st
命令は、メモリアクセス命令演算部222で演算され、
sub命令およびor命令は整数および論理命令演算部
221で演算されるものとする。
命令は、メモリアクセス命令演算部222で演算され、
sub命令およびor命令は整数および論理命令演算部
221で演算されるものとする。
【0033】ここで、st命令の並列実行可能命令数
は、(4)であるから、ビットフィールド12の3ビッ
トの並列実行可能命令数nを格納する命令数格納部25
1の(n00、n01、n02)の値は、(100)となって
おり、信号線271および272はともに“1”を出力
する。これは最初の命令stに続く、2つの命令su
b、orがともに並列に実行可能であることを示してい
る。この場合、並列実行可能命令数が(4)であって
(並列数N−1)より大きいので、この時の(N−1)
個の命令が並列実行可能であると判定される。
は、(4)であるから、ビットフィールド12の3ビッ
トの並列実行可能命令数nを格納する命令数格納部25
1の(n00、n01、n02)の値は、(100)となって
おり、信号線271および272はともに“1”を出力
する。これは最初の命令stに続く、2つの命令su
b、orがともに並列に実行可能であることを示してい
る。この場合、並列実行可能命令数が(4)であって
(並列数N−1)より大きいので、この時の(N−1)
個の命令が並列実行可能であると判定される。
【0034】一方、各命令st、sub、orに相当す
る命令語の各ビットフィールド11のオペレーションコ
ードOPは、それぞれオペレーションコードデコード回
路261、262、263に送られ、ここで、演算部コ
ードにデコードされ、比較器264、265、266に
送られる。この場合、オペレーションコードデコード回
路261には、メモリアクセス命令演算部222を示す
コード、オペレーションコードデコード回路262に
は、整数および論理命令演算部221を示すコード、オ
ペレーションコードデコード回路263にも、整数およ
び論理命令演算部221を示すコードが出力されてい
る。これにより、オペレーションコードデコード回路2
61、262、263の出力を261と262、261
と263、262と263の各組み合わせで比較する比
較器264、265、266の出力は、オペレーション
コードデコード回路262と263がともに整数および
論理命令演算部221を示すコードとなっていることか
ら、比較器266の出力が1となり、オペレーションコ
ードデコード回路261がメモリアクセス命令演算部2
22を示すコードとなるので、比較器264および26
5の出力は0となる。
る命令語の各ビットフィールド11のオペレーションコ
ードOPは、それぞれオペレーションコードデコード回
路261、262、263に送られ、ここで、演算部コ
ードにデコードされ、比較器264、265、266に
送られる。この場合、オペレーションコードデコード回
路261には、メモリアクセス命令演算部222を示す
コード、オペレーションコードデコード回路262に
は、整数および論理命令演算部221を示すコード、オ
ペレーションコードデコード回路263にも、整数およ
び論理命令演算部221を示すコードが出力されてい
る。これにより、オペレーションコードデコード回路2
61、262、263の出力を261と262、261
と263、262と263の各組み合わせで比較する比
較器264、265、266の出力は、オペレーション
コードデコード回路262と263がともに整数および
論理命令演算部221を示すコードとなっていることか
ら、比較器266の出力が1となり、オペレーションコ
ードデコード回路261がメモリアクセス命令演算部2
22を示すコードとなるので、比較器264および26
5の出力は0となる。
【0035】これにより、インバータ267を介してア
ンド回路260に1出力が与えられ、同時に並列実行可
能判定部25の信号線271の1出力がアンド回路26
0に与えられるので、アンド回路260の出力は、1と
なり、sub命令とst命令が並列に実行可能になるよ
うな指示が出力される。しかしながら、インバータ26
8を介してアンド回路261に1出力が与えられるが、
インバータ270を介して同アンド回路270に0出力
が与えられるので、アンド回路260の出力は、0とな
り、or命令は実行されない指示が出力されることにな
る。
ンド回路260に1出力が与えられ、同時に並列実行可
能判定部25の信号線271の1出力がアンド回路26
0に与えられるので、アンド回路260の出力は、1と
なり、sub命令とst命令が並列に実行可能になるよ
うな指示が出力される。しかしながら、インバータ26
8を介してアンド回路261に1出力が与えられるが、
インバータ270を介して同アンド回路270に0出力
が与えられるので、アンド回路260の出力は、0とな
り、or命令は実行されない指示が出力されることにな
る。
【0036】したがって、このようにすれば各命令に付
加される並列実行可能命令数の情報に基づいて命令の並
列実行を制御するようにできるので、NOP命令を多数
使用する従来のVLIW型電子計算機に比べ、メモリの
使用効率を飛躍的に高めることができ、特に、キャッシ
ュ・メモリを使用しているものについては、キャッシュ
・メモリの記憶領域が不要な浪費をなくすことができ、
計算機の性能低下を防止することができる。また、これ
は命令列を実行する演算部の数が変更される場合でも、
命令列の変更を行うことなく同一の命令列を実行するこ
とが可能になり、命令列のコンパチビリティの維持も確
保可能となる。さらに、各命令に付加される実行可能命
令数情報により命令の並列実行可能性が調べられること
から、従来のスパースカラー技術を採用したものに用い
られるオペランドの依存関係から命令の並列実行可能性
を調べるためのハードウェアを不必要にできるので、ハ
ードウェアの小形化が可能となり、コスト的に安価にな
り、さらに、サイクルタイムを短縮することも可能にで
きる。
加される並列実行可能命令数の情報に基づいて命令の並
列実行を制御するようにできるので、NOP命令を多数
使用する従来のVLIW型電子計算機に比べ、メモリの
使用効率を飛躍的に高めることができ、特に、キャッシ
ュ・メモリを使用しているものについては、キャッシュ
・メモリの記憶領域が不要な浪費をなくすことができ、
計算機の性能低下を防止することができる。また、これ
は命令列を実行する演算部の数が変更される場合でも、
命令列の変更を行うことなく同一の命令列を実行するこ
とが可能になり、命令列のコンパチビリティの維持も確
保可能となる。さらに、各命令に付加される実行可能命
令数情報により命令の並列実行可能性が調べられること
から、従来のスパースカラー技術を採用したものに用い
られるオペランドの依存関係から命令の並列実行可能性
を調べるためのハードウェアを不必要にできるので、ハ
ードウェアの小形化が可能となり、コスト的に安価にな
り、さらに、サイクルタイムを短縮することも可能にで
きる。
【0037】また、この実施例によれば、実際に並列実
行し得る数を越えた数が命令語中に指定されていても、
その動作は何等支障なく実行できるので、並列実行可能
命令数としては、その命令列が実際に処理される電子計
算機の構成とは独立に、命令語のビットフィールドの許
すかぎり大きな値を設定することができる。
行し得る数を越えた数が命令語中に指定されていても、
その動作は何等支障なく実行できるので、並列実行可能
命令数としては、その命令列が実際に処理される電子計
算機の構成とは独立に、命令語のビットフィールドの許
すかぎり大きな値を設定することができる。
【0038】なお、本発明は、上記実施例にのみ限定さ
れず、要旨を変更しない範囲で適宜変形して実施でき
る。例えば、上述した実施例では、並列実行可能な演算
部の数を3としたが、その数は3以外であっても上述し
たと同様に実施できる。
れず、要旨を変更しない範囲で適宜変形して実施でき
る。例えば、上述した実施例では、並列実行可能な演算
部の数を3としたが、その数は3以外であっても上述し
たと同様に実施できる。
【0039】
【発明の効果】本発明の電子計算機によれば、命令列を
構成する各命令に該命令と並列に実行可能な命令数情報
を付加し、この情報に基づいて並列実行の可能性を判定
するとともに、この判定結果により命令の並列実行を制
御するようにできるので、命令列中に並列実行を可能に
するための不必要なNOP命令を挿入することがなくな
り、メモリの使用効率が飛躍的に向上し、計算機として
の処理能力を十分発揮することができるようになる。ま
た、VLIW型電子計算機の場合で演算部の数が変更さ
れる場合でも、命令列の変更を行うことなく同一の命令
列を実行することが可能になるので、命令列のコンパチ
ビリティの維持も確保可能となる。さらに、各命令に付
加される実行可能命令数情報により命令の並列実行可能
性が調べられるようになることで、オペランドの依存関
係から命令の並列実行可能性を調べるためのハードウェ
アなどを不必要なものにすることもできるので、ハード
ウェアの小形化が可能となり、コスト的に安価になり、
さらに、サイクルタイムを短縮することも可能になっ
て、計算機の性能向上を計ることもできる。
構成する各命令に該命令と並列に実行可能な命令数情報
を付加し、この情報に基づいて並列実行の可能性を判定
するとともに、この判定結果により命令の並列実行を制
御するようにできるので、命令列中に並列実行を可能に
するための不必要なNOP命令を挿入することがなくな
り、メモリの使用効率が飛躍的に向上し、計算機として
の処理能力を十分発揮することができるようになる。ま
た、VLIW型電子計算機の場合で演算部の数が変更さ
れる場合でも、命令列の変更を行うことなく同一の命令
列を実行することが可能になるので、命令列のコンパチ
ビリティの維持も確保可能となる。さらに、各命令に付
加される実行可能命令数情報により命令の並列実行可能
性が調べられるようになることで、オペランドの依存関
係から命令の並列実行可能性を調べるためのハードウェ
アなどを不必要なものにすることもできるので、ハード
ウェアの小形化が可能となり、コスト的に安価になり、
さらに、サイクルタイムを短縮することも可能になっ
て、計算機の性能向上を計ることもできる。
【図1】本発明の一実施例に用いられる命令語を示す構
成図。
成図。
【図2】同命令語を用いた命令列の一例を示す図。
【図3】本発明の電子計算機の一実施例を示す概略的構
成図。
成図。
【図4】同実施例に用いられる命令解読部を示す概略的
構成図。
構成図。
【図5】同実施例の命令解読部の並列実行可能性判定部
を示す構成図。
を示す構成図。
【図6】同実施例の命令解読部の並列実行制御部を示す
構成図。
構成図。
【図7】従来の命令列の一例を示す図。
【図8】従来のVLIW型計算機に用いられる命令列の
一例を示す図。
一例を示す図。
【図9】従来のVLIW型計算機に用いられる命令列の
他の例を示す図。
他の例を示す図。
【符号の説明】 11、12、13…ビットフィールド、21…命令解読
部、22…演算部、221…整数および論理命令演算
部、222…メモリアクセス命令演算部、223…分岐
命令演算部、23…命令バッファ、24…命令語、25
…並列実行可能性判定部、251…命令数格納部、25
2、253…オア回路、26…並列実行制御部、26
1、262、263…オペレーションコードデコード回
路、264、265、266…比較器、267、26
8、269…インバータ、271、272、281、2
82…信号線。
部、22…演算部、221…整数および論理命令演算
部、222…メモリアクセス命令演算部、223…分岐
命令演算部、23…命令バッファ、24…命令語、25
…並列実行可能性判定部、251…命令数格納部、25
2、253…オア回路、26…並列実行制御部、26
1、262、263…オペレーションコードデコード回
路、264、265、266…比較器、267、26
8、269…インバータ、271、272、281、2
82…信号線。
Claims (1)
- 【請求項1】命令列を構成する命令をこれら命令の種類
に対応する演算手段により同時実行可能にした電子計算
機において、 上記各命令に該命令と並列に実行可能な命令数情報を付
加しこれら命令を複数保持する命令列保持手段と、 この命令列保持手段に保持された複数の命令のうち先頭
命令に付加された並列実行可能命令数情報に基づいて並
列実行の可能性を判定する並列実行可能性判定手段と、 上記命令列保持手段に保持された各命令の種類に対応す
る演算手段を判定するとともにこれら判定結果と上記並
列実行可能性判定手段の判定結果より上記複数の命令に
対する並列実行を制御する並列実行制御手段とを具備し
たことを特徴とする電子計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21764191A JPH0553805A (ja) | 1991-08-29 | 1991-08-29 | 電子計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21764191A JPH0553805A (ja) | 1991-08-29 | 1991-08-29 | 電子計算機 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0553805A true JPH0553805A (ja) | 1993-03-05 |
Family
ID=16707446
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21764191A Pending JPH0553805A (ja) | 1991-08-29 | 1991-08-29 | 電子計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0553805A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1996029646A1 (en) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processor |
| JP2010257199A (ja) * | 2009-04-24 | 2010-11-11 | Renesas Electronics Corp | プロセッサ及びプロセッサにおける命令発行の制御方法 |
| JP2024511764A (ja) * | 2021-03-31 | 2024-03-15 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ウェーブフロント(wavefront)の選択及び実行 |
-
1991
- 1991-08-29 JP JP21764191A patent/JPH0553805A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1996029646A1 (en) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processor |
| JP2010257199A (ja) * | 2009-04-24 | 2010-11-11 | Renesas Electronics Corp | プロセッサ及びプロセッサにおける命令発行の制御方法 |
| JP2024511764A (ja) * | 2021-03-31 | 2024-03-15 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ウェーブフロント(wavefront)の選択及び実行 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5333280A (en) | Parallel pipelined instruction processing system for very long instruction word | |
| US6289433B1 (en) | Superscalar RISC instruction scheduling | |
| US20040103262A1 (en) | Vector register file with arbitrary vector addressing | |
| JPH04313121A (ja) | インストラクションメモリ装置 | |
| US20040098540A1 (en) | Cache system and cache memory control device controlling cache memory having two access modes | |
| US20050050372A1 (en) | Microcontroller unit controlling plurality of registers in accordance with precision of data to be operated, and compiler thereof | |
| US5371862A (en) | Program execution control system | |
| JPH0496825A (ja) | データ・プロセッサ | |
| US4992932A (en) | Data processing device with data buffer control | |
| JP4025493B2 (ja) | 適切な発行先に命令を発行する命令発行装置 | |
| JPH0527971A (ja) | 情報処理装置 | |
| JPH08221273A (ja) | 命令レベルの並列処理制御方法およびプロセッサ | |
| JPH0553805A (ja) | 電子計算機 | |
| US20080244240A1 (en) | Semiconductor device | |
| JPH02162422A (ja) | 優先ブランチ機構を備えたデータ処理システム | |
| US6243806B1 (en) | Program execution method and apparatus employing data flags for branching determination | |
| US20020019929A1 (en) | Data processing device and program conversion device | |
| JPH05143333A (ja) | 並列演算処理装置 | |
| US20050114626A1 (en) | Very long instruction word architecture | |
| JP3211791B2 (ja) | ループ処理方式 | |
| US20060015704A1 (en) | Operation apparatus and instruction code executing method | |
| US20040162965A1 (en) | Information processing unit | |
| JP4006887B2 (ja) | コンパイラ、プロセッサおよび記録媒体 | |
| JP2005535045A (ja) | Vliw命令を処理するためのプロセッサおよび方法 | |
| JP2000003279A (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 |