JP3733842B2 - ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 - Google Patents
ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 Download PDFInfo
- Publication number
- JP3733842B2 JP3733842B2 JP2000211607A JP2000211607A JP3733842B2 JP 3733842 B2 JP3733842 B2 JP 3733842B2 JP 2000211607 A JP2000211607 A JP 2000211607A JP 2000211607 A JP2000211607 A JP 2000211607A JP 3733842 B2 JP3733842 B2 JP 3733842B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- vector
- area
- scatter
- 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
- 230000010365 information processing Effects 0.000 title claims description 9
- 238000001514 detection method Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
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)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、ベクトル型情報処理装置に関し、特に、ベクトルスキャタ命令制御回路に関する。
【0002】
【従来の技術】
ベクトル型情報処理装置において、通常、ベクトル命令でアクセスされるメモリ領域は、キャッシュに登録されない。
【0003】
その理由は、ベクトル命令が対象とするデータは、一般に参照の局所性が乏しく、キャッシュに登録しても、直ちに他のキャッシュラインデータによって、スワップアウトされ、キャッシュのヒット率が低下する、ためである。
【0004】
また、ベクトル型情報処理装置において、ベクトルのメモリアクセス命令には、VST(ベクトルストア)/VLD(ベクトルロ−ド)命令のように、開始アドレスとアクセスするベクトルデータの間隔(ディスタンス)によって、規定するものがある。
【0005】
このうち、VLD命令は、この規定されたアドレスに従って、ベクトルユニット内に存在する「ベクトルレジスタ」と呼ばれる複数ワードからなるベクトルデータ格納領域に、メモリのデータを取り込む。
【0006】
逆に、VST命令は、ベクトルレジスタのデータを、メモリに書き込む。
【0007】
このVST命令は、命令発行時点で、アクセスするアドレスを認識することが可能であるため、VST命令を、VLD命令やスカラロード命令が追い越し制御することによって、性能向上を図ることが比較的容易である。
【0008】
一方、VGT(ベクトルギャザ)/VSC(ベクトルスキャタ)命令のような、いわゆる「リストベクトル」と呼ばれる命令では、ベクトルユニット内に存在するベクトルレジスタの値を、メモリのアクセスアドレスとしているため、ベクトルユニットに、命令が到達した時点で、初めてアクセスするアドレスが判り、且つ、そのアドレスは、一般に、ランダムである。
【0009】
本発明の理解のために、リストベクトル命令について、図8を参照して、説明しておく。
【0010】
まず、図8(a)に示すように、VGT命令(ベクトルギャザ命令)は、ベクトルレジスタVyの各要素に格納されているアドレスVA(n)のメモリデータを、ベクトルレジスタVxの対応する要素に格納するように、メモリからデータをロードするものである。
【0011】
また図8(b)に示すように、VSC命令(ベクトルスキャタ命令)は、ベクトルレジスタVyの各要素に格納されているアドレスVA(n)のメモリ領域へ、ベクトルレジスタVxの対応する要素データを格納するように、メモリにデータをストアするものである。
【0012】
ベクトルメモリアクセス命令とは対照的に、スカラメモリアクセス命令の場合、一般的に、データ参照の局所性があることから、通常、キャッシュメモリにデータを格納し、メモリアクセスのレイテンシを隠す方式が採用されている。
【0013】
【発明が解決しようとする課題】
このようなキャッシュを用いたベクトル型情報処理装置において、ベクトルメモリアクセス命令が発行され、メモリへの書き込みが発生した場合、キャッシュの一致性を維持するために、アクセスするアドレスがキャッシュ内に登録されている場合には、キャッシュ無効化を行う必要がある。これによって、後続キャッシュアクセス命令がストールし、性能低下の主要因になっている。
【0014】
そして、キャッシュ無効化処理は、VST(ベクトルストア)命令とVSC(ベクトルスキャタ)命令では異なる。
【0015】
VST命令の場合、命令発行時に、開始アドレスとディスタンスが決定されるので、これら2つのデータによって、比較的、高速に、キャッシュ無効化ができると共に、アクセスする開始アドレスと、終了アドレスを即座に計算できることから、後続のスカラLD(ロード)命令とのアドレスが一致しない場合に、後続命令に、追い越し制御させることができる。
【0016】
一方、VSC(ベクトルスキャタ)命令の場合には、アクセスするアドレスが、ベクトルレジスタを読み出した後でなければ分からないこと、及び、アドレスがランダムであることから、ベクトルユニットから、スカラユニット内のキャッシュ無効化制御部(図1の4参照)に、無効化アドレスが送られ、該無効化アドレスに合致するキャッシュデータを無効化する処理を行う必要がある。
【0017】
このため、VSC命令に後続する全てのメモリアクセス命令は、このキャッシュ無効化処理が終了しないと、命令を発行することができず、性能低下が発生する。
【0018】
この問題について、図6及び図7を参照して具体的に説明する。
【0019】
まず、説明を容易にするため、スカラロード(キャッシュアクセス)命令であるLDS命令について、図7を参照して説明する。このLDS命令は、VGT/VSC命令と同様、OPC(オペコード)と、オペランドX、Y、Zの計4つのフィールドから構成され、アドレスは、Ry+Rzで計算され、アドレスRy+Rzのメモリから読み出した結果M(Ry+Rz)は、レジスタRxに格納される。
【0020】
さて、図6(a)において、まずVST(ベクトル)命令の発行後、キャッシュ無効化が行われ、それとほぼ同時に、ベクトルからのメモリへの書込みが行なわれる。
【0021】
その後続のLDS命令は、VST命令のアドレスとそのアドレスが重ならなければ、たとえ、キャッシュが無効化されていても、命令を発行することができる。
【0022】
一方、図6(b)を参照すると、VSC(ベクトルスキャタ)命令の場合、キャッシュ無効化処理が行なわれるのは、ベクトルの処理が始まり、無効化アドレスが送られてくる時であり、また、VSC命令の発行直後にアクセスするアドレスは不明であり、しかも、ランダムであることから、キャッシュ無効化が終了するまで、後続のLDS命令がホールドで待たされる。
【0023】
このように、VSC命令に後続する全てのメモリアクセス命令は、このキャッシュ無効化処理が終了しないと、命令を発行することができず、性能低下が発生する。
【0024】
したがって、本発明は、上記問題点に鑑みてなされたものであって、その目的は、ベクトル処理装置において、ベクトルスキャタ命令でのキャッシュ無効化処理による後続命令の発行延期の回避と、ベクトルスキャタ命令の追い越し制御を可能とし、性能向上を実現する装置を提供することにある。
【0025】
【課題を解決するための手段】
前記目的を達成する本発明は、アクセスするメモリのアドレスの範囲が指定される領域指定付ベクトルスキャタ命令のアクセスするアドレスが、後続のメモリアクセス命令のアドレスと重なっているか否かを検出する手段と、アドレスが一致した後続のメモリアクセス命令をホールドさせる手段とを備えている。
【0026】
【発明の実施の形態】
本発明の実施の形態について説明する。本発明は、領域指定付ベクトルスキャタ命令の領域開始アドレスと、領域終了アドレスを格納するレジスタと、前記領域指定付ベクトルスキャタ命令のアドレスと、該命令の後続メモリアクセス命令とのアドレスとが重なっているか否か検出する回路と、を備えたベクトルスキャタ(VSC)アドレス一致検出部を備え、命令発行制御部は、前記領域指定付ベクトルスキャタ命令のアドレスと一致した後続メモリアクセス命令をホールドさせるホールド制御回路を備えている。
【0027】
より詳細には、本発明は、その好ましい一実施の形態において、命令データを解読して、命令動作を指示する命令発行制御部(1)と、命令発行制御部(1)からのアドレスを受け取り、スカラ型メモリアクセス命令に対して、キャッシュの更新等、キャッシュの制御を行うキャッシュ制御部(2)と、命令発行制御部(1)からベクトル命令が発行された場合、実行指示を受け取り、前記ベクトル命令が、スキャタ領域の開始アドレスと終了アドレスが指定される領域指定付VSC命令(ベクトルスキャタ命令)である場合、メモリ(7)に対して、書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出するベクトルユニット(6)と、ベクトルユニット(6)からキャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行うキャッシュ無効化制御部(4)と、命令発行制御部(1)から、領域指定付VSC命令が発行された場合、レジスタブロック(5)より、前記領域指定付VSC命令のスキャタ領域の開始アドレスと終了アドレスを受け取り、前記領域指定付VSC命令の後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか否かを検出し、重なっている場合、アドレス一致信号をアクティブ状態として、命令発行制御部(1)に対して送出するVSCアドレス一致検出部(3)と、を備え、命令発行制御部(1)は、VSCアドレス一致検出部(3)から送出されたアクティブ状態の前記アドレス一致信号を受けて、後続のメモリアクセス命令を、ホールドさせるホールド制御回路(図2の105)を備えている。
【0028】
本発明において、前記領域指定付VSC命令は、オペコードと、X、Y、Zフィールドを有し、Zフィールドで、前記レジスタブロックの2本のレジスタを指定し、それぞれに、スキャタ領域の開始アドレスと、終了アドレスを指定する。
【0029】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して以下に説明する。図1は、本発明の一実施例の基本構成を示す図である。
【0030】
図1を参照すると、本発明の一実施例をなすベクトル処理装置において、命令発行制御部1と、レジスタブロック5と、キャッシュ制御部2と、VSCアドレス一致検出部3と、キャッシュ無効化制御部4がスカラプロセッサを構成しており、ベクトルユニット6と、メモリ7を備えている。
【0031】
このうち命令発行制御部1は、信号線71を経由して、メモリ7から読み出した命令データを解読して、命令動作を指示する。
【0032】
命令発行制御部1は、キャッシュ制御部2と、VSC(ベクトルスキャタ命令)アドレス一致検出部3に対しては、信号線12を介して、アドレスを送出し、キャッシュアクセスと、VSCアドレス一致を行う。
【0033】
命令発行制御部1は、レジスタブロック5に対して、信号線15、51を介して読み出し/書込みを制御する。
【0034】
キャッシュ制御部2は、命令発行制御部1からのスカラロードがミス(ミスヒット)した場合、信号線27を介して、キャッシュリフィルデータを要求し、メモリ7からのデータを信号線72を介して受け取る。
【0035】
また、キャッシュ制御部2は、スカラストア命令が発行された場合に、キャッシュにヒットした場合には、キャッシュデータを書き換え、更に、メモリ7に対しても、必ず書き換えるストアスルーアルゴリズムに基づく。
【0036】
命令発行制御部1において、ベクトル命令が発行された場合、信号線16を介して、実行指示が、ベクトルユニット6に送られる。その際、ベクトル命令がVSC命令(ベクトルスキャタ命令)である場合、ベクトルユニット6は、メモリ7に対して書き込むべきベクトルデータを信号線67を介して送出し、更に、ベクトルユニット6は、信号線64を介して、キャッシュ無効化アドレスを、キャッシュ無効化制御部4に送出する。
【0037】
また、VSC命令が発行された場合、レジスタブロック5から信号線53を介して、VSC命令の開始アドレスと、終了アドレスが、VSCアドレス一致検出部3に送られ、VSCアドレス一致検出部3では、後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか判定し、重なっている場合、VSCアドレス一致検出部3から、信号線31を介して、アドレス一致信号が、命令発行制御部1に送られる。
【0038】
次に、本発明で、新たに提案されている、領域指定付VSC命令の仕様について、図3を参照して説明する。
【0039】
図3に示すように、命令フィールドは、前述のように、OPC(オペコ−ド)と、X、Y、Zの4つのフィ−ルドに分けられる。通常のVSC命令と異なるところは、Zフィールドにおいて、レジスタブロック5内にある、RnとRn+1の2本のレジスタを指定し、それぞれに、スキャタ領域の開始アドレスと、終了アドレスを指定することである。なお、VSC命令では、X、Yフィールドは、ベクトルユニット6のベクトルレジスタの番号を指定するための用いられる。
【0040】
図2は、本発明の一実施例における命令発行制御部1と、レジスタブロック5と、VSCアドレス一致制御部3の構成を説明するための図である。
【0041】
図2を参照すると、メモリから信号線71を介して供給される命令データは、一旦、命令キャッシュ101に格納され、Dステージレジスタ102のOPC(命令コード)、X、Y、Zの4つのフィールドに格納する。
【0042】
その後、EEステージレジスタ103に、命令コードと、Xフィールドと、Yフィールドが移動し、それと同時に、レジスタブロック5のレジスタ50から、EEステージのレジスタYdata eeとZdata eeに、オペランドデータを読み出す。
【0043】
LDS命令の場合には、次のECステージレジスタ104に、EEステージレジスタ103の情報を移行すると同時に、AAD(アドレス加算器)115で計算したアドレスを、アドレスec(レジスタ)に格納し、キャッシュアクセスに使用する。アドレスec(レジスタ)の出力は、図1のアドレス12として、キャシュ制御部2として出力され、またVSCアドレス一致検出部3に供給される。
【0044】
また、本発明によって新たに設けられた領域指定VSC命令の場合は、EEステージのZdata ee(ラッチ)を介して読み出された、VSC開始アドレスと終了アドレスを、それぞれ、ECステージのVSC開始アドレスecと、VSC終了アドレスecに格納する。なお、図2のHLD(ホールド)制御部105からVSC開始アドレスecと、VSC終了アドレスecに供給される信号Hは、データをホールドする信号である。
【0045】
その後、HLD制御部105からのVSC発行信号13によってストローブされ、VSC開始アドレスecと、VSC終了アドレスecの保持データは、EBステージのVSC開始アドレスeb(ラッチ)と、VSC終了アドレスeb(ラッチ)にセットされる。
【0046】
これらの情報は、次の領域指定付VSC命令発行まで、保持される。
【0047】
VSCアドレス一致検出部3は、後続のメモリアクセス命令のアクセスアドレスを保持するアドレスecと、VSC開始アドレスebの値を比較し、後続のメモリアクセス命令のアクセスアドレスがVSC開始アドレス以上であるときアクティブ状態の信号を出力する比較器301と、アドレスecと、VSC終了アドレスebとを比較し、前記後続のメモリアクセス命令のアクセスアドレスがVSC終了アドレス以下であるときアクティブ状態の信号を出力する比較器302と、比較器301、302の出力のがともにアクティブのとき、アクティブ状態のアドレス一致信号31をHLD制御部105に出力する論理積回路303を備えている。
【0048】
そして、領域指定付VSC命令の発行直後の後続LDS命令からアクセスするアドレスが、VSC命令のスキャタ領域と重なった場合に、VSCアドレス一致信号31がアクティブとなり、HLD制御部105に送られ、これを受けてHLD制御部105は、ECHLD信号をアクティブとし(オンし)、この信号は、キャッシュ無効化制御部4から出力されるキャッシュ無効化終了信号41がオンする(キャッシュ無効化処理が終了する)まで、オン状態とされ、後続のLDS命令は、命令発行制御部1のECステージにホールドされる。
【0049】
ECステージで待っているLDS命令にも、後続命令が存在する場合には、HLD制御部105は、EEHLD信号、もしくはDHLD信号をオンさせて、これらの後続命令を、EEステージ、もしくはDステージで待たせる。
【0050】
なお、図2において、REG更新制御部111は、レジスタブロック5のレジスタ50を更新制御するものであり、例えば公知のWAWハザードの回避制御を行う。また、VSC命令の場合、ECステージレジスタ104のX/Yecからの出力は、ベクトルレジスタの番号であり信号線16から、ベクトルユニット6に供給される。
【0051】
次に、本発明の一実施例における、領域指定付VSC命令と、その直後に存在するLDS命令の動作タイミングについて、図4、及び図5を参照して説明する。これら2つの例では、後続のLDS命令がキャッシュヒットした場合を想定している。
【0052】
図4には、領域指定付VSC命令で指定された領域(スキャタ領域)と、後続のLDSがアクセスするアドレスが重ならなかった場合、すなわち、アドレス一致しない場合のタイミング動作が示されている。なお、図4、図5において、D、EE、EC、EBは、図2に示した命令発行制御部1内のDステージ、EEステージ、ECステージ、EBステージ(VSC開始アドレスeb、VSC終了アドレスeb)の各ステージに対応している。
【0053】
領域指定付VSC命令は、Zオペランド(Zd)に指定される、レジスタRn、Rn+1と2回読む必要があるため、Dステージで、2つに分解される(図4のVSC1st、VSC2nd)。なお図2のインクリメンタ(+1)は、レジスタRn、Rn+1と二回読むための制御回路である。
【0054】
タイミング3、4で、VSC命令発行13が出力され、その時に、各々、VSC開始アドレスebと、VSC終了アドレスebに格納される。
【0055】
その後、LDS命令がタイミング5で、ECステ−ジから発行されると、タイミング6で、キャッシュデータを読みこみ、タイミング7には、レジスタブロック5のWDR(write data rejister)にキャッシュデータを格納し、タイミング8で、WDRからレジスタ50に書き込んで、LDS命令の実行を終了する。なお、レジスタブロック5のWARは(write address rejister)であり、レジスタ50(レジスタファイル)の中の複数のレジスタの一つを選択する。
【0056】
次に、VSC命令で指定された領域と、後続のLDSがアクセスするアドレスが重なった場合、すなわち、アドレス一致した場合の動作について、図5を参照して説明する。図4に示したアドレス不一致の場合との違いは、タイミング5で、VSCアドレス不一致がオンしたところから始まる。
【0057】
その後、LDS命令は、タイミング7で、キャッシュ無効化終了信号41がオンするまで、ECステージで、ECHLD信号をオンさせて、ホールドされる。
【0058】
その後、アドレス不一致の場合と同様にして、LDS命令の結果を、レジスタブロック5のWDRを介して、レジスタ50に、データを書き込む。
【0059】
本発明の一実施例においては、命令制御回路において、領域指定VSC命令によって、アクセスするメモリ領域に関する示唆を、プログラマ(すなわちプログラマがコーディングしたプログラム)より得ることで、後続のLDS命令の追い越し制御が可能となり、大幅な性能向上が実現できる。本発明の一実施例の効果を、図6を参照して、より詳しく説明する。
【0060】
まず、VST命令の場合、発行時点でアクセスする領域が判るため、直ちに、キャッシュ無効化が実現でき、後続のLDS命令の追い越し制御が可能となる。もし、追い越しが可能であると判定された場合には、キャッシュ無効化中でも、LDS命令の実行は可能となる。
【0061】
一方、従来技術におけるVSC命令の場合、命令発行時点ではメモリアクセス領域が判らず、またランダムでもあるため、後続のLDS命令の追い越し制御は不可能であり、キャッシュ無効化処理終了まで待たなくてはならない。
【0062】
本発明によれば、VSC命令であっても、VST命令のように、後続LDS命令の追い越し制御を可能としている。
【0063】
そして、従来技術においては、後続LDS命令の待ちが、任意のアドレスについてVSC発行直後からキャッシュ無効化終了まで必要となる。
【0064】
これに対して、本発明によれば、この待ち時間は、アドレス一致しない場合にはなくなる。このため、きわめて高い頻度で出現するLDS命令の性能向上に特段に寄与する。
【0065】
【発明の効果】
以上説明したように、本発明によれば、領域指定VSC命令によって、アクセスするメモリ領域に関する示唆を、プログラムから得ることで、後続のLDS命令の追い越し制御を可能としており、処理性能を特段に向上することができる、という効果を奏する。その理由は、本発明においては、命令中でスキャタ領域が指定されるベクトルスキャタ命令がアクセスするアドレスと、後続のメモリアクセス命令のアドレスとが重なっているか否かを検出する手段と、アドレスが重なっている場合には、前記後続のメモリアクセス命令をホールドさせる手段とを備えたためである。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示す図である。
【図2】本発明の一実施例における命令実行制御部とVSCアドレス一致検出部の構成を示す図である。
【図3】本発明の一実施例におけるVSC命令を説明するための図である。
【図4】本発明の一実施例の動作を説明するための図である。
【図5】本発明の一実施例の動作を説明するための図である。
【図6】VSC命令と後続LDS命令の処理を説明するための図である。
【図7】LDS命令の処理を説明するための図である。
【図8】従来のVGT、VSC命令を説明するための図である。
【符号の説明】
1 命令発行制御部
2 キャッシュ制御部
3 VSCアドレス一致検出部
4 キャッシュ無効化制御部
5 レジスタブロック
6 ベクトルユニット
7 メモリ
12 アドレス信号
13 VSC発行信号
15、51 信号線
16 ベクトル命令発行指示
25 制御信号
27 アドレス
31 アドレス一致信号
41 キャッシュ無効化終了信号
50 レジスタ
64 無効化アドレス
67 アドレス信号
71 命令データ
72 データ
101 命令キャッシュ
102 Dステージレジスタ
103 EEステージレジスタ
104 ECステージレジスタ
105 HLD制御部
301、302 比較器
303 論理積回路
Claims (6)
- 命令セットとして、スキャタ領域が指定される領域指定付ベクトルスキャタ命令を設け、
命令発行制御部から発行されたベクトル命令が領域指定付ベクトルスキャタ命令である場合、メモリに対して書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出する手段と、
前記キャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行う手段と、
前記領域指定付ベクトルスキャタ命令がアクセスするアドレスと、前記ベクトルスキャタ命令の後続のメモリアクセス命令のアドレスとが重なっているか否かを検出する手段と、
アドレスが重なっている場合には、前記後続のメモリアクセス命令を前記命令発行部内にホールドさせる手段と、
を備え、
キャッシュ無効化が終了するまで、前記後続のメモリアクセス命令が前記命令発行部内にホールドされる、ことを特徴とするベクトルスキャタ命令制御回路。 - 命令データを解読して、命令動作を指示する命令発行制御部と、
前記命令発行制御部からのアドレスを受け取り、キャッシュの制御を行うキャッシュ制御部と、
前記命令発行制御部からベクトル命令が発行された場合、実行指示を受け取り、前記ベクトル命令が、スキャタ領域の領域開始アドレスと領域終了アドレスが指定される領域指定付ベクトルスキャタ命令である場合、メモリに対して、書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出するベクトルユニットと、
前記ベクトルユニットからキャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行うキャッシュ無効化制御部と、
前記命令発行制御部から、前記領域指定付ベクトルスキャタ命令が発行された場合、前記命令発行制御部からアクセスされるレジスタブロックより、前記領域指定付ベクトルスキャタ命令のスキャタ領域の領域開始アドレスと、領域終了アドレスとを受け取り、前記領域指定付ベクトルスキャタ命令の後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか否かを検出し、アドレスが重なっている場合に、アドレス一致信号をアクティブ状態として、前記命令発行制御部に対して送出するベクトルスキャタ(VSC)アドレス一致検出部と、
を備え、
前記命令発行制御部が、前記ベクトルスキャタアドレス一致検出部から送出されたアクティブ状態の前記アドレス一致信号を受けて、前記後続のメモリアクセス命令をホールドさせるように制御するホールド制御回路を備え、
前記ホールド制御回路は、前記キャッシュ無効化制御部よりキャッシュ無効化の終了の通知を受けるまで、前記後続のメモリアクセス命令をホールドさせる、ことを特徴とする、ベクトル型情報処理装置。 - 前記ホールド制御回路は、前記ベクトルスキャタアドレス一致検出部からの前記アドレス一致信号がインアクティブのときには、前記後続のメモリアクセス命令をホールドさせない、ことを特徴とする、請求項2記載のベクトル型情報処理装置。
- 前記ベクトルスキャタアドレス一致検出部が、前記後続のメモリアクセス命令のアクセスアドレスと、前記領域指定付ベクトルスキャタ命令の領域開始アドレスとを比較し、前記後続のメモリアクセス命令のアクセスアドレスが前記領域開始アドレス以上であるときアクティブ状態の信号を出力する第1の比較器と、
前記後続のメモリアクセス命令のアクセスアドレスと前記領域指定付VSC命令の領域終了アドレスとを比較し、前記後続のメモリアクセス命令のアクセスアドレスが前記領域終了アドレス以下であるときアクティブ状態の信号を出力する第2の比較器と、
前記第1の比較器と前記第2の比較器の出力がともにアクティブ状態のとき、前記アドレス一致信号をアクティブ状態として出力する論理回路と、
を備えたことを特徴とする、請求項2又は3に記載のベクトル型情報処理装置。 - 前記領域指定付ベクトルスキャタ命令が、命令コードとして、オペランドの所定のフィールドで、前記レジスタブロックの2本のレジスタを指定し、それぞれに、スキャタ領域の領域開始アドレスと領域終了アドレスを指定する、構成とされている、ことを特徴とする、請求項2乃至4のいずれか一に記載のベクトル型情報処理装置。
- 前記ホールド制御部は、前記ベクトルスキャタアドレス一致検出部から送出されたアクティブ状態の前記アドレス一致信号を受けて、前記後続のメモリアクセス命令に、さらに後続する命令が存在する場合には、これらの命令も前記命令発行制御部内の各ステージにホールドさせる、ことを特徴とする、請求項2乃至4のいずれか一に記載のベクトル型情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000211607A JP3733842B2 (ja) | 2000-07-12 | 2000-07-12 | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 |
EP01115781A EP1172725A3 (en) | 2000-07-12 | 2001-07-10 | Vector scatter instruction control circuit and vector architecture information processing equipment |
US09/901,060 US6816960B2 (en) | 2000-07-12 | 2001-07-10 | Cache consistent control of subsequent overlapping memory access during specified vector scatter instruction execution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000211607A JP3733842B2 (ja) | 2000-07-12 | 2000-07-12 | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002024205A JP2002024205A (ja) | 2002-01-25 |
JP3733842B2 true JP3733842B2 (ja) | 2006-01-11 |
Family
ID=18707686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000211607A Expired - Fee Related JP3733842B2 (ja) | 2000-07-12 | 2000-07-12 | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6816960B2 (ja) |
EP (1) | EP1172725A3 (ja) |
JP (1) | JP3733842B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4001461B2 (ja) * | 1999-01-25 | 2007-10-31 | 三菱電機株式会社 | プログラマブルコントローラの周辺装置 |
GB2390700B (en) * | 2002-04-15 | 2006-03-15 | Alphamosaic Ltd | Narrow/wide cache |
JP3734032B2 (ja) | 2002-07-25 | 2006-01-11 | 日本電気株式会社 | 情報処理装置及びそのメモリ制御方法 |
US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
US7519771B1 (en) | 2003-08-18 | 2009-04-14 | Cray Inc. | System and method for processing memory instructions using a forced order queue |
US7366873B1 (en) * | 2003-08-18 | 2008-04-29 | Cray, Inc. | Indirectly addressed vector load-operate-store method and apparatus |
US7437521B1 (en) * | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
US7743223B2 (en) * | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
US7735088B1 (en) | 2003-08-18 | 2010-06-08 | Cray Inc. | Scheduling synchronization of programs running as streams on multiple processors |
US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
US7478769B1 (en) | 2005-03-09 | 2009-01-20 | Cray Inc. | Method and apparatus for cooling electronic components |
JP5549179B2 (ja) * | 2009-10-26 | 2014-07-16 | 日本電気株式会社 | データアクセス装置、データアクセス制御方式、及び、データアクセス制御プログラム |
JP5573134B2 (ja) * | 2009-12-04 | 2014-08-20 | 日本電気株式会社 | ベクトル型計算機及びベクトル型計算機の命令制御方法 |
JP5630281B2 (ja) * | 2011-01-19 | 2014-11-26 | 日本電気株式会社 | ベクトル命令制御回路及びリストベクトルの追い越し制御方法 |
US9164772B2 (en) | 2011-02-04 | 2015-10-20 | Qualcomm Incorporated | Hybrid queue for storing instructions from fetch queue directly in out-of-order queue or temporarily in in-order queue until space is available |
US20120204008A1 (en) * | 2011-02-04 | 2012-08-09 | Qualcomm Incorporated | Processor with a Hybrid Instruction Queue with Instruction Elaboration Between Sections |
US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
US8521705B2 (en) * | 2011-07-11 | 2013-08-27 | Dell Products L.P. | Accelerated deduplication |
US9021233B2 (en) * | 2011-09-28 | 2015-04-28 | Arm Limited | Interleaving data accesses issued in response to vector access instructions |
CN104137059B (zh) * | 2011-12-23 | 2018-10-09 | 英特尔公司 | 多寄存器分散指令 |
US9575753B2 (en) | 2012-03-15 | 2017-02-21 | International Business Machines Corporation | SIMD compare instruction using permute logic for distributed register files |
US9665368B2 (en) * | 2012-09-28 | 2017-05-30 | Intel Corporation | Systems, apparatuses, and methods for performing conflict detection and broadcasting contents of a register to data element positions of another register |
US10268580B2 (en) * | 2016-09-30 | 2019-04-23 | Intel Corporation | Processors and methods for managing cache tiering with gather-scatter vector semantics |
GB2587426B (en) * | 2019-09-30 | 2022-04-06 | Advanced Risc Mach Ltd | Atomic range compare and modify operations |
JP2023133850A (ja) | 2022-03-14 | 2023-09-27 | 富士通株式会社 | 演算処理装置および演算処理方法 |
TW202344987A (zh) * | 2022-05-13 | 2023-11-16 | 美商賽發馥股份有限公司 | 具窄資料路徑向量收集 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57193842A (en) * | 1981-05-22 | 1982-11-29 | Hitachi Ltd | Request conflict detecting system |
JPS6462764A (en) * | 1987-09-03 | 1989-03-09 | Agency Ind Science Techn | Vector computer |
DE68928113T2 (de) * | 1988-04-01 | 1997-10-09 | Nippon Electric Co | Reihenfolgesteuersystem zur Behandlung von Befehlen |
JPH0810451B2 (ja) * | 1989-03-28 | 1996-01-31 | 日本電気株式会社 | 情報処理装置 |
JPH06168182A (ja) * | 1992-11-30 | 1994-06-14 | Fujitsu Ltd | 情報処理装置 |
US5895501A (en) | 1996-09-03 | 1999-04-20 | Cray Research, Inc. | Virtual memory system for vector based computer systems |
JP3358565B2 (ja) | 1998-11-02 | 2002-12-24 | 日本電気株式会社 | 送信電力制御方法、送信電力制御装置、移動局、基地局及び制御局 |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
-
2000
- 2000-07-12 JP JP2000211607A patent/JP3733842B2/ja not_active Expired - Fee Related
-
2001
- 2001-07-10 EP EP01115781A patent/EP1172725A3/en not_active Withdrawn
- 2001-07-10 US US09/901,060 patent/US6816960B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1172725A3 (en) | 2003-07-16 |
EP1172725A2 (en) | 2002-01-16 |
US6816960B2 (en) | 2004-11-09 |
JP2002024205A (ja) | 2002-01-25 |
US20020007449A1 (en) | 2002-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3733842B2 (ja) | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US7484041B2 (en) | Systems and methods for loading data into the cache of one processor to improve performance of another processor in a multiprocessor system | |
US7475191B2 (en) | Processor, data processing system and method for synchronizing access to data in shared memory | |
US7930504B2 (en) | Handling of address conflicts during asynchronous memory move operations | |
EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
US20090132796A1 (en) | Polling using reservation mechanism | |
JPH0581129A (ja) | データ処理システムのキヤツシユ内のデータユニツトに対する所有権変更制御装置 | |
US20050210204A1 (en) | Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
EP1402349A2 (en) | Method and apparatus for facilitating speculative stores in a multiprocessor system | |
KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
JP2015129996A (ja) | 演算処理装置,演算処理装置の制御方法及び情報処理装置 | |
JP3304444B2 (ja) | ベクトル処理装置 | |
JP5129023B2 (ja) | キャッシュメモリ装置 | |
JPH0340047A (ja) | キヤツシユ・ライン・ストア方法 | |
WO1997004392A1 (en) | Shared cache memory device | |
JP4144990B2 (ja) | データ処理システム及び初期化方法 | |
US10120808B2 (en) | Apparatus having cache memory disposed in a memory transaction path between interconnect circuitry and a non-volatile memory, and corresponding method | |
US7581042B2 (en) | I/O hub resident cache line monitor and device register update | |
US9645825B2 (en) | Instruction cache with access locking | |
JPH07121443A (ja) | 情報処理システム及びその動作方法 | |
JP5971036B2 (ja) | 演算処理装置及び演算処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050530 |
|
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: 20050927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051010 |
|
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: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |