(57)【要約】【課題】複素数データのベクトルロード命令、ベクトルストア命令のディスタンスは２要素飛びアクセスになる為、データ転送時間が連続要素アクセス時の２倍になり、さらに実部と虚部データをアクセスする必要があるため転送時間が遅いという問題がある。【解決手段】本発明は、複数のベクトルレジスタと複数の入出力ポートを有する中央処理装置と、複数の入出力ポートと複数のバンクから構成される主記憶部とを備えるベクトル処理装置において、命令語中に複素数データであることを示す複素数ビットを設け、コンパイラによって命令語を生成する際にベクトルロード、又はベクトルストアで取り扱うデータが複素数データであるかどうかを判断し、複素数データの場合は複素数ビットを１にセット、他のデータ形式の場合は０をセットし、複素数ビットが１の場合はベクトルデータとして実部と虚部データを１命令で扱うことによって、連続要素アクセスで処理する。【選択図】      図１
2005038185.tif 000002
【特許請求の範囲】
【請求項１】
命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを１要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとしてロード／ストア処理することを特徴とするベクトル処理装置。
【請求項２】
ベクトルロード命令、またはベクトルストア命令の処理において、命令語中の複素数ビットを判定し、ロードあるいはストアの対象データが複素数データの場合は、主記憶部での配置が連続する１又は複数の複素数データを１つのベクトルロード命令、あるいはベクトルストア命令で処理することを特徴とするベクトル処理装置。
【請求項３】
命令発行制御部と、ベクトル処理部と、データ整列手段と、アドレス生成部と、主記憶部とのデータの入出力を制御する入出力ポートと、を有してベクトル命令を実行する中央処理装置と、主記憶部と、を備えたベクトル処理装置であって、
前記命令発行制御部は、処理すべきデータのベクトル要素長（以降、ＶＬと称す）を保持するＶＬ保持手段と、ベクトルレジスタ番号と要素間ストライドと主記憶部のデータの開始アドレスを含むベクトル命令語中の命令の対象データが複素数か否かを表す複素数ビットを確認し複素数の場合はＶＬ保持手段に保持されているＶＬを２倍に補正し、複素数でない場合はＶＬの補正を行わないＶＬ補正手段と、を備え、ベクトル命令語と補正されたＶＬをベクトル処理部およびアドレス生成部に送出し、
前記ベクトル処理部は、複数のベクトルパイプラインに分割された複数のベクトルレジスタと、ベクトルレジスタとデータ整列手段との間にあって双方向にデータの受け渡しを行うクロスバと、を備え、
前記データ整列手段は、ベクトル命令語中の複素数ビットを確認し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割し命令語中で指定されたベクトルレジスタと連続する次の番号をもつ２つのベクトルレジスタに転送するように制御し、ベクトルストア命令時には２つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、ＣＰＵ出力ポートにデータを送出し、
前記アドレス生成部は、前記命令発行制御部からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中の要素間ストライド情報と開始アドレス情報と、ＶＬ情報から主記憶部上の各要素のアドレス情報を算出し入出力ポートにアドレス情報を送出することを特徴とするベクトル処理装置。
【請求項４】
請求項３において、前記命令発行制御部は、命令コード、当該命令コードの対象データが複素数か否かを表す複素数ビット、ロード時のデータを格納するまたはストア時のデータを格納したベクトルレジスタ番号、要素間ストライド、開始アドレスを含むベクトルロード命令、及びベクトルストア命令を処理することを特徴とするベクトル処理装置。
【請求項５】
請求項３において、前記ベクトル処理部は、命令語中で指定されたベクトルレジスタ番号に実数部、前記命令語で指定されたベクトルレジスタ番号の次のレジスタ番号に虚数部を格納する又は虚数部が格納されているとして処理することを特徴とするベクトル処理装置。
【請求項６】
請求項３において、前記ベクトル処理部は、ベクトルロード命令、及びベクトルストア命令語中の複素数ビットが複素数を示している場合、命令語中で指定された実数部のロード、ストアを行うベクトルレジスタと、虚数部のロード、ストアを行う連続した次の番号をもつベクトルレジスタとの２つのベクトルレジスタを対象として連続要素アクセスによりロード／ストア処理することを特徴とするベクトル処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複素数データに対するベクトルロード命令、ベクトルストア命令の高速化を図るベクトル処理装置に関する。
【背景技術】
【０００２】
ベクトルプロセッサによる複素数データを含む主記憶部の配列に対する加減乗除の演算は、その演算実行の並列性を確保するため、ベクトルレジスタにその配列情報を格納する際に、各複素数データの実数部、虚数部を実数部を格納する第１のレジスタ（群）、虚数部を格納する第２のレジスタ（群）に分けて格納されるのが普通である。特に、乗除算においては２つの複素数の実数部と虚数部間の演算を伴うため、このようにレジスタ（群）に分けることで並列演算が実行し易くなる。
【０００３】
ところで、このように配列上の複数の複素数データを演算実行のためにレジスタに格納するには主記憶上の各複素数の実数部をロードする命令と、虚数部をロードする命令とに分けて実行することになる。また逆のストア命令においても同様である。
【０００４】
特許文献１においては、複素数の加減算のみを含むループのベクトル化において、複素数型配列をその２倍の大きさを持つ実数型配列として扱うことでループ長が２倍となり、連続処理要素数を増やすとともに、ベクトルレジスタと主記憶間のロード、ストア時の主記憶上へのアクセスを連続アクセスにして効率化を図る記載がある。
【０００５】
【特許文献１】特開平１−１９１２６６（ページ３−４、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般に、図３に示すように、Ｆｏｒｔｒａｎ言語で記述されたプログラムにおいて複素数データを使用する際には実部データと虚部データを隣接させて主記憶部にマッピングするようにＦｏｒｔｒａｎ言語仕様で規定されている。
【０００７】
２つの複素数の演算を実施する際には実部同士、虚部同士、あるいは乗除算の場合、実部虚部同士の演算を行う必要がある為、主記憶部からのデータロードを行う際には実部データと虚部データの２つのベクトルロード命令を実行する必要がある。また、演算結果を主記憶部にストアする際にも実部データと虚部データとの２つのベクトルストア命令を実行する必要がある。
【０００８】
この時、ベクトルロード命令、及び、ベクトルストア命令は必然的に２要素飛びアクセスになる。ここで、２要素飛びアクセスとはデータ長が８Ｂの場合はディスタンスが１６Ｂになることを示す。
【０００９】
ベクトル計算機は、１マシンクロック毎に複数のデータを同時に処理する為にベクトルパイプラインを複数有している。複数のベクトルパイプラインは１つのベクトル命令をそれぞれのベクトルパイプラインに分割して処理するが、ベクトルパイプラインの手法に関しては本発明の本質ではないため説明を割愛する。
【００１０】
１マシンクロック毎に複数データを処理するという意味ではロード命令やストア命令などのメモリアクセス命令も同様であり、メモリアクセス命令において１マシンクロック毎に複数データを中央処理装置と主記憶部間でやりとりする手法は様々であるが、一般的には中央処理装置にポートと呼ばれる主記憶部とのインタフェースを複数設定し、複数ポートは１マシンクロックで同時に動作させることが可能であり、１マシンクロック毎に主記憶部へ複数個のデータを転送したり、或いは主記憶部から複数個のデータを受け取ったりすることが可能である。
【００１１】
従来技術におけるベクトル処理装置の構成例を図６に、従来技術における命令語の一構成例を図７に示す。
【００１２】
図７（ａ）はベクトルロード命令語の例を示すものであり、ＯＰフィールド１０１にはベクトルロード命令を示す命令コードを、ＶＲフィールド１０３にはロードしたデータを格納するベクトルレジスタ番号を、ＤＩＳＴフィールド１０４は主記憶部をアクセスする際の要素間距離であるストライド（ディスタンス）を示し、ＡＤＤＲＥＳＳフィールド１０５では１要素目の主記憶部上のアドレスを示す。
【００１３】
図７（ｂ）はベクトルストア命令語の例を示すものであり、ＯＰフィールド１０１にはベクトルストア命令を示す命令コードを、ＶＲフィールド１０３では主記憶部にストアするデータが格納されているベクトルレジスタ番号を指定し、ＤＩＳＴフィールド１０４とＡＤＤＲＥＳＳフィールド１０５は前記ベクトルロード命令語と同じである。
【００１４】
図６は従来技術における中央処理装置の構造を例示していて、命令発行制御部２と、ベクトル処理部３と、アドレス生成部１０と、ＣＰＵ入出力ポート１１と、を有しており、主記憶部４はＭＭＵ入出力ポート１２と、データを格納するＲＡＭ０  １３−１〜ＲＡＭ３  １３−４を有している。
【００１５】
命令発行制御部２は、処理すべきベクトル要素長（ＶＬ）を保持するＶＬ保持手段５を有しており、命令発行時には命令語１００とＶＬ保持手段５で保持されているベクトル要素長情報をベクトル処理部３、及びアドレス生成部１０に送出する。
【００１６】
ベクトル処理部３は、複数のベクトルレジスタＶＲ１  ７−１〜ＶＲｎ  ７−ｎとクロスバ８を備えており、ベクトルレジスタＶＲ１  ７−１は複数のベクトルパイプラインに分割（本説明では、ベクトルパイプラインは４本と仮定）されている。
【００１７】
要素０はレジスタ７−１１、要素１はレジスタ７−１２、要素２はレジスタ７−１３、要素３はレジスタ７−１４、要素４はレジスタ７−１１・・・というように各要素は分割され、各レジスタ７−１１〜７−１４は同時マシンクロックで読み出し、及び書き込みができる。
【００１８】
前記命令発行制御部２からベクトル命令を受け取ると命令語中で指定されるベクトルレジスタに起動をかける。また、各々のレジスタ７−１１〜７−１４はクロスバ８を介して各ＣＰＵ入出力ポート１１とデータの受け渡しを行う。
【００１９】
アドレス生成部１０は、命令発行制御部２からベクトルロード命令、及びベクトルストア命令を受け取ると命令語１００中のＤＩＳＴフィールド１０４で指定される要素間ストライド情報とＡＤＤＲＥＳＳフィールド１０５で指定される開始アドレス情報と、前記ＶＬ保持手段５から送られてきたＶＬ情報から主記憶部４上の各要素のアドレス情報を算出し、ＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に各アドレス情報を送出する。
【００２０】
ＣＰＵ入出力ポート１１は、入力ポート（ＣＩＰ）と出力ポート（ＣＯＰ）で構成されており、説明上、ＣＰＵ入出力ポートは各々４つと仮定し、ＣＰＵ入力ポートとＣＰＵ出力ポートをＣＩＰ０〜ＣＩＰ３、ＣＯＰ０〜ＣＯＰ３とする。
【００２１】
ＣＩＰ０〜ＣＩＰ３、及びＣＯＰ０〜ＣＯＰ３は同じマシンクロックで動作が可能であり、主記憶部のＭＭＵ出力ポートＭＯＰ０〜ＭＯＰ３、及びＭＭＵ入力ポートＭＩＰ０からＭＩＰ３とデータの受け渡しを行う。
【００２２】
ＭＭＵ出力ポートＭＯＰ０〜ＭＯＰ３、及びＭＭＵ入力ポートＭＩＰ０も同じマシンクロックで同時動作が可能であり、各ＭＭＵポート１２には、複数バンクで構成されているデータを保持するＲＡＭ０  １３−１〜ＲＡＭ３  １３−４が接続されている。
【００２３】
例えば、図３のような主記憶部に格納された連続する複素数データにおいて、要素０の実部データはＲＡＭ０  １３−１のＢ０に、要素０の虚部データはＲＡＭ１  １３−２のＢ１に、要素１の実部データはＲＡＭ２  １３−３のＢ２に、要素１の虚部データはＲＡＭ３  １３−４のＢ３に、要素２の実部データはＲＡＭ０  １３−１のＢ４に格納されているとする。
【００２４】
次に、従来技術のベクトル装置におけるベクトルロード命令の動作について具体的に説明する。
【００２５】
まず、連続要素アクセスの場合の動作を図８を用いて説明する。ロードすべきデータは要素順にＲＡＭ０  １３−１〜ＲＡＭ３  １３−４にインタリーブされて格納されているものとする。最初のマシンクロック（０ｔ：マシンクロックをｔと記す）では４つのＣＰＵ出力ポート  ＣＯＰ０〜ＣＯＰ３から要素０〜要素３のアドレスが主記憶部のＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３に対して出力される。転送時間を仮に３ｔとすると３ｔ目にＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３にアドレスが到着し、４ｔ（仮にＭＩＰ−ＲＡＭ間は１ｔとする）目にＲＡＭ０  １３−１のＢ０、ＲＡＭ１  １３−２のＢ１、ＲＡＭ２
１３−３のＢ２、及びＲＡＭ３  １３−４のＢ３に格納されている要素０：ｅ０、要素１：ｅ１、要素２：ｅ３、要素３：ｅ４を読み出す。
【００２６】
各ＲＡＭから読み出されたデータは５ｔ（仮にＲＡＭ−ＭＯＰ間は１ｔとする）目に各ＲＡＭに接続されているＭＭＵ出力ポートＭＯＰ０〜ＭＯＰ３にロードデータが転送される。その後３ｔ後、つまり８ｔ目にＣＰＵ入力ポートＣＩＰ０〜ＣＩＰ３にロードデータが到着し、９ｔ（仮にＣＩＰ−ベクトルレジスタ間は１ｔとする）目に命令によって指定されたベクトルレジスタ  ７−１（ＶＲ１）の各ベクトルパイプライン内のレジスタ７−１１〜７−１４にロードデータが格納される。
【００２７】
以上の処理はパイプラインで処理される為、図８に示すように連続要素アクセスの場合は、１マシンクロック毎に４つの要素を連続して処理できることがわかる。
【００２８】
次に、複素数データを取り扱う場合の２要素飛びアクセス時の動作を図９を用いて説明する。
【００２９】
ロードすべきデータは前述したように要素０の実部データ：Ｒ０はＲＡＭ０  １３−１のＢ０に、要素０の虚部データ：Ｉ０はＲＡＭ１  １３−２のＢ１に、要素１の実部データ：Ｒ１はＲＡＭ２  １３−３のＢ２に、要素１の虚部データ：Ｉ１はＲＡＭ３  １３−４のＢ３に、要素２の実部データ：Ｒ２はＲＡＭ０  １３−１のＢ４に格納されており、最初のベクトルロード命令にて実部データのみロードし、次のベクトルロード命令にて実部データがロードされるが、それぞれのベクトルロード命令は２要素飛びでアクセスされる。
【００３０】
実部データを２要素飛びアクセスのベクトルロード命令で処理する場合、最初の０ｔ目では２つのＣＰＵ出力ポートＣＯＰ０とＣＯＰ２から要素０の実部データ：Ｒ０と要素１の実部データ：Ｒ１の格納されているアドレス情報が主記憶部のＭＭＵ入力ポートＭＩＰ０とＭＩＰ２に対して出力される。３ｔ目にＭＭＵ入力ポートＭＩＰ０とＭＩＰ２にアドレスが到着し、４ｔ目にＲＡＭ０  １３−１のＢ０とＲＡＭ２  １３−３のＢ２に格納されている要素０の実部データ：Ｒ０と要素１の実部データ：Ｒ１を読み出す。
【００３１】
各ＲＡＭから読み出されたデータは５ｔ目に各ＲＡＭに接続されているＭＭＵ出力ポートＭＯＰ０とＭＯＰ２にロードデータが転送される。その後３ｔ後、つまり８ｔ目にＣＰＵ入力ポートＣＩＰ０とＣＯＰ２にロードデータが到着し、９ｔ目に命令によって指定されたベクトルレジスタ  ７−１（ＶＲ１）のベクトルパイプライン内のレジスタ７−１１と７−１２にロードデータが格納される。
【００３２】
また、要素２の実部データ：Ｒ２と要素３の実部データ：Ｒ３をアクセスする際には、先行の要素０の実部データ：Ｒ０と要素１の実部データ：Ｒ１の処理で使用する各ポートと同じポートを使用する為、先行要素の処理が終了するまで処理が待たされる。つまり２要素飛びアクセスの場合は各４つのポートのうち半分しか使用しない為、図９に示すように中央処理装置−主記憶部間のデータ転送時間は連続要素アクセス時に比べて２倍の時間を要する。
【００３３】
次に、実部データのベクトル要素長分（ここでは１６要素）の処理が終了した後に、虚部データのロード（Ｉ０〜Ｉ１５）用の２要素飛びアクセスのベクトルロード命令が開始され、実部データ処理では使用しないポートを使用する。（図９参照）
また、ベクトルストア命令においてもベクトルロード命令と同様に、連続要素アクセスの場合は１ｔ間に全ポート（４ポート）が動作し同時に４要素を処理することが可能であるが、２要素飛びアクセスでは１ｔ間に半分のポート（２ポート）しか動作しない為２要素しか処理をすることができず２倍の実行時間を要する。
【００３４】
以上のように、従来のこの種のベクトル処理装置の課題は、複素数データの場合はベクトルロード命令、およびベクトルストア命令のディスタンスは２要素飛びアクセスになる為、データ転送時間が連続要素アクセス時の２倍になり、さらに実部データと虚部データの２データをアクセスする必要があり処理時間が遅いということである。
【００３５】
また、複素数データ処理時の性能を重視して最初からＣＰＵポートとＭＭＵポートを２倍実装しておくことによって複素数データ処理の高速化を図るケースもあるが、ＨＷ量が激増するという欠点がある。
【００３６】
本発明の目的は、命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを１要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとして処理することによって、前述した特許文献１のように加減算データに限定することなく、ベクトルロード命令、またはベクトルストア命令に要する時間を短縮することができる機能を有するベクトル処理装置を提供することである。
【課題を解決するための手段】
【００３７】
本発明の第１のベクトル処理装置は、命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを１要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとしてロード／ストア処理することを備える。
【００３８】
本発明の第２のベクトル処理装置は、ベクトルロード命令、またはベクトルストア命令の処理において、命令語中の複素数ビットを判定し、ロードあるいはストアの対象データが複素数データの場合は、主記憶部での配置が連続する１又は複数の複素数データを１つのベクトルロード命令、あるいはベクトルストア命令で処理することを備える。
【００３９】
本発明の第３のベクトル処理装置は、命令発行制御部と、ベクトル処理部と、データ整列手段と、アドレス生成部と、主記憶部とのデータの入出力を制御する入出力ポートと、を有してベクトル命令を実行する中央処理装置と、主記憶部と、を備えたベクトル処理装置であって、
前記命令発行制御部は、処理すべきデータのベクトル要素長（以降、ＶＬと称す）を保持するＶＬ保持手段と、ベクトルレジスタ番号と要素間ストライドと主記憶部のデータの開始アドレスを含むベクトル命令語中の命令の対象データが複素数か否かを表す複素数ビットを確認し複素数の場合はＶＬ保持手段に保持されているＶＬを２倍に補正し、複素数でない場合はＶＬの補正を行わないＶＬ補正手段と、を備え、ベクトル命令語と補正されたＶＬをベクトル処理部およびアドレス生成部に送出し、
前記ベクトル処理部は、複数のベクトルパイプラインに分割された複数のベクトルレジスタと、ベクトルレジスタとデータ整列手段との間にあって双方向にデータの受け渡しを行うクロスバと、を備え、
前記データ整列手段は、ベクトル命令語中の複素数ビットを確認し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割し命令語中で指定されたベクトルレジスタと連続する次の番号をもつ２つのベクトルレジスタに転送するように制御し、ベクトルストア命令時には２つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、ＣＰＵ出力ポートにデータを送出し、
前記アドレス生成部は、前記命令発行制御部からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中の要素間ストライド情報と開始アドレス情報と、ＶＬ情報から主記憶部上の各要素のアドレス情報を算出し入出力ポートにアドレス情報を送出することを備える。
【００４０】
本発明の第４のベクトル処理装置は、第３の発明において、前記命令発行制御部は、命令コード、当該命令コードの対象データが複素数か否かを表す複素数ビット、ロード時のデータを格納するまたはストア時のデータを格納したベクトルレジスタ番号、要素間ストライド、開始アドレスを含むベクトルロード命令、及びベクトルストア命令を処理することを備える。
【００４１】
本発明の第５のベクトル処理装置は、第３の発明において、前記ベクトル処理部は、命令語中で指定されたベクトルレジスタ番号に実数部、前記命令語で指定されたベクトルレジスタ番号の次のレジスタ番号に虚数部を格納する又は虚数部が格納されているとして処理することを備える。
【００４２】
本発明の第６のベクトル処理装置は、第３の発明において、前記ベクトル処理部は、ベクトルロード命令、及びベクトルストア命令語中の複素数ビットが複素数を示している場合、命令語中で指定された実数部のロード、ストアを行うベクトルレジスタと、虚数部のロード、ストアを行う連続した次の番号をもつベクトルレジスタとの２つのベクトルレジスタを対象として連続要素アクセスによりロード／ストア処理することを備える。
【発明の効果】
【００４３】
本発明においては、以下に記載するような効果を奏する。
【００４４】
第１の効果は、ソフトウェアで取り扱うデータの種類をチェックし、複素数データの場合は命令語中に複素数ビットを有効にし、その情報を元に複素数データの場合はＶＬ補正手段によって１命令で処理する要素長を２倍にし、データ整列手段において連続するデータを実部データと虚部データに分割、あるいは、実部データと虚部データに分かれているものを連続するデータに整列することによって、１つのベクトルロード命令、あるいは１つのベクトルストア命令で実部データと虚部データを扱うことが可能となり、更に、連続データとして主記憶部をアクセスするので、ストライドは連続要素アクセスになり中央処理装置と主記憶部間のデータ転送が最高速で処理することができる為、複素数データ処理を高速化できることである。
【発明を実施するための最良の形態】
【００４５】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００４６】
図１は、本発明のベクトル処理装置の一構成例であり、図２は本発明の命令語の一構成例である。
【００４７】
図２の（ａ）、図２の（ｂ）において、ベクトルロード命令、及びベクトルストア命令は、命令語中に複素数ビット１０２を設けており、取り扱うデータが複素数か否かを設定することができ、複素数データ使用時には要素間のストライド（ディスタンス）を示すＤＩＳＴフィールド１０４は連続要素飛びであることを指定する。
【００４８】
例えば、倍精度での複素数データの場合は８バイト（以後、バイトはＢと記す）が指定される。また、ＡＤＤＲＥＳＳフィールド１０５にはスタートアドレスが格納されている。（本実施例では、倍精度での複素数データであると仮定して説明を行う。）
図１において、命令発行制御部２は、処理すべきベクトル要素長（ＶＬ）を保持するＶＬ保持手段５と、命令語１００中の複素数ビット１０２情報に従ってＶＬ保持手段５に保持されているベクトル要素長を変更するＶＬ補正手段６を有している。
【００４９】
ＶＬ補正手段６は、前記複素数ビット１０２が“１”の場合はＶＬ保持手段５に保持されているベクトル要素長を２倍に補正し（２＊ＶＬ）、前記複素数ビット１０２が“０”の場合にはベクトル要素長は補正しない（ＶＬ）。
【００５０】
命令発行制御部２は、命令語と前記ＶＬ補正手段６で補正されたベクトル要素長をベクトル処理部３、及びアドレス生成部１０に送出する。ベクトルロード命令、及びベクトルストア命令語中の複素数ビット１０２が複素数を示している場合、ベクトル処理部３では２つのベクトルレジスタに起動をかける。例えば、ベクトルロード命令の場合は主記憶部４からロードしたデータを後述するデータ整列手段９を介して実部データと虚部データに分割して２つのベクトルレジスタに格納し、ベクトルストア命令の場合は、実部データと虚部データが格納されている２つのベクトルレジスタを読み出して後述するデータ整列手段９を介して主記憶部４に格納する。
【００５１】
データ整列手段９は、命令語中の前記複素数ビット１０２を判断し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割して命令語で指定された２つのベクトルレジスタに転送するように制御し、またベクトルストア命令時には２つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、ＣＰＵ出力ポート１１にデータを送出する。
【００５２】
アドレス生成部１０は、命令発行部２からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中１００のＤＩＳＴフィールド１０４で指定される要素間ストライド（ディスタンス）情報とＡＤＤＲＥＳＳフィールド１０５で指定される開始アドレス情報と、ＶＬ補正手段６から送られたＶＬ情報から、主記憶部４上の各要素のアドレス情報を算出し、ＣＰＵ入出力ポート１１にアドレス情報を送出する。複素数データの場合は、ＤＩＳＴフィールドには８Ｂが指定されており、かつＶＬ情報は２＊ＶＬに補正されている為、ベクトルロード命令やベクトルストア命令は連続要素アクセスで２＊ＶＬ分処理することになり、１命令で実部データと虚部データを処理することが可能となる。
【００５３】
このようにして、本願発明では、ソフトウェアで処理すべきデータが複素数データか否かを命令語中の複素数ビットで指定し、ハードウェアではベクトルロード命令、あるいはベクトルストア命令を処理する際には該複素数ビットを判定し、複素数データの場合は、実部データと虚部データを１つの命令で処理を行い、更に中央処理装置と主記憶部間のデータ転送を連続要素アクセスで処理ができる為、複素数データ時の処理を高速に処理することができる。
【００５４】
以降、さらに詳細に本発明の実施例について説明をする。
【００５５】
図２には、本発明の命令語１００の一実施例が示されている。
【００５６】
図２（ａ）はベクトルロード命令語の例を示すものであり、ＯＰフィールド１０１にはベクトルロード命令を示す命令コードを示し、複素数ビット１０２は取り扱うデータが複素数か否かを示す。本説明では、複素数ビット１０２が“１”の時は複素数データであることを示すと仮定する。ＶＲフィールド１０３にはロードしたデータを格納するベクトルレジスタ番号を指定する。複素数データの場合は実部データと虚部データを格納する２つのベクトルレジスタを指定する必要があるが、本説明では、ＶＲフィールド１０３で指定されたベクトルレジスタ番号に実部データを、連続する次のベクトルレジスタ番号に虚部データを格納するものとし、ＶＲフィールド１０３には１つのベクトルレジスタ番号のみ指定するものとする。尚、ベクトルレジスターには複数の要素を格納することが可能である。
【００５７】
ＤＩＳＴフィールド１０４は主記憶部をアクセスする際の要素間距離であるストライド（ディスタンス）を示し、ＡＤＤＲＥＳＳフィールド１０５では１要素目の主記憶部上のアドレスを示す。
【００５８】
図２の（ｂ）はベクトルストア命令語の例を示すものであり、ＯＰフィールド１０１にはベクトルストア命令を示す命令コードを示し、複素数ビット１０２は取り扱うデータが複素数か否かを示す。またＶＲフィールド１０３では主記憶部にストアするデータが格納されているベクトルレジスタ番号を指定する。
【００５９】
従来、複素数データの場合は実部データが格納されているベクトルレジスタと虚部データが格納されているベクトルレジスタの２つを指定する必要があるが、本発明ではＶＲフォールド１０３で指定されたベクトルレジスタに実部データが格納されていて、その連続する次のベクトルレジスタには虚部データが格納されているものとする。ＤＩＳＴフィールド１０４とＡＤＤＲＥＳＳフィールド１０５は前記ベクトルロード命令語と同じである。
【００６０】
図１に、本発明のベクトル処理装置の一実施例の構成を示す。
【００６１】
図において中央処理装置１は命令発行制御部２と、ベクトル処理部３と、データ整列手段９と、アドレス生成部１０と、ＣＰＵ入出力ポート１１と、を有している。
【００６２】
主記憶部４は、ＭＭＵ入出力ポート１２と、データを格納するＲＡＭ０  １３−０〜ＲＡＭ３  １３−３と、を有している。
【００６３】
中央処理装置１の命令発行制御部２には処理すべきベクトル要素長（ここではＶＬという）を保持するＶＬ保持手段５と、命令語１００中の複素数ビット１０２情報に従ってＶＬ保持手段５に保持されているベクトル要素長を変更するＶＬ補正手段６と、を有している。ＶＬ補正手段では複素数ビット１０２が“１”の場合はＶＬ保持手段５に保持されているベクトル長を２倍に補正し（２＊ＶＬ）、複素数ビット１０２が“０”の場合にはベクトル要素長は補正しない（ＶＬ）。
【００６４】
命令発行制御部２は命令語１００と前記ＶＬ補正手段６で補正されたベクトル要素長をベクトル処理部３、およびアドレス生成部１０に送出する。
【００６５】
ベクトル処理部３は、複数のベクトルレジスタＶＲ１  ７−１〜ＶＲｎ  ７−ｎと、クロスバ８と、を備えており、各ベクトルレジスタ７−１〜７−ｎは、複数のベクトルパイプラインに分割（本発明ではベクトルパイプラインは４本と仮定）されており、要素０はレジスタ７−１１、要素１はレジスタ７−１２、要素２はレジスタ７−１３、要素３はレジスタ７−１４、要素４はレジスタ７−１１というように各要素は分割されている。
【００６６】
各レジスタ７−１１〜７−１４は１マシンクロックで同時に読み出しや書き込みが行われる。前記命令発行制御部２からベクトル命令語１００を受け取ると命令語中のＶＲレジスタ１０３で指定されたベクトルレジスタに起動をかける。また各々のレジスタ７−１１〜７−１４はクロスバ８を介してデータ整列手段９に対してデータの受け渡しができる。
【００６７】
データ整列手段９は、命令語中の複素数ビット１０２を判断し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割して２つのベクトルレジスタに転送するように制御し、またベクトルストア命令時には２つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、ＣＰＵ出力ポート１１にデータを送出する。
【００６８】
アドレス生成部１０は前記命令発行制御部２からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中１００のＤＩＳＴフィールド１０４で指定される要素間ストライド情報とＡＤＤＲＥＳＳフィールド１０５で指定される開始アドレス情報と、前記ＶＬ補正手段６から送られたＶＬ情報から主記憶部４上の各要素のアドレス情報を算出しＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に各アドレス情報を送出する。本説明では開始アドレスは０であると仮定する。複素数データの場合、ＤＩＳＴフィールド１０４には連続要素アクセスであることを示す８Ｂが指定されており、要素０のアドレス情報は０となり、ＣＰＵ出力ポートＣＯＰ０にアドレス情報が送られる。また、要素１のアドレス情報は８となりＣＰＵ出力ポートＣＯＰ１に、要素２のアドレス情報は１６となりＣＰＵ出力ポートＣＯＰ２に送られ、２＊ＶＬ分のアドレスを生成しＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送られる。
【００６９】
ＣＰＵ入出力ポート１１は入力ポート（ＣＩＰ）と出力ポート（ＣＯＰ）で構成されており、説明上、入力ＣＰＵポートと出力ＣＰＵポートはそれぞれ４つと仮定し、ＣＰＵ入力ポートとＣＰＵ出力ポートをＣＩＰ０〜ＣＩＰ３、ＣＯＰ０〜ＣＯＰ３とする。
【００７０】
ＣＰＵ入出力ポート１１は、主記憶部４内のＭＭＵ入出力ポート１２と接続されており、アクセスするＲＡＭ０  １３−１〜ＲＡＭ３  １３−４のアドレス情報によって使用するＣＰＵ入出力ポート１１とＭＭＵ入出力ポート１２が決定される。例えば、ＲＡＭ０  １３−１のＢ０をアクセスする場合は、ＣＩＰ０／ＣＯＰ０とＭＩＰ０／ＭＯＰ０を経由し、アドレス情報が０の場合は、ＲＡＭ０１３−１のＢ０をアクセスするものとする。
【００７１】
最初に、ベクトルロード命令を処理する場合の動作について具体的に説明する。
【００７２】
図３に示すように、要素０，要素１，・・・等の複素数データは、Ｆｏｒｔｒａｎ言語仕様によれば、メモリ上は要素０の実部データ、要素０の虚部データ、要素１の実部データ、要素１の虚部データというように一つの複素数データの実部と虚部は連続して配置されなければならない。
【００７３】
ここで、要素０の実部データのアドレス情報を０とすると、要素０の実部データはＲＡＭ０  １３−１のＢ０に、要素０の虚部データはＲＡＭ１１３−２のＢ１に、要素１の実部データはＲＡＭ２１３−３のＢ２に、要素１の虚部データはＲＡＭ３１３−４のＢ３に、要素２の実部データはＲＡＭ０  １３−１のＢ４に格納されている。
【００７４】
また、主記憶部４からロードしたデータはベクトルレジスタのＶＲ１  ７−１とＶＲ２  ７−２に格納し、ベクトル要素長はＶＬであると仮定する。まず、複素数データのベクトルロード命令を示す命令語１００中では、複素数ビット１０２は“１”にセットされ、ＶＲフィールド１０３にはＶＲ１、ＤＩＳＴフィールド１０４には連続要素アクセスであることを示す８Ｂ、ＡＤＤＲＥＳＳフィールド１０５には要素０の実部データが格納されているアドレス情報である０が指定される。
【００７５】
ＶＬ補正手段６では命令語１００中の複素数ビット１０２が“１”となっているので、ＶＬ保持手段５に格納されているベクトル要素長（ＶＬ）を２倍に補正する。命令発行制御部２は命令語１００とＶＬ補正手段６で補正したベクトル要素長情報（２＊ＶＬ）をアドレス生成部１０に送出し、アドレス生成部１０では要素番号とＤＩＳＴフィールドの値から各要素のアドレス情報を生成する。
【００７６】
例えば、要素０の実部データのアドレスは０、要素０の虚部データのアドレスは８，要素１の実部データは１６、…と言うように各要素のアドレス情報を算出した後、１マシンクロック毎に４データ分のアドレス情報をＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出し、最終的には２＊ＶＬ分のデータに対するアドレス情報をＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出する。
【００７７】
各アドレス情報はＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３からＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３を経由して、ＲＡＭ１３−１〜ＲＡＭ１３−４に格納されているデータを読み出す。
【００７８】
最初の１マシンクロック目には、Ｂ０に格納されている要素０の実部データ、Ｂ１に格納されている要素０の虚部データ、Ｂ２に格納されている要素１の実部データ、およびＢ３に格納されている要素１の虚部データが読み出される。
【００７９】
次のマシンクロックでは、Ｂ０に格納されている要素２の実部データ、Ｂ１に格納されている要素２の虚部データ、Ｂ２に格納されている要素３の実部データ、Ｂ３に格納されている要素３の虚部データが読み出される。ＲＡＭ０  １３−１〜ＲＡＭ３  １３−４から読み出されたデータは、ＭＭＵ出力ポートＭＯＰ０〜ＭＯＰ３とＣＰＵ入力ポートＣＩＰ０〜ＣＩＰ３を経由して、データ整列手段９に送出される。
【００８０】
データ整列手段９では、ロードデータを受け取ると１データ目は実部データ、２データ目は虚部データ、３データ目は実部データ…である為、奇数番目のデータ、つまり実部データはベクトルレジスタＶＲ１  ７−１に、偶数番目のデータ、つまり虚部データは連続するベクトルレジスタＶＲ２  ７−２に分けて転送する。
【００８１】
ベクトルレジスタＶＲ１  ７−１、及びＶＲ２  ７−２では、データ整列手段９からロードデータを受け取ると１データ目はベクトルパイプライン０のＶＲ１  ７−１１、及びＶＲ２  ７−２１に、２データ目はベクトルパイプライン１のＶＲ１  ７−１２、及びＶＲ２  ７−２２に格納する。このようにして、複素数データのロードであっても、連続要素アクセスのベクトルロード命令１命令で処理を行うことが可能となる。
【００８２】
上記実施例では、データ整列手段９はＣＰＵ入力ポートＣＩＰ０〜ＣＩＰ３から１マシンクロック毎に４つのデータを受け取り、この４つのデータを２つのベクトルレジスタＶＲ１，ＶＲ２に分けて格納するため、各ベクトルレジスタには１マシンクロック毎に２つのデータを書き込むと説明したが、データ整列手段９では２マシンクロック間に受け取る８つのデータを４つの実部データと４つの虚部データに分割することによって、２つのベクトルレジスタには１マシンクロック毎に４つのでデータを書き込むことも可能である。この場合はデータ整列手段９内にバッファなどの調整手段が必要となる。
【００８３】
次に、ベクトルストア命令を処理する場合の動作について具体的に説明する。
【００８４】
主記憶部にストアすべきデータのうち実部データはＶＲ１に、虚部データはＶＲ２に格納されているものとし、要素０の実部データは主記憶部上のアドレス０であるＲＡＭ０
１３−１のＢ０に格納されるものとする。
【００８５】
ストアの際にもＦｏｒｔｒａｎ言語仕様を守る必要がある為、要素０の実部データをＲＡＭ０  １３−１のＢ０に格納する場合は、要素０の虚部データをＲＡＭ１  １３−２のＢ１に格納する必要がある。複素数データのベクトルストア命令を示す命令語１００中では、複素数ビット１０２は“１”にセットされ、ＶＲフィールド１０３にはＶＲ１、ＤＩＳＴフィールド１０４には連続要素アクセスであることを示す８Ｂ、ＡＤＤＲＥＳＳフィールド１０５には要素０の実部データの格納先のアドレス情報である０が指定される。ＶＬ補正手段６では命令語１００中の複素数ビット１０２が“１”となっているので、ＶＬ保持手段５に格納されているベクトル要素長（ＶＬ）を２倍に補正する。
【００８６】
命令発行制御部２は命令語１００とＶＬ補正手段６で補正したベクトル要素長情報（２＊ＶＬ）をアドレス生成部１０に送出する。アドレス生成部１０ではベクトルロード命令時と同様に要素番号とＤＩＳＴフィールドの値から各要素のアドレス情報を算出し、１マシンクロック毎に４データ分のアドレス情報をＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出し、最終的には２＊ＶＬ分のデータに対するアドレス情報をＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出する。
【００８７】
ベクトル処理部３は命令発行制御部２から複素数のベクトルストア命令を受け取ると命令語中のＶＲフィールドで指定されたベクトルレジスタＶＲ１  ７−１とそれに連続するベクトルレジスタＶＲ２  ７−２の２つのベクトルレジスタに起動をかけ、１マシンクロック毎に各ベクトルレジスタＶＲ１、ＶＲ２からそれぞれ２つのデータを読み出し、データ整列手段９にデータを送出する。
【００８８】
データ整列手段９では、ＶＲ１から送出された実部データとＶＲ２から送出された虚部データを、要素０の実部データ、要素０の虚部データ、要素１の実部データ、要素１の虚部データというように実部データと虚部データが交互になるように整列し、整列後のデータ列はＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出される。
【００８９】
ＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３ではアドレス生成手段１０から受け取ったアドレス情報と、データ整列手段９から受け取ったストアデータをペアにしてＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３に送出し、各ＭＭＵ入力ポートに接続されているＲＡＭ０  １３−１〜ＲＡＭ３  １３−４にストアデータを格納する。このようにして、複素数データのストアであっても、連続要素アクセスのベクトルストア命令１命令で処理を行うことが可能となる。
【００９０】
上記実施例では、データ整列手段９はベクトル処理部３内の２つのベクトルレジスタから１マシンクロック毎に２つのデータを受け取り、この各２つのデータを実部データと虚部データが交互になるよう４つのデータに整列したのちＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出すると説明したが、各ベクトルレジスタからは１マシンクロック毎に４つのデータを読み出し、データ整列手段９内にバッファを設けそのバッファに一旦格納したのち、２つの実部データと２つの虚部データを交互に整列し４つのデータにした後ＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出することも可能である。
【００９１】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００９２】
図４のタイミングチャートを用いて、ベクトルロード命令処理時の動作を説明する。
【００９３】
アドレス生成手段１０によってアドレス情報が生成されＣＰＵ出力ポートにアドレス情報が送出される（図示せず）。それを受け取ったＣＰＵ入出力ポート１１は、最初のマシンクロック（０ｔ：マシンクロックをｔと記す）では４つのＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３から要素０の実部データ：Ｒ０と要素０の虚部データ：Ｉ０と要素１の実部データ：Ｒ１と要素１の虚部データ：Ｉ０をアクセスする為のアドレス情報をＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３に対して出力する。
【００９４】
ＣＰＵ出力ポートとＭＭＵ入力ポート間の転送時間を仮に３ｔとすると、３ｔ目にＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３にアドレス情報が到着し、４ｔ目（仮にＭＩＰ−ＲＡＭ間は１ｔとする）にはＲＡＭ０  １３−１のＢ０、ＲＡＭ１  １３−２のＢ１、ＲＡＭ２  １３−３のＢ２、ＲＡＭ３  １３−４のＢ３に格納されている要素０の実部データ：Ｒ０と要素０の虚部データ：Ｉ０と要素１の実部データ：Ｒ１と要素１の虚部データ：Ｉ０を読み出す。
【００９５】
各ＲＡＭから読み出されたデータは５ｔ目（仮にＲＡＭ−ＭＯＰ間は１ｔとする）に各ＲＡＭが接続されているＭＭＵ出力ポートＭＯＰ０〜ＭＯＰ３に転送され、その３ｔ後、つまり８ｔ目にＣＰＵ入力ポートＣＩＰ０〜ＣＩＰ３に４つのロードデータが到着し、９ｔ目にはデータ整列手段９で実部データと虚部データへの分割が行われる（図示せず）。
【００９６】
このとき、要素０の実部データ：Ｒ０と要素０の虚部データ：Ｉ０と要素１の実部データ：Ｒ１と要素１の虚部データ：Ｉ１がデータ整列手段９に到着している為、データ整列手段９はベクトルレジスタＶＲ１には要素０の実部データ：Ｒ０と要素１の実部データ：Ｒ１を、ベクトルレジスタＶＲ２には要素０の虚部データ：Ｉ０と要素１の虚部データ：Ｉ１を転送し、１０ｔ目にベクトルレジスタＶＲ１、及びＶＲ２に２つのデータが書き込まれる。
【００９７】
以上の処理はパイプラインで処理される為、１ｔ後には次の４つのデータが主記憶部から送付され、１１ｔ目には、要素２の実部データ：Ｒ２と要素３の実部データ：Ｒ３が、また要素２の虚部データ：Ｉ２と要素３の虚部データ：Ｉ３がベクトルレジスタＶＲ１とＶＲ２に書き込まれる。
【００９８】
以上のように、複素数データのベクトルロード命令を処理する場合でも１命令で実部データと虚部データをロードすることができ、またＣＰＵ入出力ポート１１とＭＭＵ入出力ポート１２も隙間無く使用することができるため、複素数データのデータロードを高速に処理することが可能となる。
【００９９】
次に図５のタイミングチャートを用いて、ベクトルストア命令処理時の動作を説明する。
【０１００】
命令発行制御部２から複素数データのベクトルストア命令が発行されると、ベクトル処理部３内の命令語で指定されたＶＲ１とＶＲ２の２つのベクトルレジスタに起動がかかるように制御されている。０ｔ目にベクトルレジスタＶＲ１とベクトルレジスタＶＲ２に起動がかかり、ＶＲ１から要素０の実部データ：Ｒ０と要素１の実部データ：Ｒ１を、ＶＲ２から要素０の虚部データ：Ｉ０と要素１の虚部データ：Ｉ１が読み出され、データ整列手段９にデータが送られる。
【０１０１】
データ整列手段で９では、２つのベクトルレジスタから送出された４つのデータを要素０の実部データ：Ｒ０、要素０の虚部データ：Ｉ０、要素１の実部データ：Ｒ１、要素１の虚部データ：Ｉ１のように実部データと虚部データを交互に整列しＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送出する。
【０１０２】
同じタイミングでアドレス生成手段１０から各データに対応するアドレス情報がＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３に送付されるよう、アドレス生成手段１０は制御されている。２ｔ目にＣＰＵ出力ポートＣＯＰ０〜ＣＯＰ３からストアデータとアドレス情報を揃えて送出され、３ｔ後の５ｔ目にはＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３にストアデータとアドレス情報が到着する。
【０１０３】
更に、その１ｔ後にはＭＭＵ入力ポートＭＩＰ０〜ＭＩＰ３に接続されているＲＡＭ０  １３−１〜ＲＡＭ３  １３−４に、要素０の実部データ：Ｒ０、要素０の虚部データ：Ｉ０、要素１の実部データ：Ｒ１、要素１の虚部データ：Ｉ１が書き込まれる。以上の処理はパイプラインで処理される為、ＲＡＭ０  １３−１〜ＲＡＭ３  １３−４には１ｔ毎に４つのデータが書き込まれることになる。
【０１０４】
以上のように、複素数データのベクトルストア命令を処理する場合でも１命令で実部データと虚部データをストアすることができ、また、ＣＰＵ出力ポートやＭＭＵ入力ポートも隙間無く使用することができる為、複素数データのデータストアを高速に処理することが可能となる。
【産業上の利用可能性】
【０１０５】
本発明は、例えば画像の拡大縮小等の画像変換処理における離散フーリエ変換時の複素数データ計算の高速化に使用することができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施例における中央処理装置と主記憶装置の構成を表すブロック図である。
【図２】本発明の実施例におけるベクトルロード命令語とベクトルストア命令語の構成の説明図である。
【図３】本発明の実施例で使用する複素数データの主記憶上での配置状態を表す説明図である。
【図４】本発明の実施例におけるベクトルロード命令のタイミングチャートである。
【図５】本発明の実施例におけるベクトルストア命令のタイミングチャートである。
【図６】従来技術の中央処理装置と主記憶装置の構成を表すブロック図である。
【図７】従来技術のベクトルロード命令語とベクトルストア命令語の構成の説明図である。
【図８】従来技術におけるベクトルロード命令の連続要素アクセス時のタイミングチャートである。
【図９】従来技術におけるベクトルロード命令の２要素とびアクセス時のタイミングチャートである。
【符号の説明】
【０１０７】
１    中央処理装置
２    命令発行制御部
３    ベクトル処理部
４    主記憶部
５    ＶＬ保持手段
６    ＶＬ補正手段
７−１〜７−ｎ    ベクトルレジスタ
８    クロスバ
９    データ整列手段
１０    アドレス生成部
１１    ＣＰＵ入出力ポート
１２    ＭＭＵ入出力ポート
１３−１    ＲＡＭ０
１３−２    ＲＡＭ１
１３−３    ＲＡＭ２
１３−４    ＲＡＭ３
１００    命令語
１０１    ＯＰフィールド
１０２    複素数ビット
１０３    ＶＲフィールド
１０４    ＤＩＳＴフィールド
１０５    ＡＤＤＲＥＳＳフィールド
【図１】
2005038185.tif 000003
【図２】
2005038185.tif 000004
【図３】
2005038185.tif 000005
【図４】
2005038185.tif 000006
【図５】
2005038185.tif 000007
【図６】
2005038185.tif 000008
【図７】
2005038185.tif 000009
【図８】
2005038185.tif 000010
【図９】
2005038185.tif 000011