(57)【要約】【課題】ベクトル命令の発行レートを向上させること。【解決手段】本発明のプロセッサ３００は、スカラ演算を行うスカラプロセッシングユニット３１０と、ベクトル演算を行うベクトルプロセッシングユニット３２０と、を備える。そして、上記スカラプロセッシングユニット３１０は、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令をベクトルプロセッシングユニット３２０に発行する。また、上記ベクトルプロセッシングユニット３２０は、統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う。【選択図】図１５
2020047221.tif 000002
【特許請求の範囲】
【請求項１】
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
プロセッサ。
【請求項２】
請求項１に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【請求項３】
請求項１又は２に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【請求項４】
請求項３に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【請求項５】
請求項１乃至４のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【請求項６】
請求項１乃至５のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の２以上のベクトル演算命令の少なくとも１つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。
【請求項７】
請求項６に記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の１つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の２以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。
【請求項８】
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
情報処理方法。
【請求項９】
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル命令を実行するプロセッサ、情報処理方法、プログラムに関する。
【背景技術】
【０００２】
近年、半導体プロセスの微細化によりＬＳＩ（Large Scale Integration）に搭載できる論理回路は飛躍的に増加し、ＣＰＵ（Central Processing Unit）の演算性能は向上している。この演算性能の向上は、コア数を増加させるマルチコア化による寄与が大きく、単一コア当たりの性能向上は鈍化しつつある。しかしながら、マルチコア化による性能向上を享受するために必要な並列化が困難なプログラムも多数存在するため、単一コアの性能向上は非常に重要である。
【０００３】
単一コアの性能向上を行う手法として、１命令で複数のデータと複数の演算器を動作可能にするＳＩＭＤ（Single Instruction Multiple Data）技術やベクトル技術が広く知られている。特に、ベクトル技術を利用するベクトルプロセッサでは、従来からベクトル長が長い場合は処理する要素数が多いため、各命令の発行・実行・終了の処理サイクルが長くなり、各処理時間に十分な余裕ができ、高い性能を出しやすい傾向があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０３５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ベクトル長が短くなるほど処理する要素数が少なくなり、各命令の発行・実行・終了の処理サイクルが短くなるため、各処理時間に余裕が減り性能を出しにくくなるという課題がある。換言すると、ベクトル命令において1命令で処理する要素数であるベクトル長が短くなるほど、性能向上を図るためには、ベクトル命令の発行レートの向上が極めて重要となる。
【０００６】
例えば、図１に示したベクトル演算器の構成を考える。この構成では、１つのＶＰＵ（ベクトルプロセッシングユニット）あたりベクトル演算器ユニット３２個からなる構成で、１つのベクトル演算器ユニットあたり同時に２命令処理が可能な構成の場合に、持続的なピーク性能を得るための命令発行レートを計算すると、以下のようになる。
【０００７】
ベクトル長が２５６の場合：１つのベクトル命令の処理時間＝２５６／３２＝８クロックになる。また、同時に２命令処理が可能なため、８／２＝４クロック毎にベクトル命令を１つ発行することが必須になる。
ベクトル長が１２８の場合：１つのベクトル命令の処理時間＝１２８／３２＝４クロックになる。また、同時に２命令処理が可能なため、４／２＝２クロック毎にベクトル命令を１つ発行することが必須になる。
ベクトル長が６４の場合：１つのベクトル命令の処理時間＝６４／３２＝２クロックになる。また、同時に２命令処理が可能なため、２／２＝１クロック毎にベクトル命令を１つ発行することが必須になる。
ベクトル長が３２の場合：１つのベクトル命令の処理時間＝３２／３２＝１クロックになる。また、同時に２命令処理が可能なため、１／２＝０．５クロック毎にベクトル命令を１つ発行することが必須になる。つまり、１クロックに２つのベクトル命令発行が必要になる。
【０００８】
上記の例のように、ベクトル長が短くなるほどベクトル命令の発行レートを向上させる必要があることが明らかである。
【０００９】
ここで、命令発行レートを向上させる技術としては、命令発行パイプラインの複数パイプライン化がある。ところが、各パイプラインに対して先行命令との依存関係を判定して命令発行する機能が必要になり、命令発行制御機能の大幅な複雑化が問題になる。例えば、１つの命令発行パイプライン（パイプ１）で構成される場合、パイプ１の先行命令を確認するのみで良いが、２つの命令発行パイプライン（パイプ１とパイプ２）から構成される場合、パイプ１に存在する命令はパイプ１の先行命令とパイプ２の先行命令を確認する必要があり、パイプ２に存在する命令はパイプ２の先行命令とパイプ１の先行命令を確認する必要がある。そのため、４倍の先行命令との依存関係を判定する必要があるため制御回路の複雑化が避けられない。
【００１０】
その他の命令発行レートを向上させる技術としては、命令発行ユニットの周波数のみ上げる方法があるが、命令発行ユニットの消費電力上昇や高クロック化に伴い遅延設計の難易度が上がるため問題となる。
【００１１】
また、特許文献１に記載のように、スカラストア命令を対象として命令パケットを結合する技術も開示されている。しかしながら、かかる技術では、ベクトル演算命令に適用できず、依然として上述した問題が残る。
【００１２】
このため、本発明の目的は、ベクトル命令の発行レートを向上させること、を実現することができるプロセッサ、情報処理方法、プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一形態であるプロセッサは、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
【００１４】
また、本発明の一形態である情報処理方法は、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
【００１５】
また、本発明の一形態であるプログラムは、
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させる、
という構成をとる。
【発明の効果】
【００１６】
本発明は、以上のように構成されることにより、ベクトル命令の発行レートを向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の背景技術を説明するための図である。
【図２】本発明の実施形態１におけるプロセッサの構成を示すブロック図である。
【図３】図２に開示したプロセッサによって処理される情報の一例を示す図である。
【図４】図２に開示したプロセッサによる処理の様子を説明するための図である。
【図５】図２に開示したプロセッサによる処理の様子を説明するための図である。
【図６】図２に開示したプロセッサによって処理される情報の一例を示す図である。
【図７】図２に開示したプロセッサによって処理される情報の一例を示す図である。
【図８】図２に開示したプロセッサによって処理される情報の一例を示す図である。
【図９】図２に開示したプロセッサによる処理の様子を説明するための図である。
【図１０】図２に開示したプロセッサによって処理される情報の一例を示す図である。
【図１１】図２に開示したプロセッサによる処理の様子を説明するための図である。
【図１２】図２に開示したプロセッサによる処理の様子を説明するための図である。
【図１３】図２に開示したプロセッサによる処理の様子を示す図である。
【図１４】図２に開示したプロセッサによる処理の様子を示す図である。
【図１５】本発明の実施形態２におけるプロセッサの構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
＜実施形態１＞
本発明の第１の実施形態を、図２乃至図１４を参照して説明する。図２は、プロセッサの構成を説明するための図であり、図３乃至図１４は、プロセッサによる処理の様子を説明するための図である。
【００１９】
［構成］
図２に示すように、本発明におけるプロセッサは、スカラ演算を行うＳＰＵ（スカラプロセッシングユニット）１００と、ベクトル演算をＶＰＵ（ベクトルプロセッシングユニット）２００と、を備え、ベクトル演算命令を実行するものである。特に、本実施形態におけるプロセッサは、複数命令を同時にデコードする機能（４命令同時デコード構成とする）を有し、演算命令の演算例外時にプログラムのデバッグ用途として該当演算命令のインストラクションカウンタＩＣ（演算例外ＩＣ）、つまり、当該演算命令の格納場所を表すアドレス情報、を出力する機能を有することとする。そして、本発明のプロセッサは、かかる機能に加えて、後述するよう複数のベクトル命令を１命令に圧縮し復元する機能を提供するものである。
【００２０】
また、本実施形態におけるプロセッサは、ベクトル命令を実行可能なプロセッサとして、後述する図３で示すような４オペランド形式の命令を実行する。例えば、Fused Multiply ADD(FMA)命令で、ＶＦＭＡ Ｖ０←Ｖ１＋（Ｖ２＊Ｖ３）のような命令を実行可能とする。さらに、ＶＦＭＡ Ｖ０←Ｓ１＋（Ｖ２＊Ｖ３）やＶＦＭＡ Ｖ０←Ｖ１＋（Ｓ１＊Ｖ３）のようなＶ１、Ｖ２の代わりにＳ１などのスカラレジスタも指定できる命令を実行可能とする。他には、マスク演算用のマスクレジスタが指定可能とする。ただし、マスク演算に関しては、本発明で実行する命令の圧縮・復元の制御に対して影響を及ぼさないので説明を省略する。なお、ベクトル長は、ベクトル命令において１命令で処理する要素数を設定する値で、図示されていないベクトル長設定レジスタの値を使用する。本実施例では、ベクトル長＝０〜２５６の値をとるとする。また、ＩＣは、５６ビットアドレスとし、演算例外ＩＣは、２５６バイト毎に基準のＩＣを設けるとする。
【００２１】
以下、具体的に、図２を参照して、本実施形態におけるプロセッサの構成について説明する。上記ＳＰＵ１００は、命令キャッシュ１０１、命令デコーダ１２１、命令スケジューラ１４１、スカラレジスタ１６１、ベクトル命令発行制御部１８１、を有する。さらに、上記命令デコーダ１２１は、命令デコーダ制御部１２２、ベクトル演算命令判定部１２３、ベクトル演算例外ＩＣレジスタ１２４、ベクトル演算命令圧縮制御部１２５、を有する。
【００２２】
また、上記ＶＰＵ２００は、命令デコーダ２０１、命令スケジューラ２２１、ベクトルレジスタ２４１、ベクトル演算ユニット群２６１、を有する。そして、命令デコーダ２０１は、命令デコーダ制御部２０２、ベクトル演算例外ＩＣレジスタ２０３、ベクトル演算命令復元制御部２０４、を有する。
【００２３】
また、上記ＳＰＵ１００とＶＰＵ２００は、各構成要素を接続する信号線１１０、１３０、１３１、１３２、１３３、１３４、１３５、１５０、１７０、１９０、２１０、２１１、２１２、２１３、２３０、２５０を有する。
【００２４】
以下、上述したＳＰＵ１００とＶＰＵ２００の構成の概略を説明する。なお、各構成の詳細については、動作説明時にさらに詳しく説明する。
【００２５】
上記ＳＰＵ１００の命令デコーダ１２１は、図３に示したフォーマット（命令長は８バイト）のベクトル演算命令を処理する場合に、２つの条件を判定してベクトル演算命令の圧縮が可能かどうかを判定する。
条件１：図４に示した組み合わせで同時にデコード可能な命令においてベクトル演算命令が命令圧縮対象になるか。つまり、同時にデコード可能な命令のうち、相互に連続する命令であるか。
条件２：図５に示した基準命令の演算例外ＩＣレジスタが有効であり、ベクトル演算命令の演算例外ＩＣが一致しているか。つまり、ベクトル演算命令の演算例外ＩＣのアドレスの一部である上位アドレスが一致するか。
【００２６】
具体的に、ＳＰＵ１００の命令デコーダ１２１の構成についてさらに詳述する。命令デコーダ１２１は、ベクトル演算命令を検出した場合に、当該ベクトル演算命令のＩＣと、基準命令の演算例外ＩＣレジスタと、の比較を行う。このとき、図５に示すように、基準命令の演算例外ＩＣが「有効ｂｉｔ＝０」の場合は、有効なベクトル演算命令ＩＣが登録されていない状態であるため、該当ベクトル演算命令のＩＣを、基準命令の演算例外ＩＣとして登録し、命令圧縮なし、と判定する。ここで、２５６バイト毎に基準のＩＣを設ける場合は、ＩＣの下位８ビットの省略が可能である。つまり、ベクトル演算命令の格納場所を表すアドレス情報の一部である上位アドレスのみを、基準命令の演算例外ＩＣとして登録する。これにより、連続する３２個分のベクトル演算命令の格納場所を表すアドレス情報が、基準命令の演算例外ＩＣとして登録される。
【００２７】
また、命令デコーダ１２１は、図５に示すように基準命令の演算例外ＩＣが「有効ｂｉｔ＝１」の場合は、ベクトル演算例外ＩＣレジスタ１２４に登録されている基準命令の演算例外ＩＣと、ベクトル演算命令のＩＣの上位アドレスと、を比較する。そして、これらが一致した場合は、命令圧縮あり、不一致の場合は、命令圧縮なし、と判定し、該当ベクトル演算命令のＩＣを基準命令の演算例外ＩＣとして新たに登録する。つまり、先行するベクトル演算命令のＩＣの一部が基準命令の演算例外ＩＣとして登録されているため、先行するベクトル演算命令のＩＣの一部である上位アドレスと、後続のベクトル演算命令のＩＣの一部である上位アドレスと、が一致する場合には、命令圧縮あり、と判定することとなる。
【００２８】
命令デコーダ１２１は、上述したように、命令圧縮なし、と判定した場合は、図６に示すような通常のベクトル演算命令の形式で、ＳＰＵ１００の命令スケジューラ１４１のエントリに格納する。このとき、命令デコーダ１２１は、同時に、エントリに該当ベクトル演算命令のＩＣを、演算例外ＩＣとして付加して、エントリに格納する。
【００２９】
命令デコーダ１２１は、命令圧縮あり、と判定した場合は、対象となる２つのベクトル演算命令の圧縮を行い、当該２つのベクトル演算命令を、図７に示すような形式で１つの統合ベクトル演算命令として統合し、ＳＰＵ１００の命令スケジューラ１４１の１エントリに格納する。そして、命令デコーダ１２１は、命令の圧縮を行った場合は、図７に示すエントリの一部である「byte14」部分を、基準命令の演算例外ＩＣからの相対ＩＣ、として利用する。具体的には、「byte14」部分を、図８に示すように、未使用ビット５−７（命令が８バイト固定長のアーキテクチャの場合に下３ビットは未使用になる）に「命令圧縮ｂｉｔ」を設け、かかるｂｉｔに「１」を設定する。
【００３０】
ＳＰＵ１００の命令スケジューラ１４１は、１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整えば１エントリ毎に命令を発行する。なお、ＳＰＵ１００では、ベクトル命令はインオーダーで発行する。このとき、命令スケジューラ１４１は、ベクトル演算命令でない場合と、ベクトル演算命令かつ命令圧縮ｂｉｔ＝０の場合は、１命令分の依存関係のあるスカラレジスタ１６１のデータが準備できたかどうかを確認する。ベクトル演算命令かつ命令圧縮ｂｉｔ＝１の場合は、圧縮されて１つの命令に統合されている元となる２命令分の依存関係のあるスカラレジスタ１６１のデータが準備できたかどうかを確認する。そして、ＳＰＵ１００は、ベクトル演算命令で指定されているスカラレジスタ１６１からデータを読み出し、ベクトル命令発行制御部１８１へ送る。
【００３１】
上記ベクトル命令発行制御部１８１は、ベクトル演算命令でない場合は、１命令分の各種情報とスカラレジスタデータをＶＰＵ２００へ発行する。命令圧縮ｂｉｔ＝０の場合は、図６に示すような１命令分の各種情報と演算例外ＩＣと１つのスカラレジスタデータを、ＶＰＵ２００へ発行する。命令圧縮ｂｉｔ＝１の場合は、図８に示すような１つの命令に統合された２命令分の各種情報と演算例外ＩＣの基準命令からの相対ＩＣと２つのスカラレジスタデータをＶＰＵ２００へ発行する。
【００３２】
上記ＶＰＵ２００の命令デコーダ２０１は、ＳＰＵ１００から命令を受け取ると、かかる命令に応じて以下のように作動する機能を有する。まず、ベクトル演算命令でない場合は、１命令分の各種情報をＶＰＵ２００の命令スケジューラ２２１に格納する。
【００３３】
また、命令デコーダ２０１は、命令圧縮ｂｉｔ＝０の場合は、１命令分の各種情報と演算例外ＩＣを、ＶＰＵ２００の命令スケジューラ２２１の１エントリに格納する。同時に、かかる命令に含まれる図９に示した演算例外ＩＣを、基準命令の演算例外ＩＣレジスタに登録して保存する。このとき、１命令に含まれている演算例外ＩＣの上位６バイトを、基準命令の演算例外ＩＣとして登録する。
【００３４】
また、命令デコーダ２０１は、命令圧縮ｂｉｔ＝１の場合は、１つのベクトル演算命令である２命令分の各種情報と演算例外ＩＣを、ＶＰＵ２００の命令スケジューラ２２１の２エントリに格納して、２つの命令に復元する。このとき、２エントリつまり２つの命令において、演算例外ＩＣについては、図１０に示すように、１命令目の演算例外ＩＣの上位６バイトとしては、上述したように登録されている基準命令の演算例外ＩＣを利用し、下位１バイトは、ＳＰＵ１００から受け取った命令のｂｙｔｅ１４に位置する「基準命令からの相対ＩＣ」を組み合わせ、圧縮前の演算例外ＩＣを復元して格納する。２命令目の演算例外ＩＣは、上位６バイトとしては、登録されている基準命令の演算例外ＩＣを利用し、下位１バイトは、ＳＰＵ１００から受け取った命令のｂｙｔｅ１４に位置する「基準命令からの相対ＩＣ」＋「命令長（８バイト命令の場合は＋８）」を計算して、圧縮前の演算例外ＩＣを復元して格納する。
【００３５】
ＶＰＵ２００の命令スケジューラ２２１は、１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整えば１エントリ毎に発行する。ＶＰＵ２００では、アウトオブオーダーでベクトル命令を実行する。そして、ＶＰＵ２００は、命令で指定されているベクトルレジスタ２４１のデータを読み出しベクトル演算ユニット群２６１へ送る。ベクトル演算ユニット群２６１は、ベクトルレジスタ２４１のデータを入力して、演算を行う。
【００３６】
［動作］
次に、上述したプロセッサの動作を説明する。なお、以下では、プロセッサに対する命令が、ベクトル演算命令の場合、ベクトル演算命令でない場合、とに分けて説明する。
【００３７】
・ベクトル演算命令の場合
まず、ＳＰＵ１００内の処理について説明する。命令キャッシュ１０１は、同時に複数命令（本実施例では４命令）を、信号線１１０を介して命令デコーダ制御部１２２へ出力する。
【００３８】
命令デコーダ制御部１２２は、同時に複数命令デコード（本実施例では４命令）を行い、命令デコード結果と命令に付随する各種情報を、信号線１３０を介してベクトル演算命令圧縮制御部１２５へ出力する。また、命令デコーダ制御部１２２は、命令デコード結果を、信号線１３１を介してベクトル演算命令判定部１２３へ出力する。
【００３９】
ベクトル演算命令判定部１２３は、命令デコード結果から、同時にデコードした４命令が、図１１に示した１６通りの命令の組み合わせで、ベクトル演算命令が連続しているかどうかをチェックする。このとき、ベクトル演算命令同士が連続する場合は命令圧縮対象と判定し、そうでない場合は命令圧縮対象外と判定する。そして、ベクトル演算命令判定部１２３は、命令が命令圧縮対象か否かを判定して、重複ケースを除く７通りの命令の組み合わせを、信号線１３２を介してベクトル演算命令圧縮制御部１２５へ出力する。
【００４０】
続いて、ベクトル演算命令判定部１２３は、ベクトル演算命令のデコード情報と命令ＩＣを、信号線１３３を介してベクトル演算例外ＩＣレジスタ１２４へ出力する。そして、ベクトル演算命令判定部１２３は、ベクトル演算命令に対して、当該命令のＩＣとベクトル演算例外ＩＣレジスタ１２４との比較を行う。このとき、同時タイミングで命令デコードを行ったベクトル演算命令の中では、先行する命令からＩＣの比較を行う。
【００４１】
ベクトル演算例外ＩＣレジスタ１２４と比較した命令のＩＣの一部が一致した場合は、信号線１３４を介して、ベクトル演算命令圧縮制御部１２５へＩＣ比較結果を出力する。ＩＣが不一致だった場合（不一致には有効ｂｉｔ＝０も含む）は、ベクトル演算例外ＩＣレジスタ１２４に不一致になったベクトル演算命令のＩＣを、基準命令の演算例外ＩＣとして登録して有効ｂｉｔ＝１にする。なお、後続のベクトル演算命令は、先行するベクトル演算命令がベクトル演算例外ＩＣレジスタ１２４に登録するＩＣと必ず一致するＩＣになるため、ＩＣ一致として扱う。このようなＩＣ比較結果を、信号線１３４を介してベクトル演算命令圧縮制御部１２５へ出力する。
【００４２】
ベクトル演算命令圧縮制御部１２５は、命令圧縮対象あるいは命令圧縮対象外の判定結果と、ＩＣ一致結果と、に基づいて、図１２に示した組み合わせで、命令圧縮なし、と、命令圧縮あり、を判定する。つまり、同時にデコードした複数（ここでは４つ）のベクトル演算命令のうち、命令が相互に連続しており、かつ、かかる命令の格納場所を表すアドレス情報であるＩＣの予め設定された上位ビットが一致するベクトル演算命令を、命令圧縮あり、と判定する。
【００４３】
そして、ベクトル演算命令圧縮制御部１２５は、「命令圧縮なし」の場合は、命令を信号線１３５を介して命令スケジューラ１４１に出力する。命令スケジューラ１４１は、受け取った命令を、図６に示した命令１の圧縮しない通常のベクトル演算命令の形式で、１エントリに１命令ずつ格納する。同時に、エントリに該当命令のＩＣを演算例外ＩＣとして付加してエントリに格納する。また、図８に示したｂｙｔｅ１４で命令圧縮ｂｉｔ＝０にする。
【００４４】
また、ベクトル演算命令圧縮制御部１２５は、「命令圧縮あり」の場合は、命令を信号線１３５を介して命令スケジューラ１４１に出力する。命令スケジューラ１４１は、受け取った命令を、図７に示した２つ命令を統合して圧縮した１つのベクトル演算命令の形式で、１エントリに２命令ずつ格納する。同時に、１つのエントリのｂｙｔｅ１４に、１命令目の演算例外ＩＣの下位バイトを基準命令からの相対ＩＣとして付加して、エントリに格納する。また、図８に示したｂｙｔｅバイト１４で命令圧縮ｂｉｔ＝１にする。
【００４５】
この後の動作は、ＳＰＵ１００の命令スケジューラ１４１にエントリとして格納されたベクトル演算命令のｂｙｔｅ１４に含まれる上述した「命令圧縮ｂｉｔ」の値により異なる。
【００４６】
「命令圧縮ｂｉｔ＝０」の場合について説明する。命令スケジューラ１４１は、格納されている１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば１エントリ毎に命令を、信号線１５０を介して出力する。ここで、スカラレジスタに関して１命令分の依存関係のあるスカラレジスタのデータが準備できたかを確認する。命令順序保証に関して、ＳＰＵ１００ではベクトル命令はインオーダーで発行する。スカラレジスタ１６１は、受け取った命令中にスカラレジスタのリード指定が存在する場合に、信号線１７０を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部１８１は、１命令分の各種情報とスカラレジスタデータを、信号線１９０を介してＶＰＵ２００へ発行する。
【００４７】
ＶＰＵ２００内の処理について説明する。命令デコーダ制御部２０２は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線２１０を介してベクトル演算命令復元制御部２０４へ出力する。また、命令デコード結果と演算例外ＩＣを、信号線２１１を介してベクトル演算例外ＩＣレジスタ２０３へ出力する。ベクトル演算例外ＩＣレジスタ２０３は、ベクトル演算命令かつ命令圧縮ｂｉｔ＝０の場合に、該当命令のベクトル演算例外ＩＣの上位６バイトを、図９に示した基準命令の演算例外ＩＣとして登録して有効ｂｉｔ＝１にする。
【００４８】
ベクトル演算命令復元制御部２０４は、ベクトル演算命令かつ命令圧縮ｂｉｔ＝０の場合、命令圧縮なし、と判定して命令を復元せずにそのままの形式で信号線２１３を介して命令スケジューラ２２１へ出力する。命令スケジューラ２２１は、受け取った命令を１エントリに１命令ずつ格納する。命令スケジューラ２２１は、格納されている１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば１エントリ毎に命令を、信号線２３０を介して出力する。命令順序保証に関して、ＶＰＵ２００ではベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ２４１は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線２５０を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群２６１は、ベクトルレジスタのデータを受け取り命令で指定された演算を行う。
【００４９】
次に、「命令圧縮ｂｉｔ＝１」の場合について説明する。ＳＰＵ１００の命令スケジューラ１４１は、格納されている１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば１エントリ毎に命令を、信号線１５０を介して出力する。ここで、スカラレジスタに関して命令圧縮されているため、２命令分の依存関係のあるスカラレジスタのデータが準備できたかを確認する。命令順序保証に関して、ＳＰＵ１００ではベクトル命令はインオーダーで発行する。スカラレジスタ１６１は、受け取った命令中にスカラレジスタのリード指定が存在する場合に、信号線１７０を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部１８１は、２命令分の各種情報とスカラレジスタデータを、信号線１９０を介してＶＰＵ２００へ発行する。
【００５０】
ＶＰＵ２００内の処理について説明する。命令デコーダ制御部２０２は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線２１０を介してベクトル演算命令復元制御部２０４へ出力する。また、命令デコード結果と演算例外ＩＣを、信号線２１１を介してベクトル演算例外ＩＣレジスタ２０３へ出力する。ベクトル演算例外ＩＣレジスタ２０３は、ベクトル演算命令かつ命令圧縮ｂｉｔ＝１の場合には、新たな登録は行わず、登録されている基準命令の演算例外ＩＣを、信号線２１２を介してベクトル演算命令復元制御部２０４へ出力する。
【００５１】
ベクトル演算命令復元制御部２０４は、ベクトル演算命令かつ命令圧縮ｂｉｔ＝１の場合、命令圧縮あり、と判定し、１つの命令から元の２命令を復元した形式で命令スケジューラ２２１へ出力する。演算例外ＩＣの復元方法に関しては、図１０に示したように、１命令目については、上位６バイトを登録されている基準命令の演算例外ＩＣとし、７バイト目はＳＰＵ１００より受け取った命令のｂｙｔｅ１４に含まれる「基準命令からの相対ＩＣ」とする。２命令目については、上位６バイトを登録されている基準命令の演算例外ＩＣとし、７バイト目はＳＰＵ１００より受け取った命令のｂｙｔｅ１４に含まれる「基準命令からの相対ＩＣ」＋「命令圧縮した１命令目の命令長（本発明例では８バイト）」とする。
【００５２】
命令スケジューラ２２１は、受け取った命令を１エントリに１命令ずつ格納する。ここでは、２エントリに２命令を格納する。命令スケジューラ２２１は、格納されている１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば、１エントリ毎に命令を信号線２３０を介して出力する。命令順序保証に関して、ＶＰＵ２００では、ベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ２４１は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線２５０を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群２６１は、ベクトルレジスタのデータを受け取り、命令で指定された演算を行う。
【００５３】
・ベクトル演算命令でない場合
次に、プロセッサに対する命令が、ベクトル演算命令でない場合について説明する。ＳＰＵ１００内では、命令キャッシュ１０１は、同時に複数命令（本実施例では４命令）を信号線１１０を介して命令デコーダ制御部１２２へ出力する。命令デコーダ制御部１２２は、同時に複数命令デコード（本実施例では４命令）を行い、命令デコード結果と命令に付随する各種情報を、信号線１３０を介してベクトル演算命令圧縮制御部１２５へ出力する。また、命令デコード結果を、信号線１３１を介してベクトル演算命令判定部１２３へ出力する。
【００５４】
ベクトル演算命令判定部１２３は、図１１に示した１６通りの命令の組み合わせでベクトル演算命令が連続しているかをチェックし、命令圧縮対象あるいは命令圧縮対象外かを判定し、重複ケースを除く７通りの命令組み合わせを、信号線１３２を介してベクトル演算命令圧縮制御部１２５へ出力する。本ケースでは、ベクトル演算命令が含まれていないので、全て圧縮対象外になる。
【００５５】
ベクトル演算命令圧縮制御部１２５は、命令を信号線１３５を介して命令スケジューラ１４１に命令を出力する。命令スケジューラ１４１は、受け取った命令を圧縮せずに、通常命令の形式で１エントリに１命令ずつ格納する。命令スケジューラ１４１は、格納されている１エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば、１エントリ毎に命令を信号線１５０を介して出力する。命令順序保証に関して、ＳＰＵ１００では、ベクトル命令はインオーダーで発行する。スカラレジスタ１６１は、受け取った命令中にスカラレジスタのリード指定が存在する場合に信号線１７０を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部１８１は、１命令分の各種情報とスカラレジスタデータを、信号線１９０を介してＶＰＵ２００へ発行する。
【００５６】
ＶＰＵ２００内では、命令デコーダ制御部２０２は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線２１０を介してベクトル演算命令復元制御部２０４へ出力する。ベクトル演算命令復元制御部２０４は、ベクトル演算命令でない場合、命令圧縮なしと判定し命令を復元せずにそのままの形式で信号線２１３を介して命令スケジューラ２２１へ出力する。
【００５７】
命令スケジューラ２２１は、受け取った命令を１エントリに１命令ずつ格納する。命令スケジューラ２２１は、格納されている１エントリ毎に命令の発行が可能か判定し必要な資源の準備が整い命令順序が保証できれば１エントリ毎に命令を、信号線２３０を介して出力する。命令順序保証に関して、ＶＰＵではベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ２４１は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線２５０を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群２６１は、ベクトルレジスタのデータを受け取り命令で指定された演算を行う。
【００５８】
［効果］
以上に説明したように、本発明においては、以下に記載するような効果を持つ。まず、ベクトル命令を実行するプロセッサにおいて、ＳＰＵ１００の命令デコーダ１２１による命令圧縮制御と、ＶＰＵ２００の命令デコーダ２０１による命令復元制御により、ＳＰＵ１００から１クロックに複数のベクトル演算命令を発行することが可能になる。これにより、ＳＰＵ−ＶＰＵのユニット間のベクトル演算命令の発行レートの向上が可能になる。また、ハードウェアのみの機能で実現可能なため、これまでのソフトウェアを変更せずにベクトル演算命令発行レートの向上を享受できる。
【００５９】
また、演算例外ＩＣのフィールドを活用することで、命令スケジューラの回路量を最小限の増加で圧縮した命令を格納することが可能である。また、命令圧縮を行うことで、これまでの技術の命令スケジューラと同一エントリ数の構成でも、格納する命令数を増加させることができるため性能向上が見込める。
【００６０】
ここで、具体的なベクトル命令の発行レート向上の効果を計算する。まず、命令列としてベクトルロード命令とベクトル演算命令の割合を１バイト／Ｆｌｏｐｓと仮定し、計算結果をベクトルストア命令で出力する命令列を考える。計算の入力データとしてＶＬＤ命令×３命令の合計８バイト×３＝２４バイトに対して、ＶＦＭＡ命令は２Ｆｌｏｐｓ／命令になるので、２４／２＝１２命令の組み合わせになる。最後に、計算結果の出力としてベクトルストア命令を入れた命令列になるので、図１３に示した命令圧縮がない場合は、ベクトル命令の発行に１６クロック必要だが、本発明の命令圧縮により１１クロックに削減できる。また、ベクトル演算命令としてＶＦＭＡ命令ではなくＶＦＭＰ（浮動小数点乗算）命令とＶＦＡＤ（浮動小数点加算）命令を利用する場合は、図１４に示した命令圧縮がない場合はベクトル命令の発行に２８クロック必要だが、本発明の命令圧縮により１７クロックに削減できる。
【００６１】
このように、ベクトル演算命令数が多いほど本発明の効果は大きくなる。また、ＳＰＵの命令スケジューラへの命令格納効率も同様に向上する。例えば、図１３の例では命令圧縮なしでは１６エントリ必要になるが、命令圧縮ありでは１１エントリに削減される。同様に、図１４の例では命令圧縮なしでは２８エントリ必要になるが、命令圧縮ありでは１７エントリに削減される。
【００６２】
なお、上記では、命令デコーダは複数命令を同時にデコードする機能として４命令同時デコード構成としたが、２命令以上であれば何命令同時デコードでもよい。また、上記では、２命令を１つに統合する場合を例示しているが、３つ以上の命令を１つに統合してもよい。
【００６３】
また、ベクトル命令の発行パイプラインは１パイプライン構成としたが、２パイプライン構成以上でも良い。また、命令長を８バイトとしたが何バイトでも良い。ベクトル演算命令として、４オペランド形式の命令で説明を行ったが、他のオペランド形式でも良い。例えば、ベクトル浮動小数点加算命令でＶＦＡＤ Ｖ０←Ｖ１＋Ｖ２を行う３オペランド形式でも良い。同時に２命令のベクトル演算命令を圧縮・復元する例を示したが、圧縮・復元の対象命令数は何命令でも良い。
【００６４】
また、ＩＣは５６ビットアドレスとしたが、何ビットでも良い。演算例外ＩＣは２５６バイト毎に基準のＩＣを設けるとしたが、何バイト毎に基準を設けてもよい。基準となるＩＣのサイズを大きくすることで命令圧縮可能な範囲が広がるが、相対ＩＣの表現に必要なビット数が増加する。
【００６５】
また、上記では、ハードウェアで構成されたＳＰＵ１００とＶＰＵ２００を備えるプロセッサを例示しているが、プロセッサにソフトウェアであるプログラムが組み込まれることで、ＳＰＵ１００及びＶＰＵ２００と同等の機能を実現してもよい。
【００６６】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１５を参照して説明する。図１５は、実施形態２におけるプロセッサの構成を示すブロック図である。なお、本実施形態では、実施形態１で説明したプロセッサの構成の概略を示している。
【００６７】
図１５に示すように、本実施形態におけるプロセッサ３００は、
スカラ演算を行うスカラプロセッシングユニット３１０と、ベクトル演算を行うベクトルプロセッシングユニット３２０と、を備える。
そして、上記スカラプロセッシングユニット３１０は、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニット３２０に発行し、
上記ベクトルプロセッシングユニット３２０は、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
【００６８】
なお、上記スカラプロセッシングユニット３１０と、ベクトルプロセッシングユニット３２０とは、プロセッサ３００がプログラムを実行することで実現されてもよい。
【００６９】
上記発明によると、スカラプロセッシングユニット３１０の命令デコード後に複数のベクトル命令を1命令に圧縮して、命令スケジューラに格納し命令を圧縮した形式のままでベクトルプロセッシングユニット３２０へベクトル命令を発行する。そして、ベクトルプロセッシングユニット３２０では、圧縮された命令を復元する機能を提供する。これにより、ベクトルプロセッサとしての通常の機能を損なうことなく、スカラプロセッシングユニット３１０とベクトルプロセッシングユニット３２０との間のベクトル命令発行レートを向上することができる。
【００７０】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるプロセッサ、情報処理方法、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００７１】
（付記１）
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
プロセッサ。
【００７２】
（付記２）
付記１に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【００７３】
（付記３）
付記１又は２に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【００７４】
（付記４）
付記３に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【００７５】
（付記５）
付記１乃至４のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する２以上のベクトル演算命令を１つの命令として統合する、
プロセッサ。
【００７６】
（付記６）
付記１乃至５のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の２以上のベクトル演算命令の少なくとも１つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。
【００７７】
（付記７）
付記６に記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の１つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の２以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。
【００７８】
（付記８）
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
情報処理方法。
【００７９】
（付記９）
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち２以上のベクトル演算命令を１つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の２以上のベクトル演算命令に復元して、当該２以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させるためのプログラム。。
【００８０】
なお、上記プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８１】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００８２】
１００  ＳＰＵ（スカラプロセッシングユニット）
１０１  命令キャッシュ
１２１  命令デコーダ
１２２  命令デコーダ制御部
１２３  ベクトル演算命令判定部
１２４  ベクトル演算例外ＩＣレジスタ
１２５  ベクトル演算命令圧縮制御部
１４１  命令スケジューラ
１６１  スカラレジスタ
１８１  ベクトル命令発行制御部
２００  ＶＰＵ（ベクトルプロセッシングユニット）
２０１  命令デコーダ
２０２  命令デコーダ制御部
２０３  ベクトル演算例外ＩＣレジスタ
２０４  ベクトル演算命令復元制御部
２２１  命令スケジューラ
２４１  ベクトルレジスタ
２６１  ベクトル演算ユニット群
３００  プロセッサ
３１０  スカラプロセッシングユニット
３２０  ベクトルプロセッシングユニット
【図１】
2020047221.tif 000003
【図２】
2020047221.tif 000004
【図３】
2020047221.tif 000005
【図４】
2020047221.tif 000006
【図５】
2020047221.tif 000007
【図６】
2020047221.tif 000008
【図７】
2020047221.tif 000009
【図８】
2020047221.tif 000010
【図９】
2020047221.tif 000011
【図１０】
2020047221.tif 000012
【図１１】
2020047221.tif 000013
【図１２】
2020047221.tif 000014
【図１３】
2020047221.tif 000015
【図１４】
2020047221.tif 000016
【図１５】
2020047221.tif 000017