(57)【特許請求の範囲】
【請求項１】
パラレルに配置された複数個のメモリユニットを有する主メモリと、
第１のデータ整列処理部と、
前記メモリユニットごとに設けられ、該メモリユニットと前記第１のデータ整列処理部とを接続するとともに、該メモリユニットから読み出される所定バイト幅のデータを、前記第１のデータ整列処理部にパラレルに入力するための第１の入力バスと、
パラレルに配置された複数個のベクトルレジスタユニットを有するベクトルレジスタ部と、
前記ベクトルレジスタユニットごとに設けられ、該ベクトルレジスタユニットと前記第１のデータ整列処理部とを接続するとともに、前記第１のデータ整列処理部によって整列されたデータを、該ベクトルレジスタユニットにパラレルに出力するための第１の出力バスと、を備え、
前記第１のデータ整列処理部は、これに入力される所定バイト幅のデータを第１の区分データ幅に分割するとともに、該第１の区分データ幅ごとに設けられ、前記第１の区分データ幅毎に前記第１の入力バスと前記第１の出力バスとを選択的に接続することで該第１の区分データ幅に対応するデータごとに整列を行う第１のデータ整列処理区分ユニットを含み、
前記ベクトルレジスタ部は、これに入力される整列後の所定バイト幅のデータを第２の区分データ幅に分割するとともに、その第２の区分データ幅ごとに設けられ、第２の区分データ幅の半分のデータ幅に対応する一方のデータ又は第２の区分データ幅の半分のデータ幅に対応する他方のデータのいずれかが選択的に入力される第１ベクトルレジスタと、第２の区分データ幅の半分のデータ幅に対応するデータのうち、第１ベクトルレジスタに入力されなかった方のデータが入力される第２ベクトルレジスタとを含むことを特徴とするベクトルデータ処理装置。
【請求項２】
前記第２の区分データ幅は、前記第１の区分データ幅の所定の２のベキ乗倍に設定されている請求項１に記載のベクトルデータ処理装置。
【請求項３】
第２のデータ整列処理部と、
前記ベクトルレジスタユニットごとに設けられ、該ベクトルレジスタユニットと前記第２のデータ整列処理部とを接続するとともに、該ベクトルレジスタユニットから読み出さ
れる所定バイト幅のデータを、前記第２のデータ整列処理部にパラレルに入力するための第２の入力バスと、
前記メモリユニットごとに設けられ、該メモリユニットと前記第２のデータ整列処理部とを接続するとともに、前記第２のデータ整列処理部によって整列されたデータを、該メモリユニットにパラレルに出力するための第２の出力バスとを備え、
前記第２のデータ整列処理部は、これに入力される所定バイト幅のデータを第３の区分データ幅に分割するとともに、その第３の区分データ幅ごとに設けられ、該第３の区分データ幅ごとに前記第２の入力バスと前記第２の出力バスとを選択的に接続することで該第３の区分データ幅に対応するデータごとに整列を行う第２のデータ整列処理区分ユニットを含むことを特徴とする請求項１に記載のベクトルデータ処理装置。
【請求項４】
前記第３の区分データ幅は、前記第２の区分データ幅のベキ乗分の１に設定されている請求項３に記載のベクトルデータ処理装置。
【請求項５】
前記第１のデータ整列処理部の前記第１の出力バスを前記第２のデータ整列処理部の前記第２の入力バスと共用し、前記第１のデータ整列処理部の前記第１の入力バスを前記第２のデータ整列処理部の前記第２の出力バスと共用して、前記第１のデータ整列処理部と前記第２のデータ整列処理部とを共通の構成とすることを特徴とする請求項３に記載のベクトルデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ベクトルデータ処理装置に係り、特に、浮動小数点倍精度データ、浮動小数点単精度データおよび固定小数点データのような複数のデータ形式を有するベクトルデータを処理するベクトルデータ処理装置におけるアクセス系の構成の改良に関する。
【０００２】
【従来の技術】
ベクトルデータを取り扱うベクトルデータ処理装置においては、ベクトル演算を行うために、主記憶装置にある多量のベクトルデータのうちの演算に使用される一部のデータを、高速にアクセスすることの可能なベクトルレジスタ等に予め転送しておき、このベクトルレジスタのデータを順次高速にアクセスして、パイプライン演算器にて高速演算を行う。
【０００３】
また、演算の結果、ベクトルレジスタに得られる演算結果は、必要に応じて主記憶装置に転送される。
上述のように、ベクトルレジスタを主記憶装置とパイプライン演算器との間に位置させることにより、パイプライン演算器はベクトルレジスタとの間でデータのやりとりをすればよく、また主記憶装置はベクトルレジスタとの間でデータのやりとりをすればよいことになる。このため、主記憶装置はパイプライン演算器を意識することなく、またパイプライン演算器は主メモリを意識することなく動作することが可能になる。したがって、このような構成により、制御を容易にし、且つ高速処理を実現することができる。
【０００４】
従来のベクトルデータ処理装置は、例えば特開昭５７−１１１６６７号公報に示されるように構成されている。
図１０に示すように、ベクトルデータ処理装置は、主メモリ１、データ整列処理部２およびベクトルレジスタ部３を備えている。主メモリ１は、ＭＭ−Ａ〜ＭＭ−Ｄの４つの主メモリユニット１ａから構成される。データ整列処理部２は、入力レジスタＩＲ−０〜ＩＲ−３および出力レジスタＯＲ−０〜ＯＲ−３を有する。ベクトルレジスタ部３は、ＶＲ−０〜ＶＲ−３の４つのベクトルレジスタユニット３ａを有する。
【０００５】
ベクトルデータの複数のエレメントが主メモリ１上に存在する場合、そのアドレスについては、連続するアドレスに位置することもあれば、ある一定の間隔をもったアドレスに分散して位置することもあれば、不規則なアドレスに位置することもあるなど、様々な形態で存在する。また、ベクトルデータの演算を行うベクトル演算器（図１０には示していない）では、ベクトルレジスタ部３からエレメント順に順次ベクトルデータを読み出して演算の実行が行われるため、ベクトルレジスタ部３内にはベクトルデータがエレメント順に格納されていなければならない。
【０００６】
そこで、主メモリ１に格納されているベクトルデータを、ベクトルレジスタ部３の各ベクトルレジスタユニット３ａにロードする場合には、ベクトルデータの各エレメントに対応する主メモリ１の読出しアドレスをもとにデータを転送する。そのため、主メモリ１からのデータの読み出しに際しては、各エレメントの主メモリ１上のアドレス情報によって、入力データバスＢＩ−０〜ＢＩ−３のうちのいずれのデータバスを介して読み出されるかが決定され、各ベクトルレジスタユニット３ａへ書き込むための出力データバスＢＯ−０〜ＢＯ−３は、ベクトルレジスタユニット３ａがエレメント順に構成されているため、各エレメントのエレメント番号によって決定される。したがって、データ整列処理部２は、入力レジスタＩＲ−０〜ＩＲ−３と出力レジスタＯＲ−０〜ＯＲ−３との間にマトリックス状に複数のバスが設けられる必要がある。これがベクトルデータのロードにおけるデータ整列処理部２の機能構成である。
【０００７】
このデータ整列処理部２において、ロード時には、入力バスＢＩ−０〜ＢＩ−３の全てが、全ての出力バスＢＯ−０〜ＢＯ−３と接続される。すなわち、ベクトルデータの各エレメントが、ＭＭ−Ａ〜ＭＭ−Ｄの主メモリユニット１ａのいずれにあってもアクセスすることが可能となる。
【０００８】
また演算器では、倍精度浮動小数点データの演算、単精度浮動小数点データの演算および固定小数点データの演算等が行われるため、各演算のモードによって取り扱うデータの大きさ（データ長すなわちデータ幅）が変わり、またベクトルレジスタ部３に格納されるデータも演算器で扱われるデータと同じ形式となる。
【０００９】
すなわち、データの形式には、倍精度浮動小数点データ、単精度浮動小数点データおよび固定小数点データ等があり、例えば、倍精度の浮動小数点データは図１１（ａ）に示すように８バイトのデータ、単精度の浮動小数点データは図１１（ｂ）に示すように８バイトのうちの上位４バイトを用いたデータ、そして固定小数点データは図１１（ｃ）に示すように８バイトのうちの下位４バイトを用いたデータである。
【００１０】
ところで、これらのデータは、主メモリ上では、倍精度浮動小数点データは８バイトのデータ、単精度浮動小数点データおよび固定小数点データは４バイトのデータとしてそれぞれ格納されている。したがって、データをロードする際に、データ整列回路２においては、例えば、倍精度小数点データである８バイト（６４ビット）データとして処理する場合、単精度浮動小数点データである４バイト（３２ビット）データを８バイト中の上位４バイトデータとして処理する場合、および固定小数点データである４バイトデータを８バイト中の下位４バイトデータとして処理する場合とがある。もちろん、上述した８バイト中の上位４バイトデータとして処理する場合には、その下位４バイトには図示していない“０”発生部より“０”詰め、すなわち“０”フィリングが行われ、８バイト中の下位４バイトデータとして処理する場合には、同様に、その上位４バイトに“０”フィリングが行われる。
【００１１】
このように、８バイトのデータ、上位４バイトのデータおよび下位４バイトのデータを処理するため、８バイトデータとして転送処理する場合には、データ整列処理部２の各８バイトのバスの張り方は図１２に示すようになるが、上位４バイトデータおよび下位４バイトデータとしてデータ転送する場合には、図１３のように各４バイトのバスを設ける必要がある。もちろん、この図１３のように４バイトのバスを設ける場合には、図１２に示したような８バイト単位での転送も可能となるので、図１３には、実質的に図１２のバスも含まれることになる。
【００１２】
また、上述したロードの場合とは逆に、図１４に示すように、演算結果のデータを各ベクトルレジスタユニット３ａに一旦書込んでおき、これらベクトルレジスタユニット３ａに書込まれた演算結果のデータを主メモリ１に格納することも行われる。このようなベクトルデータのストアの場合も、ベクトルレジスタユニット３ａからのデータの各エレメントは、主メモリ１への書込みアドレスをもとにしてデータを転送する。そのため、主メモリユニット１ａへの書込みのための出力データバスＢＯ′−０〜ＢＯ′−３については、主メモリ１の書込みアドレスによってデータバス位置が決まり、また各ベクトルレジスタユニット３からデータ整列処理回路２′への入力バスＢＩ′−０〜ＢＩ′−３の制御順序はデータエレメントのエレメント番号によって設定されることになる。
【００１３】
したがって、この書込みの場合も、全ての入力バスＢＩ′−０〜ＢＩ′−３は、すべての書込みバスＢＯ′−０〜ＢＯ′−３と接続されるデータ整列処理回路２′を必要とする。ストア時に、各ベクトルレジスタユニット３ａから出力されてデータ整列処理回路２′に入力されるデータが、８バイトデータである場合には、図１５に示すような８バイトバスが必要となり、上位４バイトデータおよび下位４バイトデータとしてデータ転送する場合には、図１６のように４バイトバスを設ける必要がある。
【００１４】
そして図１６のように４バイトのバスを設ける場合には、図１５のような８バイト転送を行うことも可能であるので、図１６には実質的に図１５の場合も含まれることになる。
【００１５】
【発明が解決しようとする課題】
上述したように、従来のロードおよびストアにおけるデータ整列処理回路は、図１３および図１６に示すように、それぞれ６４本もの４バイトのバスを必要とする。
【００１６】
このため、特開昭５７−１１１６６７号公報では、ロードおよびストアにおける前記データ整列処理回路のバスの構成を図１７、図１８および図１９のように４バイトのバスを共有するように構成して、バス数を削減することが示されている。
【００１７】
近年、高集積度化が要求されるとともに製造コストを低減することが要求されており、特開昭５７−１１１６６７号公報に示された技術では、上位４バイトおよび下位４バイトを含むように構成する必要があり、これは機能分割上の制限になる。
【００１８】
本発明は、このような問題を解決するためになされたもので、データ整列の自由度を増し、より少ないハードウェア量で、転送速度を落とすことなく、構成の繰り返し性、すなわちリピータビリティを向上させ得るベクトルデータ処理装置を提供することを目的とするものである。
【００１９】
【課題を解決するための手段】
本発明に係るベクトルデータ処理装置は、
少なくとも独立に動作することが可能な１つ以上の読み出しデータバスおよび書き込みデータバスを有する複数個の主メモリユニットからなる主メモリと、
複数の入力バスおよび複数の出力バスを有し、前記複数の入力バスを前記複数の出力バスに選択的に接続するための第１のデータ整列処理部と、
ベクトルデータの一部がインターリーブされた複数のバンク単位に記憶され、それぞれ１つ以上のベクトルレジスタ書き込みデータバスおよび１つ以上のベクトルレジスタ読み出しデータバスを有する複数個のベクトルレジスタユニットからなるベクトルレジスタ部と、
を具備し、且つ前記各主メモリユニットの読み出しデータバスと前記第１のデータ整列処理部の各入力バスとを接続するとともに、前記第１のデータ整列処理部の各出力バスと前記各ベクトルレジスタユニットのベクトルレジスタ書き込みデータバスとを接続したベクトルデータ処理装置において、
前記第１のデータ整列処理部は、各入力バス幅を複数の第１の区分データ幅に分割するとともに、該第１の区分データ幅に分割した入力バスに各対応して、それぞれ前記第１の区分データ幅毎に前記複数の入力バスを前記複数の出力バスに選択的に接続する複数の第１のデータ整列処理区分ユニットを含み、前記ベクトルレジスタ部は、各ベクトルレジスタ書き込みデータバス幅を複数個の第２の区分データ幅に分割するとともに、該第２の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第２の区分データ幅に分割した複数個のベクトルレジスタユニットを含み、且つ前記第２の区分データ幅は、前記第１の区分データ幅の所定の２のベキ乗倍に設定する構成を特徴としている〔請求項１〕。
【００２０】
第２の区分データ幅に分割されたベクトルレジスタユニットには、第１の区分データ幅に分割された第１のデータ整列処理区分ユニットと、該第１のデータ整列処理区分ユニットに対応する区分データ位置の所定の２のベキ乗倍の区分データ位置に対応する第１のデータ整列処理区分ユニットとを接続する構成としてもよい〔請求項２〕。
【００２１】
ベクトルレジスタ部のベクトルレジスタユニットは、第１の区分データ幅に分割されたベクトルレジスタ書込みデータバスの第１の区分データと該第１の区分データのデータ位置の所定の２のベキ乗倍の区分データ位置に対応する他の前記第１の区分データとからいずれか一方を選択する書込みデータ選択回路と、前記書込みデータ選択回路で選択された区分データが書き込まれるベクトルレジスタとを含んでいてもよい〔請求項３〕。
【００２２】
ベクトルレジスタ部は、複数種の格納データ形式のベクトルデータを取り扱うようにしてもよい〔請求項４〕。
複数個の主記憶ユニットからベクトルレジスタ部へのデータ転送における主メモリアドレス情報と、ベクトルレジスタ部へのデータ書込みにおけるデータ形式情報とによって、書き込みデータ選択回路を選択制御する書込み選択制御部をさらに具備していてもよい〔請求項５〕。
【００２３】
書き込みデータ選択回路は、書込み選択制御部からの所定の“０”データ書き込み制御信号によって、ベクトルレジスタ書き込みデータの内容を“０”にするクリア手段を含んでいてもよい〔請求項６〕。
【００２４】
ベクトルレジスタ書込みデータバス毎に書き込み可否可能に制御するベクトルレジスタ書込み制御部をさらに具備していてもよい〔請求項７〕。
複数の第１のデータ整列処理区分ユニットを全て同一タイミングで且つ同一制御情報で連動制御して、第１の区分データ幅毎の複数の入力バスを同期的に且つ各対応して複数の出力バスに接続して、第１の区分データ幅毎にデータ整列を行うデータ整列制御部をさらに具備していてもよい〔請求項８〕。
【００２５】
複数の入力バスおよび複数の出力バスを有し、前記複数の入力バスを前記複数の出力バスに選択的に接続するための第２のデータ整列処理部とをさらに具備して、各ベクトルレジスタユニットのベクトルレジスタ読み出しデータバスと前記第２データ整列処理部の各入力バスとを接続するとともに、前記第２のデータ整列処理部の各出力バスと主メモリユニットの各書込みデータバスとを接続し、且つ前記第２のデータ整列処理部は、各入力バスおよび各出力バスの少なくとも一方のバス幅を複数個の第３の区分データ幅に分割するとともに、該第３の区分データ幅に分割した入力バスおよび出力バスの少なくとも一方に各対応して、それぞれ前記第３の区分データ幅毎に前記複数の入力バスを前記複数の出力バスに選択的に接続する複数の第３のデータ整列処理区分ユニットを含み、前記第３の区分データ幅は、第２の区分データ幅の大きさの２のベキ乗分の１に設定する構成としてもよい〔請求項９〕。
【００２６】
第１のデータ整列処理部の出力バスを第２のデータ整列処理部の入力バスと共用し、前記第１のデータ整列処理部の入力バスを前記第２のデータ整列処理部の出力バスと共用して、前記第１のデータ整列処理部と前記第２のデータ整列処理部とを共通の構成としてもよい〔請求項１０〕。
【００２７】
第２の区分データ幅に分割されたベクトルレジスタユニットには、第３の区分データ幅に分割された第２のデータ整列処理区分ユニットと、
該第２のデータ整列処理区分ユニットに対応する区分データ位置の所定の２のベキ乗分の１の区分データ位置に対応する第２のデータ整列処理区分ユニットとを接続する構成としてもよい〔請求項１１〕。
【００２８】
ベクトルレジスタ部のベクトルレジスタユニットは、第３の区分データ幅に分割されたベクトルレジスタ読出しデータバスの第３の区分データと該第３の区分データのデータ位置の所定の２のベキ乗倍の区分データ位置に対応する他の前記第３の区分データとからいずれか一方を選択し、選択された区分データをベクトルレジスタに書き込む書込みデータ選択回路を含んでいてもよい〔請求項１２〕。
【００２９】
ベクトルレジスタ部から読出すときのデータ形式情報によって、読出しデータ選択回路を選択制御する読出し選択制御部をさらに具備していてもよい〔請求項１３〕。
【００３０】
第２の区分データ幅の２のベキ乗倍を１ビットとした書込み可否制御情報を用いて、主メモリユニットへの書込みデータバス毎に書き込み可否可能に制御するメモリ書込み制御部をさらに具備していてもよい〔請求項１４〕。
【００３１】
【作用】
本発明によるベクトルデータ処理装置では、各入力バス幅を複数の第１の区分データ幅に分割するとともに、該第１の区分データ幅に分割した入力バスに各対応して、それぞれ前記第１の区分データ幅毎に複数の入力バスを複数の出力バスに選択的に接続する複数の第１のデータ整列処理区分ユニットを含む第１のデータ整列処理部と、各ベクトルレジスタ書き込みデータバス幅を複数個の第２の区分データ幅に分割するとともに、該第２の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第２の区分データ幅に分割した複数個のベクトルレジスタユニットを含むベクトルレジスタ部とを設け、且つ前記第２の区分データ幅は、前記第１の区分データ幅の所定の２のベキ乗倍に設定して、ベクトルレジスタ部の少なくとも入力部にバイト間で選択接続を行う構成とすることにより、データをより細分化してデータ整列処理を行うことが可能となり、構成のリピータビリティを向上させることができ、高集積度化も容易になる。
【００３２】
【実施例】
以下、本発明に係るベクトルデータ処理装置の実施例を図面を参照して説明する。
【００３３】
図１は本発明の一実施例によるベクトルデータ処理装置を組み込んだベクトル計算システムの全体の概略的な構成を示している。図１のベクトル計算システムは、ベクトル命令部１０、アドレス発生部１２、メモリ制御部１４、パイプライン制御部１６、マスクレジスタ部１８、ベクトルレジスタ部（ＶＲ）２０、演算部２２、データ整列部２４および主メモリ２６を備えている。
【００３４】
ベクトル命令部１０は、ベクトル計算のプログラム等により与えられるベクトル命令をデコードして、ベクトルロード命令およびベクトルストア命令等のベクトルアクセス命令、ならびにベクトル演算命令を含むベクトル命令を発生する。アドレス発生部１２は、データエレメントについての主メモリ２６のアドレス、マスクレジスタ部１８およびベクトルレジスタ部２０のリクエストアドレスを発生する。メモリ制御部１４は、直接またはパイプライン制御部１６と連携して、主メモリ２６の読出しおよび書込みを制御する。
【００３５】
パイプライン制御部１６は、主メモリ２６からデータを読出し、データ整列部２４でデータの整列処理を行って、マスクレジスタ部１８またはベクトルレジスタ部２０に書き込む動作、すなわちロード動作の制御、およびマスクレジスタ部１８またはベクトルレジスタ部２０からデータを読出し、データ整列部２４においてデータの整列処理を行って、主メモリ２６に書き込む動作、すなわちストア動作に係る制御を行う。このパイプライン制御部１６の制御は、前記ロードおよびストアに係るパイプライン処理の制御を含んでいる。
【００３６】
マスクレジスタ部１８およびベクトルレジスタ部２０は、ベクトル演算のためのマスクデータおよびベクトルデータをそれぞれ格納する。演算部２２は、パイプライン処理を用いて所要のベクトル演算を行う。データ整列部２４は、ロード動作時に、主メモリ２６から読出したデータを、マスクレジスタ部１８またはベクトルレジスタ部２０に書き込む際に、データを適切に並べ替えるとともに、ストア動作時に、マスクレジスタ部１８またはベクトルレジスタ部２０から読出したデータを、主メモリ２６に書き込む際に、データを適切に並べ替える。主メモリ２６は、このベクトル計算システムの主記憶装置であり、ベクトル計算に供されるデータおよび計算の結果として得られるデータを格納する。
【００３７】
上述のように構成されたベクトル計算システムの概略的な動作を説明する。
主メモリ２６に格納されているベクトルデータは、計算に際してアクセスされ、マスクレジスタ部１８またはベクトルレジスタ部２０との間で転送され、上述したロードまたはストア動作が行われる。演算部２２は、マスクレジスタ部１８内のマスクデータとベクトルレジスタ部２０内のベクトルデータを用いてベクトルデータの演算を行う。
【００３８】
ベクトル命令部１０は、ベクトル命令をデコードして、ベクトル演算命令またはベクトルアクセス命令を発生する。ベクトル命令部１０で発生した命令が、ベクトル演算命令である場合には、メモリアクセスを含まないので、ベクトルレジスタ部２０からベクトルデータを読出して演算部２２でベクトル演算を実行し、演算結果をベクトルレジスタ部２０に書き込む。
【００３９】
ベクトルアクセス命令には、主メモリ２６のアクセスを含むベクトルロード命令およびベクトルストア命令等が含まれる。
ベクトル命令部１０で発生した命令が、ベクトルアクセス命令である場合には、主メモリ２６のアクセスを含むので、アドレス発生部１２で主メモリ２６におけるアドレスを発生する。このため、ベクトル命令部１０から発信されるベクトルアクセス命令は、アドレス発生部１２およびパイプライン制御部１６に同時に送られる。アドレス発生部１２では、主メモリ２６における各データエレメントのリクエストアドレスと、マスクレジスタ部１８およびベクトルレジスタ部２０における各エレメントのリクエストアドレスとを順次発生する。メモリ制御部１４は、アドレス発生部１２で発生されたアドレス情報に基づいて、主メモリ２６へアクセスリクエストを発行する。すなわち、メモリ制御部１４は、アドレス発生部１２で発生されたアドレス情報が、主メモリ２６上で連続する領域のデータを１つのリクエストで一括してアクセスするブロックアクセスである場合は、アドレス発生部１２から与えられる先頭アドレスを始点として、指定されたエレメント数に相当する個々のデータのアクセスを実行する。また、メモリ制御部１４は、アドレス発生部１２で発生されたアドレス情報が、主メモリ２６上で離散的に存在する複数のデータのアクセスを示している場合は、アドレス発生部１２から与えられるアドレスに基づいて、主メモリ２６に対し、指定された個々のデータのアクセスを実行する。これらのアクセスの形態を示す情報はメモリ制御部１４からパイプライン制御部１６にも与えられる。
【００４０】
これと並行して、パイプライン制御部１６では、メモリ制御部１４から与えられる主メモリに対するアクセス情報に基づき、主メモリ２６から読出したデータをデータ整列部２４で所要の並べ替えを行って、マスクレジスタ部１８またはベクトルレジスタ部２０に書き込むロード制御、およびマスクレジスタ部１８またはベクトルレジスタ部２０からデータを読出してデータ整列部２４において所要の並べ替えを行って、主メモリ２６に書き込むストア制御を行う。
【００４１】
図２に、ロード動作に係るベクトルレジスタ部２０、演算部２２およびデータ整列部２４の詳細な構成を示す。
ベクトルレジスタ部２０は、例えばこの場合、８バイト幅の４個のデータを取り扱うものとして４個のベクトルレジスタユニット３２で構成され、各ベクトルレジスタユニット３２はそれぞれベクトルレジスタＶＲを有している。演算部２２は、同様に４個の演算ユニット３４で構成される。
【００４２】
データ整列部２４は、ロード時に用いられる第１のデータ整列処理部３０を有する。第１のデータ整列処理部３０は、主メモリ２６の各メモリユニットＭＭ−Ａ、ＭＭ−Ｂ、ＭＭ−ＣおよびＭＭ−Ｄから読出した各８バイト幅のデータを適宜分割し、第１の整列制御信号に基づいて選択的に接続バスを切換えることにより、データを整列して出力バスＢＯ−０、ＢＯ−１、ＢＯ−２およびＢＯ−３に供給する。
【００４３】
第１のデータ整列処理部３０の詳細な構成を図３に示す。
図３に示す第１のデータ整列処理部３０は、８バイトのバスが、１バイトずつに分割、すなわち１バイトずつにスライスされた８つのデータ整列処理ユニット３６で構成される。これら８つのデータ整列処理ユニット３６は、全く同様の構成を有し、第１の整列制御信号に基づいて互いに同期連動して接続バスを切換える。各データ整列処理ユニット３６は、それぞれ１バイトずつの４つの入力バスを選択的に切換えて４つの出力バスに接続する。８つのデータ整列処理ユニット３６の出力は、１バイト毎の各出力データバスＢＯ−０−０〜ＢＯ−３−０、ＢＯ−０−１〜ＢＯ−３−１、ＢＯ−０−２〜ＢＯ−３−２、…ＢＯ−０−７〜ＢＯ−３−７に出力される。
【００４４】
ベクトルレジスタユニット３２および演算ユニット３４の詳細な構成を図４に示す。
ベクトルレジスタユニット３２は、この場合、それぞれ２バイトずつのデータを処理する４つのベクトルレジスタサブユニット３８で構成される。各ベクトルレジスタサブユニット３８は、図３に示した１バイト毎の出力データバスＢＯ−０−０〜ＢＯ−３−０、ＢＯ−０−１〜ＢＯ−３−１、ＢＯ−０−２〜ＢＯ−３−２、…ＢＯ−０−７〜ＢＯ−３−７の出力のうちの４バイト毎の２つずつを１組として処理する。
【００４５】
例えば、アクセスデータは次のようにしてベクトルレジスタユニット３２に書き込まれる。１番目のベクトルレジスタサブユニット３８には、出力データバスＢＯ−０の第０バイトの出力データバスＢＯ−０−０と第４バイトの出力データバスＢＯ−０−４とが入力され、該１番目のベクトルレジスタサブユニット３８は、これら出力データバスＢＯ−０−０およびＢＯ−０−４からの入力データを第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２に書込み選択信号により選択的に切換えて入力し得るようになっている。
【００４６】
すなわち、この１番目のベクトルレジスタサブユニット３８では、書込み選択信号によって接続バスを選択的に切換えることにより、出力データバスＢＯ−０−０およびＢＯ−０−４からの入力データをそれぞれ第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２に入力するか、出力データバスＢＯ−０−０およびＢＯ−０−４からの入力データをそれぞれ第４バイト用のベクトルレジスタ４２および第０バイト用のベクトルレジスタ４０に入力するかを選択することができる。この選択切換えは、処理するデータの形式（すなわち、８バイトデータ、上位４バイトデータ、および下位４バイトデータのいずれであるか）に応じて行う。
【００４７】
また、演算結果をベクトルレジスタユニット３２に書き込む場合には、演算ユニット３４の第０バイトおよび第４バイトを、それぞれそのまま第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２に入力する。演算結果をベクトルレジスタユニット３２に書き込むか否かは、マスクレジスタ１８の内容によって決定される。
【００４８】
第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２へのデータ書込みは、書込み可否信号によって制御され、それぞれ必要なデータのみがベクトルレジスタ４０およびベクトルレジスタ４２に書き込まれるようになっている。
【００４９】
第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２の出力は、互いに結合され、さらに４つのベクトルレジスタサブユニット３８の対応するものが結合されて、８バイトのデータが形成され、演算ユニット３４の２つの入力のいずれか一方に入力される。この８バイトのデータは、演算ユニット３４の２つの入力のいずれにも入力することができるように構成されている。
【００５０】
図５に、ストア動作に係るベクトルレジスタ部２０およびデータ整列部２４の詳細な構成を示す。
ベクトルレジスタ部２０は、例えばこの場合、８バイト幅の４個のデータを取り扱うものとして４個のベクトルレジスタユニット３２で構成され、各ベクトルレジスタユニット３２はそれぞれベクトルレジスタＶＲを有している。
【００５１】
データ整列部２４は、ストア時に用いられる第２のデータ整列処理部４４を有する。第２のデータ整列処理部４４は、４個のベクトルレジスタユニット３２から８バイト幅の４つの入力バスＢｉ−０、Ｂｉ−１、Ｂｉ−２およびＢｉ−３を介して取り出されるデータを適宜分割し、第２の整列制御信号に基づいて選択的に接続バスを切換えることにより、データを整列して出力バスＢｏ−０、Ｂｏ−１、Ｂｏ−２およびＢｏ−３を介して主メモリ２６の各メモリユニットＭＭ−Ａ、ＭＭ−Ｂ、ＭＭ−ＣおよびＭＭ−Ｄに供給する。
【００５２】
第２のデータ整列処理部４４の詳細な構成を図６に示す。
図６に示す第２のデータ整列処理部４４は、８バイトのバスが、１バイトずつに分割、すなわち１バイトずつにスライスされた８つのデータ整列処理ユニット４８で構成される。これら８つのデータ整列処理ユニット４８は、全く同様の構成を有し、第２の整列制御信号に基づいて互いに同期連動して接続バスを切換える。各データ整列処理ユニット４８は、ベクトルレジスタユニット３２に接続されたそれぞれ１バイトずつの４つの入力バスを選択的に切換えて、主メモリ２６の各メモリユニットＭＭ−Ａ、ＭＭ−Ｂ、ＭＭ−ＣおよびＭＭ−Ｄに接続された４つの出力バスに接続する。すなわち、８つのデータ整列処理ユニット４８の入力は、１バイト毎の各入力データバスＢｉ−０−０〜Ｂｉ−３−０、Ｂｉ−０−１〜Ｂｉ−３−１、Ｂｉ−０−２〜Ｂｉ−３−２、…Ｂｉ−０−７〜Ｂｉ−３−７から与えられ、８つのデータ整列処理ユニット４８の出力は、１バイト毎の各出力データバスＢｏ−０−０〜Ｂｏ−３−０、Ｂｏ−０−１〜Ｂｏ−３−１、Ｂｏ−０−２〜Ｂｏ−３−２、…Ｂｏ−０−７〜Ｂｏ−３−７に出力される。
【００５３】
ベクトルレジスタユニット３２の詳細な構成を図７に示す。
ベクトルレジスタユニット３２は、この場合、それぞれ２バイトずつのデータを処理する４つのベクトルレジスタサブユニット３８で構成される。各ベクトルレジスタサブユニット３８は、図６に示した１バイト毎の入力データバスＢｉ−０−０〜Ｂｉ−３−０、Ｂｉ−０−１〜Ｂｉ−３−１、Ｂｉ−０−２〜Ｂｉ−３−２、…Ｂｉ−０−７〜Ｂｉ−３−７のうちの４バイト毎の２つずつを１組として、それらに対する出力を供給する。
【００５４】
例えば、データは次のようにしてベクトルレジスタユニット３２から出力される。１番目のベクトルレジスタサブユニット３８からは、入力データバスＢｉ−０の第０バイトの入力データバスＢｉ−０−０と第４バイトの入力データバスＢｉ−０−４へのデータが出力され、該１番目のベクトルレジスタサブユニット３８は、これら入力データバスＢｉ−０−０およびＢｉ−０−４への出力データを第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２からＶＲ読出し選択信号により選択的に切換えて出力し得るようになっている。
【００５５】
すなわち、この１番目のベクトルレジスタサブユニット３８では、ＶＲ読出し選択信号によって接続バスを選択的に切換えることにより、入力データバスＢｉ−０−０およびＢｉ−０−４への出力データをそれぞれ第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２の両方から供給するか、入力データバスＢｉ−０−０およびＢｉ−０−４への出力データをそれぞれ第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２のいずれか一方から同一のデータを供給するかを選択することができる。
【００５６】
この選択切換えは、処理するデータの形式（すなわち、８バイトデータ、上位４バイトデータ、および下位４バイトデータのいずれであるか）に応じて行う。すなわち、８バイトデータのときは、図１８（ａ）のように、第０バイト用のベクトルレジスタ４０および第４バイト用のベクトルレジスタ４２の出力を、そのまま入力データバスＢｉ−０−０およびＢｉ−０−４へ供給する。上位４バイトのデータのときは、図１８（ｂ）のように第０バイト用のベクトルレジスタ４０の出力を、入力データバスＢｉ−０−０およびＢｉ−０−４へ共通に供給する。下位４バイトのデータのときは、図１８（ｃ）のように第４バイト用のベクトルレジスタ４２の出力を、入力データバスＢｉ−０−０およびＢｉ−０−４へ共通に供給する。
【００５７】
パイプライン制御部１６の詳細な構成を図９に示す。
図９には、パイプライン制御部１６のうちの本発明実施例に直接関連がある部分のみを詳細に示しており、ここでは当該部分のみを説明する。図９に示すパイプライン制御部１６は、第１のデータ整列制御部６０、書込み選択制御部６２、ＶＲ書込み可否制御部６４、命令処理部６６、ＶＲ読出し選択制御部６８、第２のデータ整列制御部７０および書込み可否信号生成部７２を有している。これらの構成は、主として上述したベクトルレジスタ部２０およびデータ整列部２４への各種制御信号を生成する。
第１のデータ整列制御部６０は、メモリ制御部１４から主メモリ２６のアクセスに関する情報を受けるとともに、命令処理部６６からオペレーションコード等の情報を受けて、図３に示した第１のデータ整列処理ユニット３６を制御するための第１の整列制御信号を生成する。書込み選択制御部６２は、第１のデータ整列制御部６０および命令処理部６６の出力に応動して、図４に示したベクトルレジスタサブユニット３８のベクトルレジスタ４０および４２等へのデータ形式に応じた書込み選択のための接続バスの切換え制御を行うための書込み選択信号を生成する。ＶＲ書込み可否制御部６４は、書込み選択制御部６２の出力に応動して、図４のベクトルレジスタサブユニット３８のベクトルレジスタ４０および４２等の書込み可否を制御するためのＶＲ書込み可否信号を生成する。
【００５８】
命令処理部６６はベクトル命令部１０からの命令を受けて第１のデータ整列制御部６０、書込み選択制御部６２およびＶＲ読出し選択制御部６８へ命令実行のためのオペレーションコード等を送る。ＶＲ読出し選択制御部６８は、メモリ制御部１４から主メモリ２６のアクセスに関する情報を、命令処理部６６から実行すべき命令に関する情報をそれぞれ受けて図７に示すベクトルレジスタサブユニット３８のベクトルレジスタ４０および４２等からのデータ形式に応じたデータの読出しを制御するためのＶＲ読出し選択信号を生成する。第２のデータ整列制御部７０は、ＶＲ読出し選択制御部６８からの情報を受けて、図６に示した第２のデータ整列処理ユニット４８を制御するための第２の整列制御信号を生成する。書込み可否信号生成部７２は、図５に示した第２のデータ整列処理部４４から主メモリユニットＭＭ−Ａ、ＭＭ−Ｂ、ＭＭ−ＣおよびＭＭ−Ｄへの、出力バスＢｏ−０〜Ｂｏ−３毎のデータ書込みの可否を制御するメモリ書込み可否信号を生成する。
【００５９】
このような構成により、ベクトルデータ処理装置のデータ整列処理のための構成を所定バイト数毎にスライスして、複数の同様の構成による分割構成とし、柔軟で且つ複雑なデータの操作を可能とするとともに、構成のリピータビリティを向上させることが可能となる。
【００６０】
第１のデータ整列処理ユニット部３０と第２のデータ整列処理部４４とは、同時に処理することのないシステムであれば、共通の構成を切換え制御することにより実現することが可能であり、さらに構成を簡単化することができる。
【００６１】
また、第１のデータ整列処理ユニット部３０および第２のデータ整列処理部４４とベクトルレジスタサブユニット３８との分割データ幅は、両者の比を１対２のベキ乗とすれば、種々選択して実施することができる。
【００６２】
【発明の効果】
以上説明したように、本発明によれば、各入力バス幅を複数の第１の区分データ幅に分割するとともに、該第１の区分データ幅に分割した入力バスに各対応して、それぞれ前記第１の区分データ幅毎に複数の入力バスを複数の出力バスに選択的に接続する複数の第１のデータ整列処理区分ユニットを含む第１のデータ整列処理部と、各ベクトルレジスタ書き込みデータバス幅を複数個の第２の区分データ幅に分割するとともに、該第２の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第２の区分データ幅に分割した複数個のベクトルレジスタユニットを含むベクトルレジスタ部とを設け、且つ前記第２の区分データ幅は、前記第１の区分データ幅の所定の２のベキ乗倍に設定して、ベクトルレジスタ部の少なくとも入力部にバイト間で選択接続を行う構成とすることにより、データをより細分化してデータ整列処理を行うことが可能となり、データ整列の自由度が増し、より少ないハードウェア量で、転送速度を落とすことなく、構成の繰り返し性、すなわちリピータビリティを向上させ得るベクトルデータ処理装置を提供することができる。
【００６３】
例えば、ベクトルレジスタの入力および出力部にバイト間で、選択接続によるデータ整列制御を行うことにより、より細分化された整列制御が可能となり高精度化およびリピータビリティの自由度の増加が可能となる。
【図面の簡単な説明】
【図１】本発明に係るベクトルデータ処理装置を含むベクトル計算システムの一実施例の構成を示すブロック図である。
【図２】図１のシステムにおけるベクトルデータ処理装置のロード時のシステムブロック図である。
【図３】図１のシステムにおけるベクトルデータ処理装置の第１のデータ整列処理部の模式的ブロック図である。
【図４】図１のシステムにおけるベクトルデータ処理装置のベクトルレジスタユニットの詳細な構成を示す模式的ブロック図である。
【図５】図１のシステムにおけるベクトルデータ処理装置のストア時のシステムブロック図である。
【図６】図１のシステムにおけるベクトルデータ処理装置の第２のデータ整列処理部の模式的ブロック図である。
【図７】図１のシステムにおけるベクトルデータ処理装置のベクトルレジスタユニットの詳細な構成を示す模式的ブロック図である。
【図８】図１のシステムにおけるベクトルデータ処理装置のベクトルレジスタからの読出し選択を説明するための図である。
【図９】図１のシステムにおけるベクトルデータ処理装置のパイプライン制御部の要部構成を示すブロック図である。
【図１０】従来のシステムにおけるベクトルデータ処理装置のロード動作に係る機能構成についてのシステムブロック図である。
【図１１】図１０のシステムにおけるベクトルデータのフォーマットの一例を示す図である。
【図１２】図１０のシステムの動作説明のための模式的ブロック図である。
【図１３】図１０のシステムのシステム全体の接続状態を示す模式図である。
【図１４】図１０と同様のシステムにおけるベクトルデータ処理装置のストア動作に係る機能構成についてのシステムブロック図である。
【図１５】図１４のシステムの動作説明のための模式的ブロック図である。
【図１６】図１４のシステムのシステム全体の接続状態を示す模式図である。
【図１７】従来の他のシステムにおけるベクトルデータ処理装置のロード動作に係る機能構成についてのシステムブロック図である。
【図１８】図１７と同様のシステムにおけるベクトルデータ処理装置のストア動作に係る機能構成についてのシステムブロック図である。
【図１９】図１７のシステムのシステム全体の接続状態を示す模式図である。
【符号の説明】
１０…ベクトル命令部
１２…アドレス発生部
１４…メモリ制御部
１６…パイプライン制御部
１８…マスクレジスタ部
２０…ベクトルレジスタ部
２２…演算部
２４…データ整列部
２６…主メモリ
３０…第１のデータ整列処理部
３２…ベクトルレジスタユニット
３４…演算ユニット
３６，４８…データ整列処理ユニット
３８…ベクトルレジスタサブユニット
４０…ベクトルレジスタ（第０バイト用）
４２…ベクトルレジスタ（第４バイト用）
４４…第２のデータ整列処理部
６０…第１のデータ整列制御部
６２…書込み選択制御部
６４…ＶＲ書込み可否制御部
６６…命令処理部
６８…ＶＲ読出し選択制御部
７０…第２のデータ整列制御部
７２…書込み可否信号生成部
【図１】
0003594260.tif 000002
【図２】
0003594260.tif 000003
【図３】
0003594260.tif 000004
【図４】
0003594260.tif 000005
【図５】
0003594260.tif 000006
【図６】
0003594260.tif 000007
【図７】
0003594260.tif 000008
【図８】
0003594260.tif 000009
【図９】
0003594260.tif 000010
【図１０】
0003594260.tif 000011
【図１１】
0003594260.tif 000012
【図１２】
0003594260.tif 000013
【図１３】
0003594260.tif 000014
【図１４】
0003594260.tif 000015
【図１５】
0003594260.tif 000016
【図１６】
0003594260.tif 000017
【図１７】
0003594260.tif 000018
【図１８】
0003594260.tif 000019
【図１９】
0003594260.tif 000020