JP3594260B2 - ベクトルデータ処理装置 - Google Patents
ベクトルデータ処理装置 Download PDFInfo
- Publication number
- JP3594260B2 JP3594260B2 JP11323495A JP11323495A JP3594260B2 JP 3594260 B2 JP3594260 B2 JP 3594260B2 JP 11323495 A JP11323495 A JP 11323495A JP 11323495 A JP11323495 A JP 11323495A JP 3594260 B2 JP3594260 B2 JP 3594260B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- vector
- vector register
- alignment processing
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
【産業上の利用分野】
本発明は、ベクトルデータ処理装置に係り、特に、浮動小数点倍精度データ、浮動小数点単精度データおよび固定小数点データのような複数のデータ形式を有するベクトルデータを処理するベクトルデータ処理装置におけるアクセス系の構成の改良に関する。
【0002】
【従来の技術】
ベクトルデータを取り扱うベクトルデータ処理装置においては、ベクトル演算を行うために、主記憶装置にある多量のベクトルデータのうちの演算に使用される一部のデータを、高速にアクセスすることの可能なベクトルレジスタ等に予め転送しておき、このベクトルレジスタのデータを順次高速にアクセスして、パイプライン演算器にて高速演算を行う。
【0003】
また、演算の結果、ベクトルレジスタに得られる演算結果は、必要に応じて主記憶装置に転送される。
上述のように、ベクトルレジスタを主記憶装置とパイプライン演算器との間に位置させることにより、パイプライン演算器はベクトルレジスタとの間でデータのやりとりをすればよく、また主記憶装置はベクトルレジスタとの間でデータのやりとりをすればよいことになる。このため、主記憶装置はパイプライン演算器を意識することなく、またパイプライン演算器は主メモリを意識することなく動作することが可能になる。したがって、このような構成により、制御を容易にし、且つ高速処理を実現することができる。
【0004】
従来のベクトルデータ処理装置は、例えば特開昭57−111667号公報に示されるように構成されている。
図10に示すように、ベクトルデータ処理装置は、主メモリ1、データ整列処理部2およびベクトルレジスタ部3を備えている。主メモリ1は、MM−A〜MM−Dの4つの主メモリユニット1aから構成される。データ整列処理部2は、入力レジスタIR−0〜IR−3および出力レジスタOR−0〜OR−3を有する。ベクトルレジスタ部3は、VR−0〜VR−3の4つのベクトルレジスタユニット3aを有する。
【0005】
ベクトルデータの複数のエレメントが主メモリ1上に存在する場合、そのアドレスについては、連続するアドレスに位置することもあれば、ある一定の間隔をもったアドレスに分散して位置することもあれば、不規則なアドレスに位置することもあるなど、様々な形態で存在する。また、ベクトルデータの演算を行うベクトル演算器(図10には示していない)では、ベクトルレジスタ部3からエレメント順に順次ベクトルデータを読み出して演算の実行が行われるため、ベクトルレジスタ部3内にはベクトルデータがエレメント順に格納されていなければならない。
【0006】
そこで、主メモリ1に格納されているベクトルデータを、ベクトルレジスタ部3の各ベクトルレジスタユニット3aにロードする場合には、ベクトルデータの各エレメントに対応する主メモリ1の読出しアドレスをもとにデータを転送する。そのため、主メモリ1からのデータの読み出しに際しては、各エレメントの主メモリ1上のアドレス情報によって、入力データバスBI−0〜BI−3のうちのいずれのデータバスを介して読み出されるかが決定され、各ベクトルレジスタユニット3aへ書き込むための出力データバスBO−0〜BO−3は、ベクトルレジスタユニット3aがエレメント順に構成されているため、各エレメントのエレメント番号によって決定される。したがって、データ整列処理部2は、入力レジスタIR−0〜IR−3と出力レジスタOR−0〜OR−3との間にマトリックス状に複数のバスが設けられる必要がある。これがベクトルデータのロードにおけるデータ整列処理部2の機能構成である。
【0007】
このデータ整列処理部2において、ロード時には、入力バスBI−0〜BI−3の全てが、全ての出力バスBO−0〜BO−3と接続される。すなわち、ベクトルデータの各エレメントが、MM−A〜MM−Dの主メモリユニット1aのいずれにあってもアクセスすることが可能となる。
【0008】
また演算器では、倍精度浮動小数点データの演算、単精度浮動小数点データの演算および固定小数点データの演算等が行われるため、各演算のモードによって取り扱うデータの大きさ(データ長すなわちデータ幅)が変わり、またベクトルレジスタ部3に格納されるデータも演算器で扱われるデータと同じ形式となる。
【0009】
すなわち、データの形式には、倍精度浮動小数点データ、単精度浮動小数点データおよび固定小数点データ等があり、例えば、倍精度の浮動小数点データは図11(a)に示すように8バイトのデータ、単精度の浮動小数点データは図11(b)に示すように8バイトのうちの上位4バイトを用いたデータ、そして固定小数点データは図11(c)に示すように8バイトのうちの下位4バイトを用いたデータである。
【0010】
ところで、これらのデータは、主メモリ上では、倍精度浮動小数点データは8バイトのデータ、単精度浮動小数点データおよび固定小数点データは4バイトのデータとしてそれぞれ格納されている。したがって、データをロードする際に、データ整列回路2においては、例えば、倍精度小数点データである8バイト(64ビット)データとして処理する場合、単精度浮動小数点データである4バイト(32ビット)データを8バイト中の上位4バイトデータとして処理する場合、および固定小数点データである4バイトデータを8バイト中の下位4バイトデータとして処理する場合とがある。もちろん、上述した8バイト中の上位4バイトデータとして処理する場合には、その下位4バイトには図示していない“0”発生部より“0”詰め、すなわち“0”フィリングが行われ、8バイト中の下位4バイトデータとして処理する場合には、同様に、その上位4バイトに“0”フィリングが行われる。
【0011】
このように、8バイトのデータ、上位4バイトのデータおよび下位4バイトのデータを処理するため、8バイトデータとして転送処理する場合には、データ整列処理部2の各8バイトのバスの張り方は図12に示すようになるが、上位4バイトデータおよび下位4バイトデータとしてデータ転送する場合には、図13のように各4バイトのバスを設ける必要がある。もちろん、この図13のように4バイトのバスを設ける場合には、図12に示したような8バイト単位での転送も可能となるので、図13には、実質的に図12のバスも含まれることになる。
【0012】
また、上述したロードの場合とは逆に、図14に示すように、演算結果のデータを各ベクトルレジスタユニット3aに一旦書込んでおき、これらベクトルレジスタユニット3aに書込まれた演算結果のデータを主メモリ1に格納することも行われる。このようなベクトルデータのストアの場合も、ベクトルレジスタユニット3aからのデータの各エレメントは、主メモリ1への書込みアドレスをもとにしてデータを転送する。そのため、主メモリユニット1aへの書込みのための出力データバスBO′−0〜BO′−3については、主メモリ1の書込みアドレスによってデータバス位置が決まり、また各ベクトルレジスタユニット3からデータ整列処理回路2′への入力バスBI′−0〜BI′−3の制御順序はデータエレメントのエレメント番号によって設定されることになる。
【0013】
したがって、この書込みの場合も、全ての入力バスBI′−0〜BI′−3は、すべての書込みバスBO′−0〜BO′−3と接続されるデータ整列処理回路2′を必要とする。ストア時に、各ベクトルレジスタユニット3aから出力されてデータ整列処理回路2′に入力されるデータが、8バイトデータである場合には、図15に示すような8バイトバスが必要となり、上位4バイトデータおよび下位4バイトデータとしてデータ転送する場合には、図16のように4バイトバスを設ける必要がある。
【0014】
そして図16のように4バイトのバスを設ける場合には、図15のような8バイト転送を行うことも可能であるので、図16には実質的に図15の場合も含まれることになる。
【0015】
【発明が解決しようとする課題】
上述したように、従来のロードおよびストアにおけるデータ整列処理回路は、図13および図16に示すように、それぞれ64本もの4バイトのバスを必要とする。
【0016】
このため、特開昭57−111667号公報では、ロードおよびストアにおける前記データ整列処理回路のバスの構成を図17、図18および図19のように4バイトのバスを共有するように構成して、バス数を削減することが示されている。
【0017】
近年、高集積度化が要求されるとともに製造コストを低減することが要求されており、特開昭57−111667号公報に示された技術では、上位4バイトおよび下位4バイトを含むように構成する必要があり、これは機能分割上の制限になる。
【0018】
本発明は、このような問題を解決するためになされたもので、データ整列の自由度を増し、より少ないハードウェア量で、転送速度を落とすことなく、構成の繰り返し性、すなわちリピータビリティを向上させ得るベクトルデータ処理装置を提供することを目的とするものである。
【0019】
【課題を解決するための手段】
本発明に係るベクトルデータ処理装置は、
少なくとも独立に動作することが可能な1つ以上の読み出しデータバスおよび書き込みデータバスを有する複数個の主メモリユニットからなる主メモリと、
複数の入力バスおよび複数の出力バスを有し、前記複数の入力バスを前記複数の出力バスに選択的に接続するための第1のデータ整列処理部と、
ベクトルデータの一部がインターリーブされた複数のバンク単位に記憶され、それぞれ1つ以上のベクトルレジスタ書き込みデータバスおよび1つ以上のベクトルレジスタ読み出しデータバスを有する複数個のベクトルレジスタユニットからなるベクトルレジスタ部と、
を具備し、且つ前記各主メモリユニットの読み出しデータバスと前記第1のデータ整列処理部の各入力バスとを接続するとともに、前記第1のデータ整列処理部の各出力バスと前記各ベクトルレジスタユニットのベクトルレジスタ書き込みデータバスとを接続したベクトルデータ処理装置において、
前記第1のデータ整列処理部は、各入力バス幅を複数の第1の区分データ幅に分割するとともに、該第1の区分データ幅に分割した入力バスに各対応して、それぞれ前記第1の区分データ幅毎に前記複数の入力バスを前記複数の出力バスに選択的に接続する複数の第1のデータ整列処理区分ユニットを含み、前記ベクトルレジスタ部は、各ベクトルレジスタ書き込みデータバス幅を複数個の第2の区分データ幅に分割するとともに、該第2の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第2の区分データ幅に分割した複数個のベクトルレジスタユニットを含み、且つ前記第2の区分データ幅は、前記第1の区分データ幅の所定の2のベキ乗倍に設定する構成を特徴としている〔請求項1〕。
【0020】
第2の区分データ幅に分割されたベクトルレジスタユニットには、第1の区分データ幅に分割された第1のデータ整列処理区分ユニットと、該第1のデータ整列処理区分ユニットに対応する区分データ位置の所定の2のベキ乗倍の区分データ位置に対応する第1のデータ整列処理区分ユニットとを接続する構成としてもよい〔請求項2〕。
【0021】
ベクトルレジスタ部のベクトルレジスタユニットは、第1の区分データ幅に分割されたベクトルレジスタ書込みデータバスの第1の区分データと該第1の区分データのデータ位置の所定の2のベキ乗倍の区分データ位置に対応する他の前記第1の区分データとからいずれか一方を選択する書込みデータ選択回路と、前記書込みデータ選択回路で選択された区分データが書き込まれるベクトルレジスタとを含んでいてもよい〔請求項3〕。
【0022】
ベクトルレジスタ部は、複数種の格納データ形式のベクトルデータを取り扱うようにしてもよい〔請求項4〕。
複数個の主記憶ユニットからベクトルレジスタ部へのデータ転送における主メモリアドレス情報と、ベクトルレジスタ部へのデータ書込みにおけるデータ形式情報とによって、書き込みデータ選択回路を選択制御する書込み選択制御部をさらに具備していてもよい〔請求項5〕。
【0023】
書き込みデータ選択回路は、書込み選択制御部からの所定の“0”データ書き込み制御信号によって、ベクトルレジスタ書き込みデータの内容を“0”にするクリア手段を含んでいてもよい〔請求項6〕。
【0024】
ベクトルレジスタ書込みデータバス毎に書き込み可否可能に制御するベクトルレジスタ書込み制御部をさらに具備していてもよい〔請求項7〕。
複数の第1のデータ整列処理区分ユニットを全て同一タイミングで且つ同一制御情報で連動制御して、第1の区分データ幅毎の複数の入力バスを同期的に且つ各対応して複数の出力バスに接続して、第1の区分データ幅毎にデータ整列を行うデータ整列制御部をさらに具備していてもよい〔請求項8〕。
【0025】
複数の入力バスおよび複数の出力バスを有し、前記複数の入力バスを前記複数の出力バスに選択的に接続するための第2のデータ整列処理部とをさらに具備して、各ベクトルレジスタユニットのベクトルレジスタ読み出しデータバスと前記第2データ整列処理部の各入力バスとを接続するとともに、前記第2のデータ整列処理部の各出力バスと主メモリユニットの各書込みデータバスとを接続し、且つ前記第2のデータ整列処理部は、各入力バスおよび各出力バスの少なくとも一方のバス幅を複数個の第3の区分データ幅に分割するとともに、該第3の区分データ幅に分割した入力バスおよび出力バスの少なくとも一方に各対応して、それぞれ前記第3の区分データ幅毎に前記複数の入力バスを前記複数の出力バスに選択的に接続する複数の第3のデータ整列処理区分ユニットを含み、前記第3の区分データ幅は、第2の区分データ幅の大きさの2のベキ乗分の1に設定する構成としてもよい〔請求項9〕。
【0026】
第1のデータ整列処理部の出力バスを第2のデータ整列処理部の入力バスと共用し、前記第1のデータ整列処理部の入力バスを前記第2のデータ整列処理部の出力バスと共用して、前記第1のデータ整列処理部と前記第2のデータ整列処理部とを共通の構成としてもよい〔請求項10〕。
【0027】
第2の区分データ幅に分割されたベクトルレジスタユニットには、第3の区分データ幅に分割された第2のデータ整列処理区分ユニットと、
該第2のデータ整列処理区分ユニットに対応する区分データ位置の所定の2のベキ乗分の1の区分データ位置に対応する第2のデータ整列処理区分ユニットとを接続する構成としてもよい〔請求項11〕。
【0028】
ベクトルレジスタ部のベクトルレジスタユニットは、第3の区分データ幅に分割されたベクトルレジスタ読出しデータバスの第3の区分データと該第3の区分データのデータ位置の所定の2のベキ乗倍の区分データ位置に対応する他の前記第3の区分データとからいずれか一方を選択し、選択された区分データをベクトルレジスタに書き込む書込みデータ選択回路を含んでいてもよい〔請求項12〕。
【0029】
ベクトルレジスタ部から読出すときのデータ形式情報によって、読出しデータ選択回路を選択制御する読出し選択制御部をさらに具備していてもよい〔請求項13〕。
【0030】
第2の区分データ幅の2のベキ乗倍を1ビットとした書込み可否制御情報を用いて、主メモリユニットへの書込みデータバス毎に書き込み可否可能に制御するメモリ書込み制御部をさらに具備していてもよい〔請求項14〕。
【0031】
【作用】
本発明によるベクトルデータ処理装置では、各入力バス幅を複数の第1の区分データ幅に分割するとともに、該第1の区分データ幅に分割した入力バスに各対応して、それぞれ前記第1の区分データ幅毎に複数の入力バスを複数の出力バスに選択的に接続する複数の第1のデータ整列処理区分ユニットを含む第1のデータ整列処理部と、各ベクトルレジスタ書き込みデータバス幅を複数個の第2の区分データ幅に分割するとともに、該第2の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第2の区分データ幅に分割した複数個のベクトルレジスタユニットを含むベクトルレジスタ部とを設け、且つ前記第2の区分データ幅は、前記第1の区分データ幅の所定の2のベキ乗倍に設定して、ベクトルレジスタ部の少なくとも入力部にバイト間で選択接続を行う構成とすることにより、データをより細分化してデータ整列処理を行うことが可能となり、構成のリピータビリティを向上させることができ、高集積度化も容易になる。
【0032】
【実施例】
以下、本発明に係るベクトルデータ処理装置の実施例を図面を参照して説明する。
【0033】
図1は本発明の一実施例によるベクトルデータ処理装置を組み込んだベクトル計算システムの全体の概略的な構成を示している。図1のベクトル計算システムは、ベクトル命令部10、アドレス発生部12、メモリ制御部14、パイプライン制御部16、マスクレジスタ部18、ベクトルレジスタ部(VR)20、演算部22、データ整列部24および主メモリ26を備えている。
【0034】
ベクトル命令部10は、ベクトル計算のプログラム等により与えられるベクトル命令をデコードして、ベクトルロード命令およびベクトルストア命令等のベクトルアクセス命令、ならびにベクトル演算命令を含むベクトル命令を発生する。アドレス発生部12は、データエレメントについての主メモリ26のアドレス、マスクレジスタ部18およびベクトルレジスタ部20のリクエストアドレスを発生する。メモリ制御部14は、直接またはパイプライン制御部16と連携して、主メモリ26の読出しおよび書込みを制御する。
【0035】
パイプライン制御部16は、主メモリ26からデータを読出し、データ整列部24でデータの整列処理を行って、マスクレジスタ部18またはベクトルレジスタ部20に書き込む動作、すなわちロード動作の制御、およびマスクレジスタ部18またはベクトルレジスタ部20からデータを読出し、データ整列部24においてデータの整列処理を行って、主メモリ26に書き込む動作、すなわちストア動作に係る制御を行う。このパイプライン制御部16の制御は、前記ロードおよびストアに係るパイプライン処理の制御を含んでいる。
【0036】
マスクレジスタ部18およびベクトルレジスタ部20は、ベクトル演算のためのマスクデータおよびベクトルデータをそれぞれ格納する。演算部22は、パイプライン処理を用いて所要のベクトル演算を行う。データ整列部24は、ロード動作時に、主メモリ26から読出したデータを、マスクレジスタ部18またはベクトルレジスタ部20に書き込む際に、データを適切に並べ替えるとともに、ストア動作時に、マスクレジスタ部18またはベクトルレジスタ部20から読出したデータを、主メモリ26に書き込む際に、データを適切に並べ替える。主メモリ26は、このベクトル計算システムの主記憶装置であり、ベクトル計算に供されるデータおよび計算の結果として得られるデータを格納する。
【0037】
上述のように構成されたベクトル計算システムの概略的な動作を説明する。
主メモリ26に格納されているベクトルデータは、計算に際してアクセスされ、マスクレジスタ部18またはベクトルレジスタ部20との間で転送され、上述したロードまたはストア動作が行われる。演算部22は、マスクレジスタ部18内のマスクデータとベクトルレジスタ部20内のベクトルデータを用いてベクトルデータの演算を行う。
【0038】
ベクトル命令部10は、ベクトル命令をデコードして、ベクトル演算命令またはベクトルアクセス命令を発生する。ベクトル命令部10で発生した命令が、ベクトル演算命令である場合には、メモリアクセスを含まないので、ベクトルレジスタ部20からベクトルデータを読出して演算部22でベクトル演算を実行し、演算結果をベクトルレジスタ部20に書き込む。
【0039】
ベクトルアクセス命令には、主メモリ26のアクセスを含むベクトルロード命令およびベクトルストア命令等が含まれる。
ベクトル命令部10で発生した命令が、ベクトルアクセス命令である場合には、主メモリ26のアクセスを含むので、アドレス発生部12で主メモリ26におけるアドレスを発生する。このため、ベクトル命令部10から発信されるベクトルアクセス命令は、アドレス発生部12およびパイプライン制御部16に同時に送られる。アドレス発生部12では、主メモリ26における各データエレメントのリクエストアドレスと、マスクレジスタ部18およびベクトルレジスタ部20における各エレメントのリクエストアドレスとを順次発生する。メモリ制御部14は、アドレス発生部12で発生されたアドレス情報に基づいて、主メモリ26へアクセスリクエストを発行する。すなわち、メモリ制御部14は、アドレス発生部12で発生されたアドレス情報が、主メモリ26上で連続する領域のデータを1つのリクエストで一括してアクセスするブロックアクセスである場合は、アドレス発生部12から与えられる先頭アドレスを始点として、指定されたエレメント数に相当する個々のデータのアクセスを実行する。また、メモリ制御部14は、アドレス発生部12で発生されたアドレス情報が、主メモリ26上で離散的に存在する複数のデータのアクセスを示している場合は、アドレス発生部12から与えられるアドレスに基づいて、主メモリ26に対し、指定された個々のデータのアクセスを実行する。これらのアクセスの形態を示す情報はメモリ制御部14からパイプライン制御部16にも与えられる。
【0040】
これと並行して、パイプライン制御部16では、メモリ制御部14から与えられる主メモリに対するアクセス情報に基づき、主メモリ26から読出したデータをデータ整列部24で所要の並べ替えを行って、マスクレジスタ部18またはベクトルレジスタ部20に書き込むロード制御、およびマスクレジスタ部18またはベクトルレジスタ部20からデータを読出してデータ整列部24において所要の並べ替えを行って、主メモリ26に書き込むストア制御を行う。
【0041】
図2に、ロード動作に係るベクトルレジスタ部20、演算部22およびデータ整列部24の詳細な構成を示す。
ベクトルレジスタ部20は、例えばこの場合、8バイト幅の4個のデータを取り扱うものとして4個のベクトルレジスタユニット32で構成され、各ベクトルレジスタユニット32はそれぞれベクトルレジスタVRを有している。演算部22は、同様に4個の演算ユニット34で構成される。
【0042】
データ整列部24は、ロード時に用いられる第1のデータ整列処理部30を有する。第1のデータ整列処理部30は、主メモリ26の各メモリユニットMM−A、MM−B、MM−CおよびMM−Dから読出した各8バイト幅のデータを適宜分割し、第1の整列制御信号に基づいて選択的に接続バスを切換えることにより、データを整列して出力バスBO−0、BO−1、BO−2およびBO−3に供給する。
【0043】
第1のデータ整列処理部30の詳細な構成を図3に示す。
図3に示す第1のデータ整列処理部30は、8バイトのバスが、1バイトずつに分割、すなわち1バイトずつにスライスされた8つのデータ整列処理ユニット36で構成される。これら8つのデータ整列処理ユニット36は、全く同様の構成を有し、第1の整列制御信号に基づいて互いに同期連動して接続バスを切換える。各データ整列処理ユニット36は、それぞれ1バイトずつの4つの入力バスを選択的に切換えて4つの出力バスに接続する。8つのデータ整列処理ユニット36の出力は、1バイト毎の各出力データバスBO−0−0〜BO−3−0、BO−0−1〜BO−3−1、BO−0−2〜BO−3−2、…BO−0−7〜BO−3−7に出力される。
【0044】
ベクトルレジスタユニット32および演算ユニット34の詳細な構成を図4に示す。
ベクトルレジスタユニット32は、この場合、それぞれ2バイトずつのデータを処理する4つのベクトルレジスタサブユニット38で構成される。各ベクトルレジスタサブユニット38は、図3に示した1バイト毎の出力データバスBO−0−0〜BO−3−0、BO−0−1〜BO−3−1、BO−0−2〜BO−3−2、…BO−0−7〜BO−3−7の出力のうちの4バイト毎の2つずつを1組として処理する。
【0045】
例えば、アクセスデータは次のようにしてベクトルレジスタユニット32に書き込まれる。1番目のベクトルレジスタサブユニット38には、出力データバスBO−0の第0バイトの出力データバスBO−0−0と第4バイトの出力データバスBO−0−4とが入力され、該1番目のベクトルレジスタサブユニット38は、これら出力データバスBO−0−0およびBO−0−4からの入力データを第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42に書込み選択信号により選択的に切換えて入力し得るようになっている。
【0046】
すなわち、この1番目のベクトルレジスタサブユニット38では、書込み選択信号によって接続バスを選択的に切換えることにより、出力データバスBO−0−0およびBO−0−4からの入力データをそれぞれ第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42に入力するか、出力データバスBO−0−0およびBO−0−4からの入力データをそれぞれ第4バイト用のベクトルレジスタ42および第0バイト用のベクトルレジスタ40に入力するかを選択することができる。この選択切換えは、処理するデータの形式(すなわち、8バイトデータ、上位4バイトデータ、および下位4バイトデータのいずれであるか)に応じて行う。
【0047】
また、演算結果をベクトルレジスタユニット32に書き込む場合には、演算ユニット34の第0バイトおよび第4バイトを、それぞれそのまま第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42に入力する。演算結果をベクトルレジスタユニット32に書き込むか否かは、マスクレジスタ18の内容によって決定される。
【0048】
第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42へのデータ書込みは、書込み可否信号によって制御され、それぞれ必要なデータのみがベクトルレジスタ40およびベクトルレジスタ42に書き込まれるようになっている。
【0049】
第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42の出力は、互いに結合され、さらに4つのベクトルレジスタサブユニット38の対応するものが結合されて、8バイトのデータが形成され、演算ユニット34の2つの入力のいずれか一方に入力される。この8バイトのデータは、演算ユニット34の2つの入力のいずれにも入力することができるように構成されている。
【0050】
図5に、ストア動作に係るベクトルレジスタ部20およびデータ整列部24の詳細な構成を示す。
ベクトルレジスタ部20は、例えばこの場合、8バイト幅の4個のデータを取り扱うものとして4個のベクトルレジスタユニット32で構成され、各ベクトルレジスタユニット32はそれぞれベクトルレジスタVRを有している。
【0051】
データ整列部24は、ストア時に用いられる第2のデータ整列処理部44を有する。第2のデータ整列処理部44は、4個のベクトルレジスタユニット32から8バイト幅の4つの入力バスBi−0、Bi−1、Bi−2およびBi−3を介して取り出されるデータを適宜分割し、第2の整列制御信号に基づいて選択的に接続バスを切換えることにより、データを整列して出力バスBo−0、Bo−1、Bo−2およびBo−3を介して主メモリ26の各メモリユニットMM−A、MM−B、MM−CおよびMM−Dに供給する。
【0052】
第2のデータ整列処理部44の詳細な構成を図6に示す。
図6に示す第2のデータ整列処理部44は、8バイトのバスが、1バイトずつに分割、すなわち1バイトずつにスライスされた8つのデータ整列処理ユニット48で構成される。これら8つのデータ整列処理ユニット48は、全く同様の構成を有し、第2の整列制御信号に基づいて互いに同期連動して接続バスを切換える。各データ整列処理ユニット48は、ベクトルレジスタユニット32に接続されたそれぞれ1バイトずつの4つの入力バスを選択的に切換えて、主メモリ26の各メモリユニットMM−A、MM−B、MM−CおよびMM−Dに接続された4つの出力バスに接続する。すなわち、8つのデータ整列処理ユニット48の入力は、1バイト毎の各入力データバスBi−0−0〜Bi−3−0、Bi−0−1〜Bi−3−1、Bi−0−2〜Bi−3−2、…Bi−0−7〜Bi−3−7から与えられ、8つのデータ整列処理ユニット48の出力は、1バイト毎の各出力データバスBo−0−0〜Bo−3−0、Bo−0−1〜Bo−3−1、Bo−0−2〜Bo−3−2、…Bo−0−7〜Bo−3−7に出力される。
【0053】
ベクトルレジスタユニット32の詳細な構成を図7に示す。
ベクトルレジスタユニット32は、この場合、それぞれ2バイトずつのデータを処理する4つのベクトルレジスタサブユニット38で構成される。各ベクトルレジスタサブユニット38は、図6に示した1バイト毎の入力データバスBi−0−0〜Bi−3−0、Bi−0−1〜Bi−3−1、Bi−0−2〜Bi−3−2、…Bi−0−7〜Bi−3−7のうちの4バイト毎の2つずつを1組として、それらに対する出力を供給する。
【0054】
例えば、データは次のようにしてベクトルレジスタユニット32から出力される。1番目のベクトルレジスタサブユニット38からは、入力データバスBi−0の第0バイトの入力データバスBi−0−0と第4バイトの入力データバスBi−0−4へのデータが出力され、該1番目のベクトルレジスタサブユニット38は、これら入力データバスBi−0−0およびBi−0−4への出力データを第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42からVR読出し選択信号により選択的に切換えて出力し得るようになっている。
【0055】
すなわち、この1番目のベクトルレジスタサブユニット38では、VR読出し選択信号によって接続バスを選択的に切換えることにより、入力データバスBi−0−0およびBi−0−4への出力データをそれぞれ第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42の両方から供給するか、入力データバスBi−0−0およびBi−0−4への出力データをそれぞれ第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42のいずれか一方から同一のデータを供給するかを選択することができる。
【0056】
この選択切換えは、処理するデータの形式(すなわち、8バイトデータ、上位4バイトデータ、および下位4バイトデータのいずれであるか)に応じて行う。すなわち、8バイトデータのときは、図18(a)のように、第0バイト用のベクトルレジスタ40および第4バイト用のベクトルレジスタ42の出力を、そのまま入力データバスBi−0−0およびBi−0−4へ供給する。上位4バイトのデータのときは、図18(b)のように第0バイト用のベクトルレジスタ40の出力を、入力データバスBi−0−0およびBi−0−4へ共通に供給する。下位4バイトのデータのときは、図18(c)のように第4バイト用のベクトルレジスタ42の出力を、入力データバスBi−0−0およびBi−0−4へ共通に供給する。
【0057】
パイプライン制御部16の詳細な構成を図9に示す。
図9には、パイプライン制御部16のうちの本発明実施例に直接関連がある部分のみを詳細に示しており、ここでは当該部分のみを説明する。図9に示すパイプライン制御部16は、第1のデータ整列制御部60、書込み選択制御部62、VR書込み可否制御部64、命令処理部66、VR読出し選択制御部68、第2のデータ整列制御部70および書込み可否信号生成部72を有している。これらの構成は、主として上述したベクトルレジスタ部20およびデータ整列部24への各種制御信号を生成する。
第1のデータ整列制御部60は、メモリ制御部14から主メモリ26のアクセスに関する情報を受けるとともに、命令処理部66からオペレーションコード等の情報を受けて、図3に示した第1のデータ整列処理ユニット36を制御するための第1の整列制御信号を生成する。書込み選択制御部62は、第1のデータ整列制御部60および命令処理部66の出力に応動して、図4に示したベクトルレジスタサブユニット38のベクトルレジスタ40および42等へのデータ形式に応じた書込み選択のための接続バスの切換え制御を行うための書込み選択信号を生成する。VR書込み可否制御部64は、書込み選択制御部62の出力に応動して、図4のベクトルレジスタサブユニット38のベクトルレジスタ40および42等の書込み可否を制御するためのVR書込み可否信号を生成する。
【0058】
命令処理部66はベクトル命令部10からの命令を受けて第1のデータ整列制御部60、書込み選択制御部62およびVR読出し選択制御部68へ命令実行のためのオペレーションコード等を送る。VR読出し選択制御部68は、メモリ制御部14から主メモリ26のアクセスに関する情報を、命令処理部66から実行すべき命令に関する情報をそれぞれ受けて図7に示すベクトルレジスタサブユニット38のベクトルレジスタ40および42等からのデータ形式に応じたデータの読出しを制御するためのVR読出し選択信号を生成する。第2のデータ整列制御部70は、VR読出し選択制御部68からの情報を受けて、図6に示した第2のデータ整列処理ユニット48を制御するための第2の整列制御信号を生成する。書込み可否信号生成部72は、図5に示した第2のデータ整列処理部44から主メモリユニットMM−A、MM−B、MM−CおよびMM−Dへの、出力バスBo−0〜Bo−3毎のデータ書込みの可否を制御するメモリ書込み可否信号を生成する。
【0059】
このような構成により、ベクトルデータ処理装置のデータ整列処理のための構成を所定バイト数毎にスライスして、複数の同様の構成による分割構成とし、柔軟で且つ複雑なデータの操作を可能とするとともに、構成のリピータビリティを向上させることが可能となる。
【0060】
第1のデータ整列処理ユニット部30と第2のデータ整列処理部44とは、同時に処理することのないシステムであれば、共通の構成を切換え制御することにより実現することが可能であり、さらに構成を簡単化することができる。
【0061】
また、第1のデータ整列処理ユニット部30および第2のデータ整列処理部44とベクトルレジスタサブユニット38との分割データ幅は、両者の比を1対2のベキ乗とすれば、種々選択して実施することができる。
【0062】
【発明の効果】
以上説明したように、本発明によれば、各入力バス幅を複数の第1の区分データ幅に分割するとともに、該第1の区分データ幅に分割した入力バスに各対応して、それぞれ前記第1の区分データ幅毎に複数の入力バスを複数の出力バスに選択的に接続する複数の第1のデータ整列処理区分ユニットを含む第1のデータ整列処理部と、各ベクトルレジスタ書き込みデータバス幅を複数個の第2の区分データ幅に分割するとともに、該第2の区分データ幅に分割したベクトルレジスタ書込みデータバスに各対応して前記第2の区分データ幅に分割した複数個のベクトルレジスタユニットを含むベクトルレジスタ部とを設け、且つ前記第2の区分データ幅は、前記第1の区分データ幅の所定の2のベキ乗倍に設定して、ベクトルレジスタ部の少なくとも入力部にバイト間で選択接続を行う構成とすることにより、データをより細分化してデータ整列処理を行うことが可能となり、データ整列の自由度が増し、より少ないハードウェア量で、転送速度を落とすことなく、構成の繰り返し性、すなわちリピータビリティを向上させ得るベクトルデータ処理装置を提供することができる。
【0063】
例えば、ベクトルレジスタの入力および出力部にバイト間で、選択接続によるデータ整列制御を行うことにより、より細分化された整列制御が可能となり高精度化およびリピータビリティの自由度の増加が可能となる。
【図面の簡単な説明】
【図1】本発明に係るベクトルデータ処理装置を含むベクトル計算システムの一実施例の構成を示すブロック図である。
【図2】図1のシステムにおけるベクトルデータ処理装置のロード時のシステムブロック図である。
【図3】図1のシステムにおけるベクトルデータ処理装置の第1のデータ整列処理部の模式的ブロック図である。
【図4】図1のシステムにおけるベクトルデータ処理装置のベクトルレジスタユニットの詳細な構成を示す模式的ブロック図である。
【図5】図1のシステムにおけるベクトルデータ処理装置のストア時のシステムブロック図である。
【図6】図1のシステムにおけるベクトルデータ処理装置の第2のデータ整列処理部の模式的ブロック図である。
【図7】図1のシステムにおけるベクトルデータ処理装置のベクトルレジスタユニットの詳細な構成を示す模式的ブロック図である。
【図8】図1のシステムにおけるベクトルデータ処理装置のベクトルレジスタからの読出し選択を説明するための図である。
【図9】図1のシステムにおけるベクトルデータ処理装置のパイプライン制御部の要部構成を示すブロック図である。
【図10】従来のシステムにおけるベクトルデータ処理装置のロード動作に係る機能構成についてのシステムブロック図である。
【図11】図10のシステムにおけるベクトルデータのフォーマットの一例を示す図である。
【図12】図10のシステムの動作説明のための模式的ブロック図である。
【図13】図10のシステムのシステム全体の接続状態を示す模式図である。
【図14】図10と同様のシステムにおけるベクトルデータ処理装置のストア動作に係る機能構成についてのシステムブロック図である。
【図15】図14のシステムの動作説明のための模式的ブロック図である。
【図16】図14のシステムのシステム全体の接続状態を示す模式図である。
【図17】従来の他のシステムにおけるベクトルデータ処理装置のロード動作に係る機能構成についてのシステムブロック図である。
【図18】図17と同様のシステムにおけるベクトルデータ処理装置のストア動作に係る機能構成についてのシステムブロック図である。
【図19】図17のシステムのシステム全体の接続状態を示す模式図である。
【符号の説明】
10…ベクトル命令部
12…アドレス発生部
14…メモリ制御部
16…パイプライン制御部
18…マスクレジスタ部
20…ベクトルレジスタ部
22…演算部
24…データ整列部
26…主メモリ
30…第1のデータ整列処理部
32…ベクトルレジスタユニット
34…演算ユニット
36,48…データ整列処理ユニット
38…ベクトルレジスタサブユニット
40…ベクトルレジスタ(第0バイト用)
42…ベクトルレジスタ(第4バイト用)
44…第2のデータ整列処理部
60…第1のデータ整列制御部
62…書込み選択制御部
64…VR書込み可否制御部
66…命令処理部
68…VR読出し選択制御部
70…第2のデータ整列制御部
72…書込み可否信号生成部
Claims (5)
- パラレルに配置された複数個のメモリユニットを有する主メモリと、
第1のデータ整列処理部と、
前記メモリユニットごとに設けられ、該メモリユニットと前記第1のデータ整列処理部とを接続するとともに、該メモリユニットから読み出される所定バイト幅のデータを、前記第1のデータ整列処理部にパラレルに入力するための第1の入力バスと、
パラレルに配置された複数個のベクトルレジスタユニットを有するベクトルレジスタ部と、
前記ベクトルレジスタユニットごとに設けられ、該ベクトルレジスタユニットと前記第1のデータ整列処理部とを接続するとともに、前記第1のデータ整列処理部によって整列されたデータを、該ベクトルレジスタユニットにパラレルに出力するための第1の出力バスと、を備え、
前記第1のデータ整列処理部は、これに入力される所定バイト幅のデータを第1の区分データ幅に分割するとともに、該第1の区分データ幅ごとに設けられ、前記第1の区分データ幅毎に前記第1の入力バスと前記第1の出力バスとを選択的に接続することで該第1の区分データ幅に対応するデータごとに整列を行う第1のデータ整列処理区分ユニットを含み、
前記ベクトルレジスタ部は、これに入力される整列後の所定バイト幅のデータを第2の区分データ幅に分割するとともに、その第2の区分データ幅ごとに設けられ、第2の区分データ幅の半分のデータ幅に対応する一方のデータ又は第2の区分データ幅の半分のデータ幅に対応する他方のデータのいずれかが選択的に入力される第1ベクトルレジスタと、第2の区分データ幅の半分のデータ幅に対応するデータのうち、第1ベクトルレジスタに入力されなかった方のデータが入力される第2ベクトルレジスタとを含むことを特徴とするベクトルデータ処理装置。 - 前記第2の区分データ幅は、前記第1の区分データ幅の所定の2のベキ乗倍に設定されている請求項1に記載のベクトルデータ処理装置。
- 第2のデータ整列処理部と、
前記ベクトルレジスタユニットごとに設けられ、該ベクトルレジスタユニットと前記第2のデータ整列処理部とを接続するとともに、該ベクトルレジスタユニットから読み出さ
れる所定バイト幅のデータを、前記第2のデータ整列処理部にパラレルに入力するための第2の入力バスと、
前記メモリユニットごとに設けられ、該メモリユニットと前記第2のデータ整列処理部とを接続するとともに、前記第2のデータ整列処理部によって整列されたデータを、該メモリユニットにパラレルに出力するための第2の出力バスとを備え、
前記第2のデータ整列処理部は、これに入力される所定バイト幅のデータを第3の区分データ幅に分割するとともに、その第3の区分データ幅ごとに設けられ、該第3の区分データ幅ごとに前記第2の入力バスと前記第2の出力バスとを選択的に接続することで該第3の区分データ幅に対応するデータごとに整列を行う第2のデータ整列処理区分ユニットを含むことを特徴とする請求項1に記載のベクトルデータ処理装置。 - 前記第3の区分データ幅は、前記第2の区分データ幅のベキ乗分の1に設定されている請求項3に記載のベクトルデータ処理装置。
- 前記第1のデータ整列処理部の前記第1の出力バスを前記第2のデータ整列処理部の前記第2の入力バスと共用し、前記第1のデータ整列処理部の前記第1の入力バスを前記第2のデータ整列処理部の前記第2の出力バスと共用して、前記第1のデータ整列処理部と前記第2のデータ整列処理部とを共通の構成とすることを特徴とする請求項3に記載のベ クトルデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11323495A JP3594260B2 (ja) | 1995-05-11 | 1995-05-11 | ベクトルデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11323495A JP3594260B2 (ja) | 1995-05-11 | 1995-05-11 | ベクトルデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08305685A JPH08305685A (ja) | 1996-11-22 |
JP3594260B2 true JP3594260B2 (ja) | 2004-11-24 |
Family
ID=14606975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11323495A Expired - Fee Related JP3594260B2 (ja) | 1995-05-11 | 1995-05-11 | ベクトルデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3594260B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009447A (ja) * | 2007-06-29 | 2009-01-15 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
JP5658556B2 (ja) * | 2010-12-24 | 2015-01-28 | 富士通株式会社 | メモリ制御装置、及びメモリ制御方法 |
JP2011233155A (ja) * | 2011-06-16 | 2011-11-17 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
CN105940381B (zh) * | 2013-12-26 | 2019-11-15 | 英特尔公司 | 存储器控制器和由存储器控制器执行的方法 |
US10061581B2 (en) * | 2014-01-31 | 2018-08-28 | Qualcomm Incorporated | On-the-fly conversion during load/store operations in a vector processor |
-
1995
- 1995-05-11 JP JP11323495A patent/JP3594260B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08305685A (ja) | 1996-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0020908B1 (en) | Data processing system comprising a common bus communication system in which the width of the address field is greater than the number of lines on the bus | |
US4314333A (en) | Data processor | |
JPS618785A (ja) | 記憶装置アクセス制御方式 | |
JPS619760A (ja) | ベクトル処理システム | |
JPH0644245B2 (ja) | ストアバッファ装置 | |
JP3594260B2 (ja) | ベクトルデータ処理装置 | |
US6041387A (en) | Apparatus for read/write-access to registers having register file architecture in a central processing unit | |
EP0212152A2 (en) | Microprocessor assisted memory to memory move apparatus | |
US4575796A (en) | Information processing unit | |
JPS621047A (ja) | メモリ回路を有する半導体装置 | |
US4959778A (en) | Address space switching apparatus | |
JPS59114677A (ja) | ベクトル処理装置 | |
US5327539A (en) | Access processing system in information processor | |
JP3182000B2 (ja) | 複合情報処理システムにおける拡張記憶装置 | |
JPH031394A (ja) | 記憶装置 | |
JPH02224041A (ja) | キャッシュメモリ制御回路 | |
JP2527814B2 (ja) | 命令処理システム | |
JP2918570B2 (ja) | 中央演算処理装置 | |
JP3299663B2 (ja) | 演算装置 | |
EP0299526B1 (en) | Queue having long word length | |
JPH05173778A (ja) | データ処理装置 | |
JPH0412491B2 (ja) | ||
JPH0243216B2 (ja) | ||
JPS60189052A (ja) | メモリアクセス制御装置 | |
JPS63271567A (ja) | 非対称密結合マルチプロセツサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040726 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040810 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040830 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090910 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090910 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100910 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100910 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110910 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120910 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |