(57)【要約】【課題】面積削減と動作周波数削減を図ることができるプロセッサ及びその制御方法を提供する。【解決手段】プロセッサは、第１命令乃至第４命令と、第５命令乃至第８命令のうち最大で８個の命令を並列実行するプロセッサであり、第１乃至第８命令のいずれかが入力され実行する第１乃至第ｍ演算ユニット１４２〜１４８と、第１乃至第ｍ演算ユニット１４２＝１４８にそれぞれ対応して設けられ、第１乃至第ｍ命令のいずれかの命令を選択して第１乃至第ｍ演算ユニット１４２〜１４８に入力する選択器とを有する。第１乃至第４命令は、第１乃至８選択器のそれぞれに入力され、第５乃至第８命令は、それぞれ第５乃至第８以降の選択器に入力される。【選択図】図１
2011198100.tif 000002
【特許請求の範囲】
【請求項１】
第１命令乃至第ｎ命令（ｎは自然数）と、第（ｎ＋１）命令乃至第ｍ命令（ｍ＞ｎで２以上の自然数）のうち最大でｍ個の命令を並列実行するプロセッサであって、
前記第１乃至第ｍ命令のいずれかが入力され実行する第１乃至第ｍ演算ユニットと、
前記第１乃至第ｍ演算ユニットにそれぞれ対応して設けられ、前記第１乃至第ｍ命令のいずれかの命令を選択して当該第１乃至第ｍ演算ユニットに入力する第１乃至第ｍ選択器とを有し、
前記第１乃至第ｎ命令は、前記第１乃至ｍ選択器のそれぞれに入力され、
前記第（ｎ＋１）乃至第ｍ命令は、それぞれ第（ｎ＋１）乃至第ｍ以降の選択器に入力される、プロセッサ。
【請求項２】
前記１乃至ｍ演算ユニットが、ｋ（ｋは任意の変数）個ごとの同一演算ユニットからなるｓ（ｓは自然数）個のグループからなる場合、前記第１命令は、各グループの最初の演算ユニットに対応する選択器にのみ入力される、請求項１記載のプロセッサ。
【請求項３】
前記第１乃至第ｎ命令は、順序が規定されない命令であって、第（ｎ＋１）乃至第ｍ命令は、順序が規定された命令である、請求項１又は２記載のプロセッサ。
【請求項４】
前記ｎは、前世代プロセッサの最大命令並列度を示す、請求項１乃至３のいずれか１項記載のプロセッサ。
【請求項５】
前記プロセッサは、ＶＬＩＷ（Very Long Instruction Word）型プロセッサである、請求項１乃至４のいずれか１項記載のプロセッサ。
【請求項６】
第１命令乃至第ｎ命令（ｎは自然数）と、第（ｎ＋１）命令乃至第ｍ命令（ｍ＞ｎで２以上の自然数）とのうち最大でｍ個の命令を第１乃至第ｍ演算ユニットにより並列実行するプロセッサの制御方法であって、
前記第１乃至第ｎ命令が、前記第１乃至第ｍ演算ユニットのいずれか１つに入力され、
前記（ｎ＋１）乃至第ｍ命令は、前記（ｎ＋１）乃至第ｍ以降の演算ユニットに入力される、プロセッサの制御方法。
【請求項７】
前記１乃至ｍ演算ユニットが、ｋ（ｋは任意の変数）個ごとの同一演算ユニットからなるｓ（ｓは自然数）個のグループからなる場合、前記第１命令は、各グループの最初の演算ユニットに対応する選択器にのみ入力される、請求項６記載のプロセッサ。
【請求項８】
前記第１乃至第ｎ命令は、順序が規定されない命令であって、第（ｎ＋１）乃至第ｍ命令は、順序が規定された命令である、請求項６又は７記載のプロセッサ。
【請求項９】
前記ｎは、前世代プロセッサの最大命令並列度を示す、請求項６乃至８のいずれか１項記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列して命令が実行可能なプロセッサ及びその制御方法に関し、特に、例えばＶＬＩＷ（Very Long Instruction Word）命令を実行可能なプロセッサ及びその制御方法に関する。
【背景技術】
【０００２】
従来、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）等プロセッサの処理能力向上のため、複数の命令を並列実行する方法がある。この方法にはハードウェアが自動的に命令の並列実行性を検出して並列実行するスーパースカラと呼ばれるものと、プログラムをコンパイル、アセンブルする際に予め命令の並列度を検出しておき、並列実行可能な命令コードを生成しておくＶＬＩＷ（Very Long Instruction Word）と呼ばれるものがある。組み込み機器向けプロセッサでは消費電力、面積の関係で回路構成が簡単なＶＬＩＷ方式を使うことが多い。
【０００３】
近年のプロセッサでは性能向上のため、命令並列度が高くなることがあり、ＶＬＩＷ型プロセッサは回路構成が簡単と言っても並列実行される命令群に含まれる各命令を、対応する演算ユニットに発行する回路が大きくなり、動作周波数が低下する事が問題となっている。
【０００４】
この問題を解決する手法として特許文献１に記載されているように、命令メモリから読み出した命令群を、各演算ユニットに発行する前に、命令群内の命令の順番を並べ直すことで、発行回路の選択回路を削減し、面積低減、周波数劣化低減を図るものや、特許文献２に記載されているように、コンパイル、アセンブル時に命令群内の命令の順番をある固定の順番で並べて命令メモリに置いておき、発行回路の選択回路を削減し、面積低減、周波数劣化低減を図るものがある。これらはいずれも各命令を対応する各演算ユニットに発行する段階では、各命令がある順番（法則）に基づいて並んでいる点が特徴である。
【０００５】
ＭＸ／ＭＹ／ＡＸ／ＡＹ／ＤＸ／ＤＹ／ＳＸ／ＳＹという８つの演算ユニットを持つプロセッサで、命令発行時の命令順が自由な場合と、ある順番（法則）に基づいている場合での命令発行回路の違いについて説明する。ここで、ＭＸ／ＭＹ、ＡＸ／ＡＹ、ＤＸ／ＤＹ、ＳＸ／ＳＹはそれぞれ同一の演算ユニットが２個ずつあり、１個目が＊Ｘ、２個目が＊Ｙであることを示す。また、ＭＹ、ＡＹ、ＤＹ、ＳＹは２個目の演算ユニットであるのでＭＹ、ＡＹ、ＤＹ、ＳＹだけに命令が発行されることはなく、必ずそれぞれＭＸ、ＡＸ、ＤＸ、ＳＹへの命令の発行が行われる必要がある。また説明の都合上、命令メモリから読み出した並列実行される命令群は最大で８並列とする。
【０００６】
命令順が自由の場合、ＭＸ演算ユニットに属する命令は命令レジスタ内の命令１スロット〜命令８スロットのどのスロットにも存在する可能性がある。同様にＡＸ演算ユニットに属する命令、ＤＸ演算ユニットに属する命令、ＳＸ演算ユニットに属する命令も命令レジスタ内の命令１スロット〜命令８スロットのどのスロットにも存在する可能性がある。また、ＭＹ演算ユニットに属する命令、ＡＹ演算ユニットに属する命令、ＤＹ演算ユニットに属する命令、ＳＹ演算ユニットに属する命令はそれぞれＭＸ、ＡＸ、ＤＸ、ＳＸ演算ユニットに属する命令の実行が前提となるため、命令レジスタ内の命令２スロット〜命令８スロットのどのスロットにも存在する可能性がある。そのため、命令発行回路はＭＸ／ＡＸ／ＤＸ／ＳＸ演算ユニット用に命令１スロット〜命令８スロットのいずれからも選択できる８to1の選択回路と、ＭＹ／ＡＹ／ＤＹ／ＳＹ演算ユニット用に命令２スロット〜命令８スロットのいずれからも選択できる７to1の選択回路とを有する。言い換えると８to1の選択回路が４個と７to1の選択回路が４個必要となる。
【０００７】
次に命令発行時の命令順をＭＸ→ＭＹ→ＡＸ→ＡＹ→ＤＸ→ＤＹ→ＳＸ→ＳＹの順に固定した場合の命令発行回路について説明する。
命令順を上記のように固定した場合、以下のことが言える。
【０００８】
（１）ＭＸ演算ユニットに属する命令は命令１スロットに存在するか、実行される命令がなく命令レジスタに存在しないかのどちらかである。
【０００９】
（２）ＭＹ演算ユニットに属する命令はＭＸ演算ユニットに属する命令が実行されることが前提となるので命令１スロットに存在することはない。したがって、命令２スロットに存在するか、実行される命令がなく命令レジスタに存在しないかのどちらかである。
【００１０】
（３）ＡＸ演算ユニットに属する命令が存在する命令スロットはＭＸ演算ユニット、ＭＹ演算ユニットに属する命令の有無に依存する。ＭＸ／ＭＹとも存在せず命令１スロットに存在するか、ＭＸのみ存在して命令２スロットに存在するか、ＭＸ／ＭＹとも存在して命令３スロットに存在するか、実行される命令がなく命令レジスタに存在しないかのいずれかである。
【００１１】
（４）ＡＹ演算ユニットに属する命令が存在する命令スロットはＭＸ演算ユニット、ＭＹ演算ユニットに属する命令の有無に依存し、かつＡＸ演算ユニットに属する命令が実行されることが前提で決定される。ＭＸ／ＭＹとも存在せずＡＸが命令１スロット、ＡＹが命令２スロットに存在するか、ＭＸのみ存在してＡＸが命令２スロット、ＡＹが命令３スロットに存在するか、ＭＸ／ＭＹとも存在してＡＸが命令３スロット、ＡＹが命令４スロットに存在するか、実行される命令がなく命令レジスタに存在しないかのいずれかである。
【００１２】
同様にしてＤＸ、ＤＹ、ＳＸ、ＳＹ演算ユニットに属する命令が存在する命令スロットは以下の通りになる。
【００１３】
（５）ＤＸ演算ユニットに属する命令は命令１スロット〜命令５スロットのいずれかに存在するか、実行される命令が無く命令レジスタに存在しないかのどちらかである。
【００１４】
（６）ＤＹ演算ユニットに属する命令は命令２スロット〜命令６スロットのいずれかに存在するか、実行される命令が無く命令レジスタに存在しないかのどちらかである。
【００１５】
（７）ＳＸ演算ユニットに属する命令は命令１スロット〜命令７スロットのいずれかに存在するか、実行される命令が無く命令レジスタに存在しないかのどちらかである。
【００１６】
（８）ＳＹ演算ユニットに属する命令は命令２スロット〜命令８スロットのいずれかに存在するか、実行される命令が無く命令レジスタに存在しないかのどちらかである。
【００１７】
そのため、命令発行回路は以下の構成となる。
（ア）ＭＸ／ＭＹに関してはそれぞれ命令１スロット、命令２スロットを直結。
（イ）ＡＸ／ＡＹに関してはそれぞれ命令１スロット〜命令３スロット、命令２スロット〜命令４スロットの３つの命令スロットから選択。
（ウ）ＤＸ／ＤＹに関してはそれぞれ命令１スロット〜命令５スロット、命令２スロット〜命令６スロットの５つの命令スロットから選択。
（エ）ＳＸ／ＳＹに関してはそれぞれ命令１スロット〜命令７スロット、命令３スロット〜命令８スロットの７つの命令スロットから選択。
言い換えると、３to1の選択回路が２個、５to1の選択回路が２個、７to1の選択回路が２個必要ということになる。
【００１８】
面積比較のため、各選択回路を２to1の選択回路で構成したとすると、８to1選択回路は２to1選択回路７個、７to1選択回路は２to1選択回路６個、５to1選択回路は２to1選択回路４個、３to1選択回路は２to1選択回路２個に置き換えられるので、命令順が自由の場合の命令発行回路部分は７×４＋６×４＝５２で２to1選択回路５２個相当、命令順が固定の場合の命令発行回路部分は６×２＋４×２＋２×２＝２４で２to1選択回路２４個相当となり、面積が大幅に削減できることがわかる。
【００１９】
周波数に関しては８to1選択回路と７to1選択回路の論理段数は３段で変わりないので最大遅延パスの論理段数は変わらないが、遅延の大きなパスと小さなパスが明確になる事で論理合成時の最適化が進みやすくなる事や、面積が小さくなる事で配線長の削減、迂回配線の削減等の効果により動作周波数が向上する。
【００２０】
このような命令処理方法について更に詳細に説明する。図３は、特許文献２に記載のＶＬＩＷプロセッサを示す図である。図３に示すように、ＶＬＩＷプロセッサは、メモリ２２０から命令を読み出す命令読出部２２１と、４つの命令スロット０〜３を有する命令レジスタ２２２と、命令レジスタ２２２からの命令を振り分ける命令発行部２２３と、命令を実行する命令実行部２２４とを有する。命令実行部２２４の各演算ユニットは、レジスタＰＣ、ＧＲ、ＦＲを参照しつつ命令レジスタ２２２からの命令を実行する。ここで、命令実行部２２４は、整数ユニットであるＩＵ０とＩＵ１、浮動小数点数ユニットであるＦＵ０とＦＵ１、分岐ユニットであるＢＵ０とＢＵ１を備える。また、プロセッサは汎用レジスタＧＲ、浮動小数点レジスタＦＲ、プログラムカウンタＰＣを有する。
【００２１】
ここで、ＶＬＩＷ命令内の基本命令の並びとして、図４に示す２２通りのＶＬＩＷ命令を実行可能であるとする。図４において、記号の意味は次の通りである。Ｉ０は、ＩＵ０にて実行される基本命令が配置されることを意味する。Ｉ１は、ＩＵ１にて実行される基本命令が配置されることを意味する。Ｆ０は、ＦＵ０にて実行される基本命令が配置されることを意味する。Ｆ１は、ＦＵ１にて実行される基本命令が配置されることを意味する。Ｂ０は、ＢＵ０にて実行される基本命令が配置されることを意味する。Ｂ１は、ＢＵ１にて実行される基本命令が配置されることを意味する。空欄は、基本命令を配置しないことを意味する。
【００２２】
命令発行部は、命令レジスタから読み込んだ命令を対応する機能ユニットであるＩＵ、ＦＵ、ＢＵへ供給する。最大４命令を同時実行可能で、６つの機能ユニットうち最大４つの機能ユニットに命令を供給する。
【００２３】
命令スロット０に保持されている基本命令はＩＵ０、ＦＵ０、ＢＵ０へ供給可能である。命令スロット１に保持されている基本命令はＦＵ０、ＩＵ１、ＦＵ１、ＢＵ０、ＢＵ１へ供給可能である。命令スロット２に保持されている基本命令はＩＵ１、ＦＵ１、ＢＵ０、ＢＵ１へ供給可能である。命令スロット３に保持されている基本命令はＦＵ１、ＢＵ０、ＢＵ１へ供給可能である。また、このプロセッサで許されているＶＬＩＷ命令内の基本命令の並びは、図４の通りとする。
【００２４】
このようにして命令の順序が確定している場合は、命令発行部２２３は、各命令を全機能ユニットに供給可能とする必要はなく、所定の機能ユニットに格納可能なように構成することができる。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２００１−１００９９７
【特許文献２】特開２００２−３２３９８２
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかしながら、特許文献２に記載の技術は新規プロセッサの場合には問題がないが、過去のプロセッサの延長、すなわち互換性が必要なプロセッサの場合には過去のソフトウェア資産の流用の点で問題がある。具体例を以下に示す。
【００２７】
特許文献２に記載の方法は、近年の性能向上のために命令並列度が高くなった際の問題解決のための手法である。言い換えればそれ以前のプロセッサでは要求性能、チップ面積の関係でそれほど命令並列度は高くなく、要求される技術ではなかったと言える。例えば前世代プロセッサでは命令並列度が４並列であったとする。４並列程度では命令発行回路の規模、周波数の関係で命令順が自由のケースも十分考えられる。その場合、命令レジスタ内にＡＸ→ＭＸ→ＤＸの順で命令が並んでいることも在りうる。この様な場合、ＭＸは命令１スロットからしか読み出すことが出来ないので命令２スロットに存在するＭＸ命令が読み出せず、実行出来ないという問題が発生する。
【００２８】
自社開発のソフトウェアの場合は最悪、コンパイル又はアセンブルし直す事で命令順を並べなおすことが可能であるが、ＩＰベンダーから購入したようなソフトウェアの場合、通常ソースコードは知的財産であり入手できないため、命令順を並べなおす難易度が非常に高くなる。現在、ビデオ、画像等マルチメディア処理に特化したＩＰベンダーによるソフトウェアの流通が活発な状況であり、従来技術では流用できないソフトウェアが大量に発生する可能性がある。
【課題を解決するための手段】
【００２９】
本発明に係るプロセッサは、第１命令乃至第ｎ命令（ｎは自然数）と、第（ｎ＋１）命令乃至第ｍ命令（ｍ＞ｎで２以上の自然数）のうち最大でｍ個の命令を並列実行するプロセッサであって、前記第１乃至第ｍ命令のいずれかが入力され実行する第１乃至第ｍ演算ユニットと、前記第１乃至第ｍ演算ユニットにそれぞれ対応して設けられ、前記第１乃至第ｍ命令のいずれかの命令を選択して当該第１乃至第ｍ演算ユニットに入力する第１乃至第ｍ選択器とを有し、前記第１乃至第ｎ命令は、前記第１乃至ｍ選択器のそれぞれに入力され、前記第（ｎ＋１）乃至第ｍ命令は、それぞれ第（ｎ＋１）乃至第ｍ以降の選択器に入力される、ものである。
【００３０】
本発明に係るプロセッサの制御方法は、第１命令乃至第ｎ命令（ｎは自然数）と、第（ｎ＋１）命令乃至第ｍ命令（ｍ＞ｎで２以上の自然数）とのうち最大でｍ個の命令を第１乃至第ｍ演算ユニットにより並列実行するプロセッサの制御方法であって、前記第１乃至第ｎ命令が、前記第１乃至第ｍ演算ユニットのいずれか１つに入力され、前記（ｎ＋１）乃至第ｍ命令は、前記（ｎ＋１）乃至第ｍ以降の演算ユニットに入力される
【００３１】
本発明においては、第１乃至第ｎ命令は、第１乃至ｍ選択器のそれぞれに入力されるので、第１乃至第ｍ演算ユニットのいずれにおいても演算することができる。一方、ｎ以上の命令がある場合は、各命令は順序どおり入力されるので、第（ｎ＋１）乃至第ｍ命令がそれぞれ第（ｎ＋１）乃至第ｍ以降の選択器に入力されることにより、第（ｎ＋１）乃至第ｍ演算ユニットで演算が可能となる。
【発明の効果】
【００３２】
本発明によれば、面積削減と動作周波数削減を図ることができるプロセッサ及びその制御方法を提供することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態１にかかるプロセサを示す図である。
【図２】本発明の実施の形態２にかかるプロセサを示す図である。
【図３】特許文献２に記載のＶＬＩＷプロセッサを示す図である。
【図４】図３に示す可変調ＶＬＩＷの実行可能なＶＬＩＷ内の基本命令の並びを示す図である。
【発明を実施するための形態】
【００３４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、並列命令を実施するプロセッサに適用したものである。
本発明の実施の形態１.
【００３５】
図１は、本発明の実施１の形態にかかるプロセサ１００を示す図である。プロセッサ１００は、命令読出部１１、命令レジスタ１２、命令発行部１３、８つの演算ユニットからなる演算実行部１４及びメモリ１５を有する。なお、メモリ１５は、プロセッサの外部にあってもよい。
【００３６】
命令読出部１１は、メモリ１５から複数のメモリを読み出し、命令レジスタ１２に供給する。本例の場合、メモリ１５から読み出した命令のうち最大８つの命令を同時に命令レジスタ１２に供給する。
【００３７】
命令レジスタ１２は、命令１〜命令８の８つの命令を並列に実行するため、８つの命令を保持可能に構成されている。
【００３８】
命令発行部１３は、選択回路１３１乃至１３８を有し、命令レジスタ１２からの命令を、各演算ユニットに振り分ける。
【００３９】
演算ユニットは、ＭＸ演算ユニット１４１、ＭＹ演算ユニット１４２、ＡＸ演算ユニット１４３、ＡＹ演算ユニット１４４、ＤＸ演算ユニット１４５、ＤＹ演算ユニット１４６、ＳＸ演算ユニット１４７及びＳＹ演算ユニット１４８の８つの演算ユニットからなる。
【００４０】
ここで、当該プロセッサは、第１命令乃至第ｎ命令（ｎは自然数）と、第（ｎ＋１）命令乃至第ｍ命令（ｍ＞ｎで２以上の自然数）のうち最大でｍ個の命令をを並列実行するプロセッサとすると、演算ユニットは、第１乃至第ｍ命令のいずれかが入力され実行する演算ユニットである。本例では、ｍ＝８つの演算ユニットの例を示している。ここで、ＭＸ演算ユニット１４１及びＭＹ演算ユニット１４２は、同一の演算ユニットを示し、例えば乗算器である。ＡＸ演算ユニット１４３及びＡＹ演算ユニット１４４は、同一の演算ユニットを示し、例えは算術論理回路である。ＤＸ演算ユニット１４５及びＤＹ演算ユニット１４６は、同一の演算ユニットを示し、例えばデータ・ロードストアである。ＳＸ演算ユニット１４７及びＳＹ演算ユニット１４８は同じ演算ユニットを示し、例えばシステム命令である。
【００４１】
なお、以下の説明では、ｎ＝４として説明する。すなわち、第１乃至第４命令は、順位が定められておらず、いずれの命令がいずれの演算ユニットに入力されるか不明である。第５乃至第８命令は、この順序で命令が演算ユニットに入力されるものとする。
【００４２】
この場合、８つの選択器は、第１乃至第８演算ユニットにそれぞれ対応して設けられ、第１乃至第８命令のいずれかの命令を選択して第１乃至第８演算ユニットに入力するものである。そして、第１乃至第４命令は、第１乃至８選択器のそれぞれに入力され、第５乃至第８命令は、それぞれ第５乃至第８以降の選択器に入力される。
【００４３】
ここで、命令２〜４は、全選択回路と接続されるが、命令１は、選択回路１、３、５、７のみに接続される。これは、命令１は、ＭＸ演算ユニット１４１、ＡＸ演算ユニット１４３、ＤＸ演算ユニット１４５、ＳＸ演算ユニット１４７のみに入力されるためであり、ＭＹ演算ユニット１４２、ＡＹ演算ユニット１４４、ＤＹ演算ユニット１４６及びＳＹ演算ユニット１４８は、命令１スロットが存在すると初めて命令を入力される可能性があるためである。
【００４４】
本実施の形態においては、前世代プロセッサでの命令並列度に対応する命令スロットまでは命令順が自由のケースでも命令発行ができるよう、命令１〜命令ｎ（ｎは前世代プロセッサの最大命令並列度、本実施の形態においては、ｎ＝４）に関しては全ての演算ユニットの選択回路に接続し、命令ｎ以降の命令に関しては従来技術と同様に各演算ユニットと命令順規則によってその命令が存在しうる命令だけを選択回路に接続する。ただし、ＭＹ／ＡＹ／ＤＹ／ＳＹ演算ユニットに対応する選択回路はＭＸ／ＡＸ／ＤＸ／ＳＸ演算ユニットでの命令の実行が前提となるため、命令１スロットには接続しない。図１に示す図は、命令並列度８、前世代プロセッサの命令並列度４の場合の構成を示している。
【００４５】
ここで、前世代プロセッサでの最大命令並列度ｎ＝４であるので、順不同な命令が入力される場合、最大でも命令１〜４までしか使用されず、並列命令数は４以下となる。一方、命令数が５以上となる場合は、命令１〜８は、ＭＸ→ＭＹ→ＡＸ→ＡＹ→ＤＸ→ＤＹ→ＭＸ→ＭＹの順となる。
【００４６】
例えば、この図１に示す例では、ＤＸ→ＭＸ→ＡＸ→ＳＸの順で命令が並んでいる場合でも命令１スロットに存在するＤＸ命令を選択回路５を経由してＤＸ演算ユニットに発行できる。また、命令２スロットに存在するＭＸ命令を選択回路１を経由してＭＸ演算ユニットに発行できる。さらに、命令３スロットに存在するＡＸ命令を選択回路３を経由してＡＸ演算ユニットに発行できる。さらにまた、命令４スロットに存在するＳＸ命令を選択回路７を経由してＳＸ演算ユニットに発行できる。
【００４７】
本実施の形態においては、命令２スロット〜命令４スロットはすべての演算ユニットに、命令１スロットはＭＸ／ＡＸ／ＤＸ／ＳＸ演算ユニットに選択回路１〜選択回路８を介して接続されているため、前世代プロセッサの最大並列度に対応する命令１スロット〜命令４スロットにどのような順番で命令が存在しても正しく命令を発行することができる。一方、命令５スロット〜命令８スロットに関しては前世代プロセッサでは使われることがないスロットであり、新プロセッサのみが使用するため、命令数が５以上の場合は、命令順を固定することで面積削減、動作周波数向上を図ることができる。
【００４８】
すなわち、命令５〜８スロットは、ＤＸ演算ユニット１４５、ＤＹ演算ユニット１４６、ＳＸ演算ユニット１４７、ＳＹ演算ユニット１４８に順に入力されるため、命令５スロットは、選択回路５以降の選択回路５〜８、命令６スロットは、選択回路６以降の選択回路６〜８、命令７スロットは、選択回路７以降の選択回路７〜８、命令８スロットは、選択回路８にのみ接続されていればよい。
【００４９】
本実施の形態においては、従来例同様に２to1選択回路ベースで面積を算出すると、６×２＋４×２＋３×２＋２×２＝３０で２to1選択回路３０個相当となる。従来例の２to1選択回路２４個相当よりは面積は大きくなるが、性能向上のため、命令並列度を拡張した場合でも、前世代プロセッサとのバイナリーレベルでの互換性を維持しつつ面積削減と動作周波数削減を図ることができる。
【００５０】
また、遅延の大きなパスと小さなパスが明確になる事で論理合成時の最適化が進みやすくなる事や、面積が小さくなる事で配線長の削減、迂回配線の削減等の効果により動作周波数が向上する。
本発明の実施の形態２.
【００５１】
次に、本発明の実施の形態２について説明する。本実施の形態においては、命令発行部１６及び演算実行部１７の構成が実施の形態１と異なる。すなわち、演算ユニットを３種類とし、ＭＸ、ＭＹ、ＭＺは同一の演算ユニット、ＡＸは、１つの演算ユニットのみ、ＤＸ、ＤＹ、ＤＺ１、ＤＺ２は、同一の演算ユニットとする。この場合の命令発行部１６の接続は図２のようになる。図２は、本実施の形態にかかるプロセッサを示す図である。
【００５２】
実施の形態１と同様、演算ユニットの個数ｍ＝８、前世代プロセッサの最大命令並列度ｎ＝４とする。この場合、命令２〜４スロットは、全ての選択回路１〜８に接続される。一方、命令１スロットは、ＭＸ演算ユニット１７１、ＡＹ演算ユニット１７４、ＤＸ演算ユニット１７５と接続される。上述したように、ＭＹ演算ユニット１７２やＤＹ演算ユニット１７６は、ＭＸ演算ユニット１７１やＤＸ演算ユニット１７５の命令が存在する場合に命令が存在するため、命令１スロットは、選択回路２、３、６〜８に入力する必要がない。
【００５３】
本実施の形態においても、例えば、ＤＸ→ＭＸ→ＭＹ→ＡＸのような命令が発行されたとしても、命令１スロットに存在するＤＸ命令は、選択回路５を経由してＤＸ演算ユニット１７５に発行される。また、命令２スロットに存在するＭＸ命令は、選択回路１を経由してＭＸ演算ユニット１７１に発行される。更に、命令３スロットに存在するＭＹ命令は、選択回路２を経由してＭＹ演算ユニット１７２に発行され、命令４スロットに存在するＡＸ命令は、選択回路４を経由してＡＹ演算ユニット１７４に発行される。
【００５４】
また、命令数が５つ以上の場合は、命令は、ＭＸ→ＭＹ→ＭＺ→ＡＸ→ＤＸ→ＤＹ→ＤＺ１→ＤＺ２の順に入力されるため、命令５スロットは、選択回路５以降の選択回路５〜８、命令６スロットは、選択回路６以降の選択回路６〜８、命令７スロットは、選択回路７以降の選択回路７〜８、命令８スロットは、選択回路８にのみ接続されていればよい。
【００５５】
本実施の形態においても、実施の形態と同様の効果を奏する。従来例同様に２to1選択回路ベースで面積を算出すると、５×２＋４×２＋３×２＋２×２＝２０で２to1選択回路２８個相当となる。性能向上のため、命令並列度を拡張した場合でも、前世代プロセッサとのバイナリーレベルでの互換性を維持しつつ面積削減と動作周波数削減を図ることができる。
【００５６】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００５７】
１１  命令読出部
１２  命令レジスタ
１３、１６  命令発行部
１４、１７  演算実行部
１５  メモリ
１４１  ＭＸ演算ユニット
１４２  ＭＹ演算ユニット
１４３  ＡＸ演算ユニット
１４４  ＡＹ演算ユニット
１４５  ＤＸ演算ユニット
１４６  ＤＹ演算ユニット
１４７  ＳＸ演算ユニット
１４８  ＳＹ演算ユニット
１７１  ＭＸ演算ユニット
１７２  ＭＹ演算ユニット
１７３  ＭＺ演算ユニット
１７４  ＡＸ演算ユニット
１７５  ＤＸ演算ユニット
１７６  ＤＹ演算ユニット
１７７  ＤＺ１演算ユニット
１７８  ＤＺ２演算ユニット
２２０  メモリ
２２１  命令読出部
２２２  命令レジスタ
２２３  命令発行部
２２４  命令実行部
ＰＣ  レジスタ
ＧＲ  レジスタ
ＦＲ  レジスタ
【図１】
2011198100.tif 000003
【図２】
2011198100.tif 000004
【図３】
2011198100.tif 000005
【図４】
2011198100.tif 000006