JP2007334819A - ベクトルリネーミング方式およびベクトル型計算機 - Google Patents

ベクトルリネーミング方式およびベクトル型計算機 Download PDF

Info

Publication number
JP2007334819A
JP2007334819A JP2006169010A JP2006169010A JP2007334819A JP 2007334819 A JP2007334819 A JP 2007334819A JP 2006169010 A JP2006169010 A JP 2006169010A JP 2006169010 A JP2006169010 A JP 2006169010A JP 2007334819 A JP2007334819 A JP 2007334819A
Authority
JP
Japan
Prior art keywords
vector
renaming
registers
cell
mask
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.)
Granted
Application number
JP2006169010A
Other languages
English (en)
Other versions
JP5145659B2 (ja
Inventor
Satoshi Tagaya
聡 多賀谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006169010A priority Critical patent/JP5145659B2/ja
Publication of JP2007334819A publication Critical patent/JP2007334819A/ja
Application granted granted Critical
Publication of JP5145659B2 publication Critical patent/JP5145659B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)

Abstract

【課題】単純なハードウェアを用い、ベクトル型計算機においてマスク演算動作とレジスタリネーミングを同時に実現する。
【解決手段】相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタを設ける。各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルC0,C1と、セルC0,C1ごとに設けられたセレクタS0,S1とを有する。セレクタS0,S1は、ライトデータWDかセット内の相手側のセルC1,C2が保持する値かをマスク信号MASKに応じて対応するセルC0,C1に供給する。この構成により、マスクが設定されている場合にはセル間でセルの値がコピーされ、マスクが設定されていないときにはライトデータWDがいずれかのセルに書き込まれるようにする。
【選択図】図1

Description

本発明は、ベクトル型計算機に関し、特に、レジスタリネーミングを可能にして演算スループットを向上させるためのレジスタリネーミング方式と、このようなレジスタリネーミング方式を採用したベクトル型計算機とに関する。
計算機システムにおいてその性能を向上させるためには、単位時間当たりに実行できる命令数を高めることが必要である。特に、持続的な性能(Sustained Performance)の向上のためには、命令を発行するレート(Issueレート)を向上することが必要である。
計算機システムにおいて、演算処理は一般にレジスタ間で行われるが、パイプライン処理を用いている場合に、あるレジスタに対する命令を発行した後、同じレジスタが別の命令を実行できるようになるためには一定のマシンサイクルを必要とする。ハードウェアには、プログラムが前提とする個数よりも多くの個数のレジスタを用意しておき、プログラム上では同一のレジスタに対するものである複数の命令があるときに、命令の実行時において、プログラムで規定されているレジスタとは別のレジスタを用いるようにすることによって、演算の高速化が可能になる。このような手法で演算の高速化を図るものが、レジスタリネーミング(レジスタの名前の付け替え)である。
一般的に行われているレジスタリネーミングでは、ある演算結果を書き込むレジスタに別名を与え、リソースの依存性を緩和する。たとえば、命令Aが論理リソースXに対してデータを読み出している途中で、同一の論理リソースXに対する書き込みを行う後続命令Bに関して、論理リソースXに対して物理リソースX1、X2をそれぞれA,Bに割り当てておくことで、B実行によるデータの書きつぶしを防ぐことが可能となる。これは命令Bの発行制限の緩和を意味し、発行レートの向上が見込める。
しかしながら、レジスタリネーミングをベクトル型計算機に適用しようとする場合には、ベクトル型計算機には、要素ごとに計算の有無を切り替えることのできるマスク機能が設けられており、単純にリネーミングメカニズムを実現できない、という問題点がある。たとえば前述の命令Bにマスクがかかっていた場合、マスク対象の要素には、演算結果の元の値、すなわち命令Aの実行結果の対応する要素を格納する必要がある。これは、演算がマスクされている以上、あるレジスタに既に書き込まれたデータが、あとに実行される命令で参照される可能性があるからである。ベクトル計算機におけるマスク機能については、例えば、特許文献1、2に記載されている。
そのため、単純に複数の独立したリソースをA,Bに割り当てるだけで不十分で、そのリソース間での値の引渡しが必要となり、既存のレジスタリネーミング技術を単純に導入することができなかった。リソース間での値の引渡しを行うようにした構成は、例えば、特許文献3に記載されている。
特開昭60−150473号公報 特開平1−284970号公報 特開2000−172505号公報
上述したように従来のレジスタリネーミングの手法は、命令の発行レートを向上することによって演算処理性能を高める手法として広く用いられているものの、ベクトル計算機にはそのままでは適用できない、という問題点を有する。特許文献3に記載されたようにリソース間で値の引渡しを行えるような構成を採用する場合には、ハードウェア構成が複雑になる、という問題点がある。
そこで本発明の目的は、単純なハードウェアを用い、ベクトル型計算機においてマスク演算動作とレジスタリネーミングを同時に実現することが可能な、ベクトルリネーミング方式と、このようなベクトルリネーミング方式を採用したベクトル型計算機とを提供することにある。
本発明の第1のベクトルリネーミング方式は、ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタを備え、セット内で複数のリネーミングレジスタが相互に結合され、マスク演算に必要な値のコピーをセット内で実現できるようにしたものである。
本発明の第2のベクトルリネーミング方式は、ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタを備え、各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、セレクタは、ライトデータかセット内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。
本発明の第1のベクトル型計算機は、レジスタリネーミングを制御する制御手段と、相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタと、演算器と、制御手段によって制御されて複数のリネーミングレジスタのうちの1つの出力を演算器に供給するセレクタと、演算器の演算結果が入力して複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、を備え、セット内で複数のリネーミングレジスタが相互に結合され、マスク演算に必要な値のコピーをセット内で実現できるようにしたものである。
本発明の第2のベクトル型計算機は、レジスタリネーミングを制御する制御手段と、相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタと、演算器と、制御手段によって制御されて複数のリネーミングレジスタのうちの1つの出力を演算器に供給する第1のセレクタと、演算器の演算結果が入力して複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、を備え、各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられた第2のセレクタとを有し、第2のセレクタは、書き込み制御手段からのライトデータかセット内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。
本発明は、論理ベクトルレジスタにマッピングされる複数のリネーミングレジスタにおいて、これらのリネーミングレジスタを結合することによってマスク演算に必要な値のコピーを行えるようにすることにより、単純なセル構成によって、マスク演算を実現したままレジスタリネーミングを実現をできるという効果がある。特に本発明は、大掛かりなハードウェアを必要とせずにマスク演算とレジスタリネーミングとを両立させているので、低コストで、ベクトル命令の発行レートを大幅に向上させることができる。
次に、本発明の好ましい実施の形態について、図面を参照して説明する。図1は本発明の実施の一形態のベクトルリネームミング方式で用いられるセルセット(セルの組)の構成を示している。
図1に示すセルセットは、それぞれ1ビットのRAM(ランダムアクセスメモリ)セルC0,C1を備えており、それぞれのビットは、同一論理レジスタにマップされる2つの物理レジスタに対応している。ここでは、1つの論理ベクトルレジスタが2つの物理ベクトルレジスタのいずれかにリネーミングされるものとして、2ビット分のセルを有するが、実際には、リネーミングの形態に応じて、3個以上のセルを用いて1つのセルセットを構成してもよい。
これらのセルは、ハードウェア上に近接してレイアウトされることが望ましい。このようにセルが集まった単位をセルセットと読んでいる。
各セルC0,C1に対してデータを書き込む経路には、それぞれ、セレクタS0,S1が設けられている。セルに対するライトデータWDがセルセットに入力しており、このデータWDは、セルC0,C1のいずれかあるいは両方に対して書き込みを行う際の入力データとなる。セレクタS0には、セルC1の出力RD1も接続し、セレクタS1にはセルC0の出力RD0も接続する。結局、セレクタS0,S1を介して、セルC0,C1がたすきがけとなるように接続していることになる。セレクタS0,S1には、マスク信号MASKが与えられている。マスク信号MASKがアクティブ(“1”)であれば、セレクタS0,S1は、セルC0,C1に対してそれぞれ書込データとして、相手側セルの出力(セルC1,C0の出力)を供給し、MASK信号がアクティブでなければ(すなわち“0”であれば)、ライドデータWDを供給する。各セルC0,C1からは、それぞれ、リードデータRD0,RD1が読み出される。なお、ベクトル計算機における各演算器(後述するFMAC70,73、FDV71,74、FLOGIC72,75)に対してリードRD0,RD1のどちらが供給されるかは、リソース管理部4からの選択信号42によって制御される後述するセレクタ80によって選択される。セレクタは、対をなして設けられた物理ベクトルレジスタから、論理レジスタにマップされるものを選択してその出力を各演算器に供給するために設けられている。
各セルC0,C1に対しては、それぞれ、ライトイネーブル信号WE0,WE1が与えられている。WE0はC0に対するライトイネーブルであり、この信号がアクティブであれば、そのときセレクタC0で選択されている信号がセルC0に書き込まれる。すなわち、WE0がアクティブであれば、セルC0に対して、データWDあるいはセルC1の出力値が書き込まれる。例えば、マスク信号MASKが“1”のときに信号WE0がアクティブ(“1”)になると、セルC0にはセルC1の内容が書き込まれる、すなわち値がコピーされる。信号MASKが“0”の時に信号WE0がアクティブになると、セルC0にはライトデータWDの値が書き込まれる。同様に、信号WE1はセルC1に対するライトイネーブル信号であり、この信号WE1がアクティブになると、セルC1に対して、データWDあるいはセルC0の出力値が書き込まれる。
結局、このセルセットでは、マスク信号(マスクビット)MASKを指定することで、書き込みデータを外部からのライトデータWD、あるいはセルセット内部の自セルの反対側のセル(自セルがセルC0であればセルC1側)のデータを切り替えて書き込むことが可能である。
ベクトル計算機には、演算要素ごとに演算の可否を指定できる演算マスク機能が存在し、マスクされた要素に対して値を変化させない命令であるベクトルマスク対象命令が存在する。そのため、ベクトル計算機におけるリネーミング機構では、マスクされた「変化しない」データを考慮することが必要である。論理レジスタVR0に物理レジスタVRR100,VRR108が対応する場合、論理ベクトルレジスタVR0と物理ベクトルレジスタVRR100,VRR108のうちの対応する要素との間には、情報の受け渡しパスが必要となる。
本実施形態のセルセットを用いることにより、セルセット内のVRR(物理ベクトルレジスタ)セルのいずれかに元のデータが入っていれば、その値を反対側にあるセルの更新時に受け継ぐことが可能となり、リネーミング動作とマスク動作を両立されることが可能となる。本実施形態では、このようなセルセットが、論理ベクトルレジスタのサイズだけ存在することになる。たとえば、64ビット構成で256エントリのベクトルレジスタを論理的に8本持つアーキテクチャでは、上述したセルセットを64×256×8=131,072個用意することになる。各セルセットが2セルから構成されているとすれば、262,144個の物理セルが存在することになる。
図2は、上述したセルセットを用いることによってレジスタリネーミングを実行するベクトル計算機の構成の一例を示している。このベクトル計算機は、一般的な命令キャッシュなどを含む命令供給部1と、命令供給部1からの命令をデコードするデコーダ2と、デコードされた命令の発行制御を行う発行制御部3と、発行制御部3で発行された命令が用いるリソースの管理を行うリソース管理部4と、を備えている。リソース管理部4は、発行制御部3が発行する命令について、特にレジスタリネーミング機能のために論理ベクトルレジスタ番号と物理ベクトルレジスタ番号の対応テーブル41を用意する。図3は、対応テーブル41の内容の一例を示している。
ここでVRR10は、ベクトルリネーミングレジスタであり、論理的にベクトルレジスタVR0〜VR7を構成する場合の実体のレジスタ群であり、物理ベクトルレジスタVRR100〜VRR115の16個から構成される。各物理ベクトルレジスタは、64ビット幅を持つデータレジスタを256エントリ備える。ベクトルリネーミングレジスタVRR10には、発行制御部3から制御信号31が供給されている。
なお、論理レジスタVR0の物理的な値は、物理ベクトルレジスタVRR100あるいは物理ベクトルレジスタVRR108のいずれかに格納される。同様に論理レジスタVR1の物理的な値は物理ベクトルレジスタVRR101あるいは物理ベクトルレジスタVRR109のいずれかに格納され、以下同様に、論理レジスタと物理ベクトルレジスタの対応付けがなされる。
ベクトル計算機には、加算及び乗算を行うFMAC(演算器)70,FMAC73と、除算を行うFDV(除算器)71,FDV74と、論理演算を行うFLOGIC(論理演算器)72,FLOGIC75が設けられ、また、それぞれの計算結果が送られてくるデータ書き込み制御部9が設けられている。データ書き込み制御部9は、論理ベクトルレジスタ番号と、割り当てられた物理ベクトルレジスタ番号(すなわちVRR100〜VRR115)の対応付け、およびマスク情報から、ベクトルリネーミングレジスタVRR10の適当な場所に、計算結果として得られたデータ、あるいは物理べクトルレジスタVRR100〜115に既に書き込まれているデータを書き込む。
なお、対をなす物理ベクトルレジスタの出力のいずれか一方を選択するためにセレクタ80が設けられており、セレクタ80で選択された物理ベクトルレジスタから読出されたベクトルデータが、FMAC70,FDV71,FLOGIC(論理演算器)72,FMAC73,FDV74,FLOGIC75に供給される。セレクタ80はリソース管理部4からの選択信号42によって制御される。例えば、物理ベクトルレジスタVRR100および物理ベクトルレジスタVRR108の一方がセレクタ80によって選択されるようになっている。
さらにこのベクトル計算機には、LSユニット5と、外部記憶メモリ6とが設けられている。LSユニット6は、物理ベクトルレジスタVRR100〜115からのデータを外部記憶メモリ6にストアする動作、また外部記憶メモリ6からデータをロードして物理ベクトルレジスタVRR100〜115のいずれかに書き込む動作を管理する。
次に、このベクトル計算機におけるレジスタリネーミングの動作について説明する。
以下の説明において、「ベクトル」とは、複数の要素データを内在するデータ列を意味する。ここではベクトルは、最大256個の64ビット要素データを持つこととする。以下では、図4に示す命令列を実行するものとした場合の処理を説明する。図4に示す命令列において、「VADD」はオペランドで指定した2つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの加算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。
「VSUB」は、オペランドで指定した2つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの減算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。
ここで、VADD命令およびVSUB命令は、いずれも、演算を行わない要素を選択的に指定すること(すなわちマスクをかける)が可能である。VFMK命令は、ベクトルのマスクを変更する命令である。ベクトル演算を実際に行う要素数(VL;ベクトル長)は、ソフトウエアによって0〜256の間で変化させることが可能である。LVL命令は、演算対象のベクトル要素数を変更する命令である。たとえばLVL命令でVLを10と指定すると、ベクトル演算はベクトルレジスタに含まれる要素のうち、先頭から10要素だけに対して行われる。
まず、図4に示した命令群において、1行目の命令LVLが命令供給部1から供給され、デコーダ2でデコードされ、発行制御部3においてLVL命令が発行され、ベクトル長VLが4にセットされる。LVL命令でVLとして4が指定されたことにより、以下では、ベクトル演算は、ベクトルレジスタに含まれている要素のうち最初の4要素に対して行われることになる。このLVL命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタ(物理ベクトルレジスタ)VRR100,VRR101,VRR102,VRR108の値を図5に示す。図5に示すように、VLに4という値がセットされている。なお、現時点では、論理ベクトルレジスタVR0に対する物理ベクトルレジスタとして、VRR100が割り振られている。これは、この時点での物理ベクトルレジスタVRR100の値が論理レジスタVR0の値になっているということを示している。
次に、図4に示す命令群のうち2行目の命令VFMKが命令供給部1から供給され、デコーダ2でデコードされる。発行制御部3においてLFMK命令が発行され、ベクトルマスクに“0101”がセットされる。オペランドを“0101”とするVFMK命令は、マスクが“1”になっている要素、すなわちこの場合は、第2の要素および第4の要素に対して演算を行わないようなマスクをかける命令である。
このVFMK命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図6に示す。図6の通り、マスク情報に“0101”という値がセットされている。
次に、3行目の命令VADDが命令供給部1から供給され、デコーダ2でデコードされる。図示した例では、この命令VADDは、論理ベクトルレジスタVR1,VR2に格納された値のベクトル加算を行って論理ベクトルレジスタVR0に格納するものである。
発行制御部3においてVADD命令が発行される。その際、リソース管理部4は、このVADD命令の結果を書き込む論理レジスタVR0に対して、物理ベクトルレジスタVRR108側を割り当て、リソース管理部4内の対応情報を物理ベクトルレジスタVRR108に書き換える。VADD命令はFMAC70によって実行され、その計算結果は、データ書き込み制御部9に送られる。
なお、このVADD命令を実行させた結果を書き込む動作は、データ書き込み制御部9によって行われる。図7は、データ書き込み制御部9からの制御データを示している。データ書き込み制御部9からは、要素番号、書き込み物理ベクトルレジスタVRRのレジスタ名、計算結果であるライトデータWD、マスク情報MASKがリネーミングベクトルレジスタVRR10に送られる。そして、リネーミングベクトルレジスタVRR10内の対応するレジスタ、すなわち物理ベクトルレジスタVRR108内にあるセルセットにおいて、適切な書き込みが行われる。
たとえば、要素0の演算結果に関しては、マスク情報が“0”なので、計算結果である“12”が、ライトデータWDとして物理ベクトルレジスタVRR100側のセルに書き込まれる。図1に示したセルセットにおいて、セルC0側に物理ベクトルレジスタVRR100のデータ、セルC1側に物理ベクトルレジスタVR108のデータが書き込まれているとすると、ライトイネーブル信号WE1が“1”となり、かつMASK信号は“0”のままで、セルC1に対してライトデータWDである“12”が書き込まれる。
要素1の演算結果に関しては、マスク情報が“1”すなわちアクティブであるので、物理ベクトルレジスタVRR100側のデータである“1”が反対側の物理ベクトルレジスタVRR108側のセルに書き込まれる。図1のセルセットにおいては、セルC0側に物理ベクトルレジスタVRR100側のデータ、セルC1側に物理ベクトルレジスタVR108側のデータが書き込まれているとすると、ライトイネーブル信号WE1が“1”となり、かつMASK信号は“1”となって、セルC1に、セルC0の格納値である“1”が書き込まれる。
このVADD命令の実行終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図8に示す。図8に示す通り、VADD命令の実行結果は、割り当てられた物理ベクトルレジスタVRR108に、マスク情報を反映した形で格納されている。
最後に、4行目のVSUB命令が命令供給部1から供給され、デコーダ2でデコードされる。図示したものは、このVSUB命令は、論理ベクトルレジスタVR2の内容から論理ベクトルレジスタVR1の内容をベクトル減算し、論理ベクトルレジスタVR0に格納するものである。
発行制御部3においてVSUB命令が発行される。その際、リソース管理部4は、このVSUB命令の結果を書き込む論理レジスタVR0に対して、物理ベクトルレジスタVRR100側を割り当て、リソース管理部4内の対応情報を物理ベクトルレジスタVRR100に書き換える。VSUB命令はFMAC70によって実行され、その計算結果は、データ書き込み制御部9に送られる。
前述のVADD命令の場合と同様に、このVSUB命令の実行結果の書き込み動作は、データ書き込み制御部9によって行われる。図9は、データ書き込み制御部9からの制御データを示している。物理ベクトルレジスタVRR100内の対応するレジスタ、すなわち物理ベクトルレジスタVRR100内にあるセルセットにおいて、適切な書き込みが行われる。
たとえば、要素0の演算結果に関しては、マスク情報が“0”であるので、計算結果である“4”が、ライトデータWDとして物理ベクトルレジスタVRR100側のセルに書き込まれる。図1のセルセットにおいては、セルC0側にV物理ベクトルレジスタRR100側のデータ、セルC1側に物理ベクトルレジスタVRR108側のデータが書き込まれているとすると、ライトイーネーブル信号WE0が“1”となり、かつMASK信号は“0”のままで、セルC0に、ライトデータWDである“12”が書き込まれる。
要素1の演算結果に関しては、マスク情報が“1”であるので、物理ベクトルレジスタVRR100側のデータである“1”が物理ベクトルレジスタVRR108側のセルに書き込まれる。図1のセルセットにおいては、セルC0側に物理ベクトルレジスタVRR100のデータ、セルC1側に物理ベクトルレジスタVR108側のデータが書き込まれているとすると、ライトイネーブル信号WE0が“1”となり、かつMASK信号は“1”となって、セルC0には、セルC1の格納値である“1”が書き込まれる。
このVSUB命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図10に示す。図10に示す通り、VSUB命令の実行結果は、割り当てられた物理ベクトルレジスタVRR100に、マスク情報を反映した形で格納されている。
このようにして、本実施形態によれば、ベクトル計算機においてマスク演算が行われていたとしても、リネームされたベクトルレジスタ側にも正常な結果が書き込まれることが保障できる。
なお、上述では一つ一つの命令が非パイプライン的に動作した例を説明したが、当然のことながら、各命令はパイプライン的に動作し、それぞれの命令動作の一部が互いにオーバーラップしてもよい。
本発明の実施の一形態のベクトルリネーミング方式で用いられるセルセットを示す回路図である。 本発明の実施の一形態のベクトル計算機の概略構成を示すブロック図である。 リソース管理部内に設けられる対応テーブルの内容の一例を示す図である。 ベクトル計算機に与えられる命令群の一例を示す図である。 LVL命令の終了時における、対応テーブル、マスク情報、VL、およびリネーミングレジスタの値を示す図である。 VFMK命令の終了時における、対応テーブル、マスク情報、VL、およびリネーミングレジスタの値を示す図である。 データ書き込み制御部からの制御データを示す図である。 VADD命令の終了時における、対応テーブル、マスク情報、VL、およびリネーミングレジスタの値を示す図である。 データ書き込み制御部からの制御データを示す図である。 VSUB命令の終了時における、対応テーブル、マスク情報、VL、およびリネーミングレジスタの値を示す図である。
符号の説明
1 命令供給部
2 デコーダ
3 発行制御部
4 リソース管理部
5 LSユニット
6 外部記憶メモリ
9 データ書き込み制御部
31 制御信号
41 対応テーブル
42 選択信号
80,S0,S1 セレクタ
70,73 FMAC(演算器)
71,74 FDV(除算器)
72,75 FLOGIC(論理演算器)
C0,C1 セル
VR 論理レジスタ
VRR 物理ベクトルレジスタ

Claims (5)

  1. ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、
    相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタを備え、
    前記セット内で前記複数のリネーミングレジスタが相互に結合され、マスク演算に必要な値のコピーを前記セット内で実現できるようにした、ベクトルリネーミング方式。
  2. ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、
    相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタを備え、
    前記各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、
    前記セレクタは、ライトデータか前記セット内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
    マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトルリネーミング方式。
  3. 前記論理ベクトルレジスタごとに2個の物理ベクトルレジスタが前記複数のリネーミングレジスタとして設けられている、請求項1または2に記載のベクトルリネーミング方式。
  4. ベクトル型計算機であって、
    レジスタリネーミングを制御する制御手段と、
    相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタと、
    演算器と、
    前記制御手段によって制御されて前記複数のリネーミングレジスタのうちの1つの出力を前記演算器に供給するセレクタと、
    前記演算器の演算結果が入力して前記複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、
    を備え、
    前記セット内で前記複数のリネーミングレジスタが相互に結合され、マスク演算に必要な値のコピーを前記セット内で実現できるようにした、ベクトル型計算機。
  5. ベクトル型計算機であって、
    レジスタリネーミングを制御する制御手段と、
    相互にセットをなすとともに論理ベクトルレジスタに対応する複数のリネーミングレジスタと、
    演算器と、
    前記制御手段によって制御されて前記複数のリネーミングレジスタのうちの1つの出力を前記演算器に供給する第1のセレクタと、
    前記演算器の演算結果が入力して前記複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、
    を備え、
    前記各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられた第2のセレクタとを有し、
    前記第2のセレクタは、前記書き込み制御手段からのライトデータか前記セット内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
    マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトル型計算機。
JP2006169010A 2006-06-19 2006-06-19 ベクトルリネーミング方式およびベクトル型計算機 Expired - Fee Related JP5145659B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006169010A JP5145659B2 (ja) 2006-06-19 2006-06-19 ベクトルリネーミング方式およびベクトル型計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006169010A JP5145659B2 (ja) 2006-06-19 2006-06-19 ベクトルリネーミング方式およびベクトル型計算機

Publications (2)

Publication Number Publication Date
JP2007334819A true JP2007334819A (ja) 2007-12-27
JP5145659B2 JP5145659B2 (ja) 2013-02-20

Family

ID=38934210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006169010A Expired - Fee Related JP5145659B2 (ja) 2006-06-19 2006-06-19 ベクトルリネーミング方式およびベクトル型計算機

Country Status (1)

Country Link
JP (1) JP5145659B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205088A (ja) * 2009-03-04 2010-09-16 Nec Computertechno Ltd ベクトル処理装置、及びベクトル処理方法
JP2015106325A (ja) * 2013-12-02 2015-06-08 日本電気株式会社 ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
JP2019220065A (ja) * 2018-06-22 2019-12-26 日本電気株式会社 演算装置及び演算システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01284970A (ja) * 1988-05-11 1989-11-16 Nec Corp イテレーション演算回路
JP2005508043A (ja) * 2001-10-29 2005-03-24 インテル コーポレイション データの右方向平行シフトマージ方法及び装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01284970A (ja) * 1988-05-11 1989-11-16 Nec Corp イテレーション演算回路
JP2005508043A (ja) * 2001-10-29 2005-03-24 インテル コーポレイション データの右方向平行シフトマージ方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205088A (ja) * 2009-03-04 2010-09-16 Nec Computertechno Ltd ベクトル処理装置、及びベクトル処理方法
JP2015106325A (ja) * 2013-12-02 2015-06-08 日本電気株式会社 ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
JP2019220065A (ja) * 2018-06-22 2019-12-26 日本電気株式会社 演算装置及び演算システム

Also Published As

Publication number Publication date
JP5145659B2 (ja) 2013-02-20

Similar Documents

Publication Publication Date Title
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JP2004158018A (ja) レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム
JPH09311786A (ja) データ処理装置
JP2006509306A (ja) 関係アプリケーションへのデータ処理システム相互参照用セルエンジン
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
IL256663A (en) Vector Account Instruction
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
KR102458467B1 (ko) 벡터 생성 명령
US9690600B2 (en) Reconfigurable processor and method of operating the same
US20080082797A1 (en) Configurable Single Instruction Multiple Data Unit
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
JP2010117806A (ja) 半導体装置、および、半導体装置によるデータ処理方法
EP1220100A2 (en) Circuit and method for hardware-assisted software flushing of data and instruction caches
EP1220089A2 (en) System and method for executing conditional branch instructions in a data processor
JP6891596B2 (ja) プロセッサ
JP4444305B2 (ja) 半導体装置
JP5327432B2 (ja) 信号処理プロセッサ及び半導体装置
JP6020428B2 (ja) ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
US20120144174A1 (en) Multiflow method and apparatus for operation fusion
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
JP5644571B2 (ja) プロセッサ
JP5229321B2 (ja) 演算処理装置
JP2010079362A (ja) プロセッサ、プロセッサの制御方法及び情報処理装置
JP2006506727A (ja) コピーレジスタファイルを有するvliw

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

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: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Ref document number: 5145659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees