[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3757768B2 - Issuing control system for scalar memory access instruction during vector memory access - Google Patents

Issuing control system for scalar memory access instruction during vector memory access Download PDF

Info

Publication number
JP3757768B2
JP3757768B2 JP2000251732A JP2000251732A JP3757768B2 JP 3757768 B2 JP3757768 B2 JP 3757768B2 JP 2000251732 A JP2000251732 A JP 2000251732A JP 2000251732 A JP2000251732 A JP 2000251732A JP 3757768 B2 JP3757768 B2 JP 3757768B2
Authority
JP
Japan
Prior art keywords
instruction
cache
boundary
vst
determination
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
Application number
JP2000251732A
Other languages
Japanese (ja)
Other versions
JP2002063154A (en
Inventor
篤 山代屋
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 JP2000251732A priority Critical patent/JP3757768B2/en
Publication of JP2002063154A publication Critical patent/JP2002063154A/en
Application granted granted Critical
Publication of JP3757768B2 publication Critical patent/JP3757768B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおいて、VST命令(ベクトルプロセッサからのベクトル方式のストア命令)の実行後に、このVST命令に対するフラッシュ(無効化)処理を行っている間に、後続のLD命令(スカラメモリロード命令)が実行された場合に、キャッシュ(CACHE。キャッシュメモリ)とメモリ(主記憶)との同期(一致)を保証するためのベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式に関する。
【0002】
【従来の技術】
従来より、2つ以上の異なるプロセッサから1つのメモリ(例えば、共有メモリ)に対してアクセスが行われる場合に、自プロセッサ内のキャッシュのコヒーレンシを保つために、スヌーピング等の方法が用いられている。これにより、キャッシュ登録データに対応するメモリ側データが他プロセッサにより変更されてしまった場合に、その部分のキャッシュの無効化が行われていた。
【0003】
スカラプロセッサとベクトルプロセッサとの関係についても同様で、ベクトルプロセッサからメモリにデータを書き込むことにより、スカラプロセッサ内のキャッシュに登録されているデータに対応するメモリ側のデータの領域を書き換える場合が生じると、スカラプロセッサ内のキャッシュの対応する部分を無効化(フラッシュ)する必要がある。
【0004】
この時、性能的に問題になるのが無効化する領域の算出と、無効化処理時間(フラッシュ処理時間)とである。領域を正確に算出すると余分な部分をフラッシュすることなく、キャッシュのエントリを無駄に捨てることもなく、性能を落とさずにすむ。しかし、領域を正確に算出しようとすると、その分、フラッシュ処理時間が大きくなってしまう。
【0005】
さて、本発明は、スカラプロセッサとベクトルプロセッサとを持つコンピュータシステム(図2および図3参照)において、スカラプロセッサ内に存在するキャッシュの制御に関するものである。ここで、まず、本発明で出てくる命令(LD命令およびVST命令)について、以下に説明する。
【0006】
a.LD命令とは、メモリの内容を読み出すためにスカラプロセッサが発行する命令である。LD命令が発行されると、キャッシュブロック(図1等参照)において、そのLD命令のアクセス対象となるデータがキャッシュに登録されているかどうかの判定が行われる。もし、登録されている場合には、「キャッシュHIT」として、キャッシュから当該LD命令に対するデータが読み出される。一方、登録されていない場合には、「キャッシュMISS」として、当該LD命令については発行制御回路(図1参照)を介し、メモリに対してデータ取得要求(ミスリクエスト)が発行される。したがって、この場合には、LD命令はメモリからデータを読み出すことになる。
【0007】
b.VST命令とは、ベクトルプロセッサ内に存在するベクトルレジスタの内容をメモリにブロック単位で書き込む命令である。このため、VST命令には、メモリ上の書き込み開始アドレス(スタートアドレス:S),スタートアドレスからの書き込み間隔(ディスタンス:D),および書き込み回数(ベクトルレングス長:VL)の情報が入っている。ベクトルレジスタの内容は、メモリに対して、そのメモリ上のアドレス「S」から書き込みが開始され、アドレス「S+D×(VL−1)」まで書き込みが行われることになる。
【0008】
ここで、図3を参照して、スカラプロセッサ,ベクトルプロセッサ,およびメモリを含んで構成されるコンピュータシステムにおけるLD命令およびVST命令の動作を説明する。
【0009】
スカラプロセッサ内に存在するキャッシュは、メモリの内容の一部をコピーしたものである。ここで、キャッシュにメモリ内のデータが登録された後に、VST命令が実行された場合には、そのS,D,VLの内容により、図3中の斜線で示しているキャッシュにすでに登録されている部分をVST命令により書き込んでしまう場合も発生する。
【0010】
この場合に、VST命令は、直接ベクトルプロセッサからメモリにデータの書き込みを行っており、スカラプロセッサ内のキャッシュにはデータの書き込みは行われない。このため、キャッシュでは、すでに登録されている(図3中の斜線部分の)データの無効化(フラッシュ)処理を行う必要がある。
【0011】
VST命令の後続のLD命令が、このVST命令で書き込まれた領域を読み出す場合に、キャッシュに登録されていない部分を読み出すのであれば、LD命令はキャッシュMISSとなりメモリに対してデータを取りに行く。この時、メモリ側では、VST命令によるメモリへの書き込みが終了した後に、LD命令が実行される。このため、LD命令は、VST命令により書き換わった後の(正しい)値のデータを読み出すことができる。
【0012】
これに対して、VST命令の後続のLD命令が、図3中の斜線の部分、すなわちキャッシュにすでに登録された部分をVST命令が書き換えた領域を読み出す場合には、このLD命令はキャッシュHITとなりキャッシュからデータを読み出そうとする。しかし、メモリ側では、その部分はVST命令により書き換えられてしまうため、そのままキャッシュから読み出そうとすると不正なデータの読み出しを行ってしまうことになる。このため、VST命令の実行によるフラッシュ処理により、その部分のキャッシュ登録部分が無効化されるまで、LD命令の発行を待つ必要がある。
【0013】
ちなみに、無効化後にLD命令が実行されると、キャッシュが無効化されているため、キャッシュMISSとなり、メモリに対してデータ取得要求が出され、メモリからVST命令によって書き換えられた後のデータを読み出すことができる。
【0014】
上記のように、従来の技術では、フラッシュ処理を行っている間は、キャッシュからデータを読み出すLD命令(スカラLD命令)を実行することができない。そして、このようにLD命令の実行が止まることにより、プロセッサ自体が止まって(HOLDして)しまう。
【0015】
すなわち、従来においては、LD命令のアクセスアドレスが「先行のVST命令によってベクトルレジスタの内容がブロック単位でメモリに書き込まれる領域」(以降、「バウンダリ領域」と呼ぶ)に当たっている場合には、そのVST命令に対するフラッシュ処理が終了するまでそのLD命令の発行が抑止されていた。
【0016】
ここで、従来の技術では、フラッシュ処理速度をいかに上げるかに重点を置いて改善を行なうことにより、LD命令が止まる時間、つまりプロセッサが止まっている時間をできるだけ短縮するような技術改良が行われていた。
【0017】
【発明が解決しようとする課題】
上述したように、従来のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式では、VST命令の実行に起因するフラッシュ処理が行われている間には後続のLD命令を実行することができず、LD命令が止まることにより、プロセッサ自体が止まって(HOLDして)しまうという問題点があった。
【0018】
また、先に述べたように、従来は、フラッシュ処理速度をいかに上げるかに重点を置いて、上記の問題点に対する改善を行なうことにより、LD命令が止まる時間、つまりプロセッサが止まっている時間をできるだけ短縮するような技術改良が試みられていた。
【0019】
本発明では、視点を変え、VST命令発行によるフラッシュ処理中において、当該VST命令のバウンダリ領域内にアクセス対象のアドレスが入っている後続のLD命令は全てキャッシュMISSとしてメモリ側にミスリクエストを出すようにすることにより、LD命令を止めずに、さらにその後続の命令を実行することも可能にし、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおけるプロセッサの命令処理速度の高速化(プロセッサの性能向上)を可能とする。
【0020】
すなわち、本発明の目的は、上述の点に鑑み、後続のLD命令のアクセスアドレスがVST命令のバウンダリ領域に入っている場合に、そのLD命令がキャッシュに対してMISSであれば、そのまま発行を行い、またそのLD命令がキャッシュに対してHITであれば、キャッシュからデータを取り出さず、キャッシュMISSに変更して、ミスリクエストを出し、メモリに対してデータを取りに行くことができるベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式を提供することにある。
【0021】
なお、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式に対する従来技術に関する特許公報としては、「特開昭61−296472号公報」,「特開平01−222375号公報」,および「特公平03−053667号公報」が存在する。
【0022】
しかし、上記の各公報に記載された技術と本発明とは、基本的な構成を異にしている。すなわち、本発明は、上記の各公報に記載された技術よりも簡易な構成(後述するような「判定回路」を利用した構成)によって、プロセッサの性能向上を実現している。
【0023】
具体的には、以下のa〜cに示すような差異がある。
【0024】
a.特開昭61−296472号公報に記載された技術(緩衝記憶装置)は、「タグ記憶手段に記憶されている主記憶ブロックアドレス情報に対応して、領域比較回路から出力される領域内アクセス信号を無効化する領域内アクセス信号無効化情報を記憶するための領域内アクセス信号無効化手段」を使用する必要がある。これに対して、本発明はこのような領域内アクセス信号無効化手段に該当する手段を使用する必要のない構成を有している。
【0025】
b.特開平01−222375号公報に記載された技術(緩衝記憶装置)は、「領域チェック手段において領域一致と判定された主記憶アドレス情報の一部を無効化処理期間中、主記憶アドレス情報の一部の有効を表示するVビットとともに保持し、スカラロード要求に後続するスカラロード要求の主記憶アドレスの一部と比較し、一致がとれた場合にアドレス一致信号を出力し、領域チェック手段からの領域一致信号を抑止するアドレスチェック手段」を使用する必要がある。これに対して、本発明はこのようなアドレスチェック手段に該当する手段を使用する必要のない構成を有している。
【0026】
c.特公平03−053667号公報に記載された技術(情報処理装置)は、「指令回路からのスカラデータロード指令に応答して領域検出回路から領域内検出信号が出力されると、スカラデータロード指令をバッファメモリ回路およびタグ記憶回路をバイパスして主記憶装置に直接送るよう制御するキャッシュ制御回路」というバイパス回路を設けている。これに対して、本発明は、判定回路というはるかに簡単な回路(低コストな回路)で上記のバイパス回路と同等な性能を実現することが可能になる。
【0027】
なお、特開昭61−296472号公報および特開平01−222375号公報には、「MISSとなったリクエストがメモリにデータ要求を出している間に、後続の同一アドレスのLDリクエストが入ってくると、そのリクエストもメモリに出していたため動作が遅くなる」という当該公報記載の発明に対する従来技術の欠点(本来なら、同一のアドレスであるため、1回のキャッシュ登録だけで済むのに、後続の(余分な)登録データをすでに登録しているキャッシュのブロック上に上書きを重ねていくこととなり、無意味なキャッシュ登録時間が発生してしまうため、データ読み出しが遅れてしまうという欠点)が指摘されている。
【0028】
これに対して、本発明では、後述する「発行チェック回路」の制御等によって、あるアクセスアドレスのLD命令がメモリに対してリクエストとして送出されている場合に、後続の同一のアドレスにアクセスするLD命令は出さない(待機させる)ような方式としている。すなわち、先行のLDリクエストが帰ってくると、そのデータを含むデータブロックがキャッシュに登録されるので、後続の同一アドレス(正確には、当該データブロック内のアドレス)のLD命令は、登録されるまで発行を待たされる。したがって、データがキャッシュに登録された後に再実行されるので、無意味なLD命令を発行せずにすみ(待たせた方が、余分なキャッシュ登録がない分早い時期に読み出せる)、上記公報で言及されているような性能の低下は起こらない。
【0029】
【課題を解決するための手段】
本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、スカラプロセッサ,ベクトルプロセッサ,および,メモリを備えるコンピュータシステムのスカラプロセッサにおいて、キャッシュおよびその制御回路からなり、キャッシュHIT/MISS判定を行うキャッシュブロックと、プロセッサコア部分からの命令を受け付け、LD命令を受け付けた際に当該LD命令とアクセスアドレスを同一にする先行ミスリクエストの有無をチェックし、アクセスアドレスが同一の先行ミスリクエストが存在する場合には当該LD命令の発行を待機させる発行チェック回路と、VST命令のS,D,VLに基づき、当該VST命令の書き込み範囲を算出し、その範囲内のデータがキャッシュにすでに登録されているか否かを判定し、当該判定で「登録されている」と判断した場合には前記キャッシュブロック上の当該登録部分に対するVビットをリセットするように前記キャッシュブロックに対してフラッシュ要求を送出するフラッシュ処理回路と、VST命令のS,D,VLに基づき算出した当該VST命令のバウンダリ領域の範囲を示す情報を保持し、そのバウンダリ領域の範囲内を後続のLD命令がアクセスしているかどうかを判定するバウンダリチェックを前記フラッシュ処理回路における当該VST命令についてのフラッシュ処理が終わるまで実行するバウンダリチェック回路と、命令を発行する制御を行い、キャッシュMISSとなったLD命令をメモリ側に発行するためのデータ取得要求を出力する発行制御回路と、前記キャッシュブロックおよび前記バウンダリチェック回路からの信号に基づく判定で「VST命令の後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスが当該VST命令のバウンダリ領域の範囲内に入っている」と判断した場合に、当該後続LD命令をキャッシュHITからキャッシュMISSに変更するように制御し、当該制御のための指示を前記発行制御回路に出す判定回路とを有する。
【0030】
ここで、上記のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、キャッシュブロックによって生成されたHIT信号に基づいて「キャッシュHITであるかキャッシュMISSであるか」を認識し、バウンダリチェック回路によって生成されたバウンダリ内判定信号に基づいて「バウンダリ領域の範囲内であるか範囲外であるか」を認識し、「VST命令に後続するLD命令のアクセスアドレスが当該VST命令のバウンダリ領域の範囲内であれば、当該LD命令がキャッシュにHITしても、キャッシュからデータを読み出さずにメモリに対してデータ取得要求を発行するような制御」を実現するために、当該制御の際にキャッシュMISSの場合と同様にリクエスト発行指示を発行制御回路に対して出力する判定回路を備えるように構成することが、望ましい一態様として考えられる。
【0031】
なお、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、より一般的には、キャッシュブロックを有するスカラプロセッサ,ベクトルプロセッサ,および,メモリを備えるコンピュータシステムにおいて、VST命令の実行に起因するフラッシュ処理を行うフラッシュ処理手段と、VST命令に後続するLD命令のアクセスアドレスが当該VST命令についてのバウンダリ領域の範囲内に入っているか否かをチェック(バウンダリチェック)するバウンダリチェック手段と、VST命令に後続するLD命令の発行時に、当該VST命令についての前記バウンダリチェック手段によるバウンダリチェックの判定結果と前記キャッシュブロックによるキャッシュHIT/MISS判定の判定結果とに基づき、「後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っている」と判定した場合に、キャッシュHITからキャッシュMISSに変更するように制御する判定手段とを有する構成であると表現することができる。
【0032】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【0033】
図1は、本発明の実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の構成を示すブロック図である。
【0034】
図1を参照すると、本実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、プロセッサコア部分からのリクエスト(命令)を受け付ける発行チェック回路11と、VST命令の実行に起因するフラッシュ処理を行うフラッシュ処理回路12と、キャッシュおよびその制御回路からなるキャッシュブロック13と、VST命令に後続するLD命令が当該VST命令についてのバウンダリ領域の範囲内に入っているか否かをチェックするバウンダリチェック回路14と、キャッシュブロック13からのHIT信号およびバウンダリチェック回路14からのバウンダリ内判定信号に基づき発行制御回路16に対してリクエスト発行指示を出すべきか否かを判定する判定回路15と、キャッシュMISSとなったLD命令をメモリ30側に発行するデータ取得要求(ミスリクエスト)を出力する制御等の命令発行の制御を行う発行制御回路16とを含んで構成されている。
【0035】
図2は、図1に示すベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の各構成要素と本発明が適用されるコンピュータシステムのスカラプロセッサ10,ベクトルプロセッサ20,およびメモリ30との関係を示すブロック図である。
【0036】
図2に示すように、図1中の各構成要素は、スカラプロセッサ10上に実現される。
【0037】
図3は、先にも言及したように、スカラプロセッサ10,ベクトルプロセッサ20,およびメモリ30の間の命令およびデータの入出力の態様を示すブロック図である。
【0038】
図4は、図1中の発行チェック回路11の詳細な構成を示す図である。
【0039】
発行チェック回路11は、REQバッファ群111と、比較器群112と、リトライ要求信号生成回路113と、発行抑止回路114とを含んで構成されている。
【0040】
図5は、図1中のフラッシュ処理回路12およびキャッシュブロック13の詳細な構成を示す図である。
【0041】
フラッシュ処理回路12は、キャッシュブロック13内のアドレスアレー131のコピーであるフラッシュアドレスアレー(FAA)121と、加算器122と、比較器123とを含んで構成されている。
【0042】
キャッシュブロック13は、Vビット(V0,V1,…,Vn(nは正整数))が付加された各エントリ(ENTRY0,ENTRY1,…,ENTRYn)を有するアドレスアレー(AA)131と、各データブロック(BLOCK0,BLOCK1,…,BLOCKn)からなるデータアレー(DA)132と、比較器133と、セレクタ134とを含んで構成されている。
【0043】
図6は、図1中のバウンダリチェック回路14および判定回路15の詳細な構成を示す図である。
【0044】
バウンダリチェック回路14は、乗算器141と、加算器142と、バウンダリ下限レジスタ143と、バウンダリ上限レジスタ144と、大小比較器145とを含んで構成されている。
【0045】
判定回路15は、NOTゲート151と、ORゲート152とを含んで構成されている。
【0046】
次に、図1〜図6を参照して、上記のように構成された本実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の全体の動作について詳細に説明する。
【0047】
(1) まず、VST命令実行時における動作について説明する。
【0048】
VST命令実行時には、当該VST命令は、発行チェック回路11および発行制御回路16を通って、ベクトルプロセッサ20に対して発行される。
【0049】
それと同時に、当該VST命令は、発行チェック回路11を通り、フラッシュ処理回路12およびバウンダリチェック回路14に入る。
【0050】
この場合に、フラッシュ処理回路12およびバウンダリチェック回路14では、以下のaおよびbに示すような動作が行われる。
【0051】
a.フラッシュ処理回路12での動作
フラッシュ処理回路12は、VST命令のスタートアドレス(S),ディスタンス(D),およびベクトルレングス長(VL)に基づき、当該VST命令の書き込み範囲(メモリ30上において書き換える領域の範囲)を算出し、当該VST命令によってその範囲内のデータがキャッシュにすでに登録されているかどうかを判定する。
【0052】
この判定で「登録されている」と判断した場合には、その登録部分に対するキャッシュ上のVビット(図5参照)をリセット(フラッシュ)するように、キャッシュブロック13に対してフラッシュ要求(キャッシュ無効化要求)を送出する。
【0053】
b.バウンダリチェック回路14での動作
バウンダリチェック回路14は、VST命令のS,D,VLに基づき算出した当該VST命令の書き込み範囲(バウンダリ領域の範囲)を設定し、その範囲内を後続のLD命令がアクセスしているかどうかのチェック(バウンダリチェック)を実行する。なお、このバウンダリチェックはフラッシュ処理回路12におけるフラッシュ処理(上記a参照)が終わるまで行われ、当該フラッシュ処理が終了するとバウンダリチェック回路14でのチェック動作は終了する。
【0054】
(2) 次に、VST命令に後続するLD命令発行時の動作について説明する。
【0055】
上記のようにして、VST命令の実行によって、フラッシュ処理が実行されてバウンダリが張られている(バウンダリチェックが行われている)場合に、そのVST命令に後続するLD命令が発行される際の動作を考える。
【0056】
先にも述べたように、従来のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式では、VST命令の後続のLD命令は、当該VST命令のバウンダリ領域をアクセスするのであれば、当該VST命令で書き換わるキャッシュ上の領域をアクセスする可能性(バウンダリ領域内をアクセスする後続LD命令がキャッシュにHITするとそうなる)があるので、フラッシュ処理が終了するまで発行が抑止される(発行待ち状態となる)。ただし、全ての後続LD命令の発行をフラッシュ処理の終了まで待つことにすると性能がかなり低下する。このため、VST命令のバウンダリ領域ではないアドレスを読み出すLD命令であれば、フラッシュ処理中であるにもかかわらず発行可能とさせる。
【0057】
このような制御を実現するために、従来の技術は、バウンダリチェック回路14においてVST命令のS,D,VLによりバウンダリ領域(VST命令により書き換えられる領域)の範囲を算出した上で、後続のLD命令発行時に、当該LD命令のアドレスがバウンダリ領域の範囲内に入っていなければ当該LD命令の発行を許可し、バウンダリ領域の範囲内に入っていれば当該LD命令の発行を抑止していた。
【0058】
本実施の形態、ひいては本発明は、従来、アクセスアドレスがバウンダリ領域の範囲内に入っていると発行が抑止されていたLD命令を、判定回路15を用いて、そのまま発行するように制御する。
【0059】
すなわち、判定回路15は、キャッシュブロック13からのHIT信号(LD命令のキャッシュHIT/MISS判定の判定結果を示す信号であり、キャッシュHITの場合に「1(ON)」論理を示す信号)とバウンダリチェック回路14からのバウンダリ内判定信号(バウンダリチェックの判定結果を示す信号であり、バウンダリ領域の範囲内である場合に「1(ON)」論理を示す信号)とを入力し、「キャッシュにHITして(キャッシュHITとなり)、かつVST命令のバウンダリ領域の範囲内に入っているLD命令」に関しては、キャッシュHITからキャッシュMISSに変更することにより、キャッシュからデータを読み出さず、「メモリ30に対してデータ取得要求を出してメモリ30からデータを取り込む」ように発行制御回路16に対して指示(リクエスト発行指示)を送出する。これにより、VST命令により書き換えられるキャッシュ上の領域を後続LD命令がアクセスするおそれがなくなり、後続LD命令の発行の抑止を不要にすることができる。
【0060】
なお、バウンダリ領域の範囲内においてキャッシュMISSとなる同一アドレスに対するLD命令が連続してアクセスされた場合には、発行チェック回路11の制御等により、最初のリクエストについてのみ、メモリ30に対してリクエスト(ミスリクエスト)が送出される(ここで述べている「同一アドレス」とは、アドレスが完全に一致している場合の他、同一のデータブロックをアクセスするようなアドレスも含まれる)。ここで、以降の同一アドレスに対するLD命令は、最初のLD命令のデータがキャッシュに登録されるまで、スカラプロセッサ10内において発行を待たされる。そして、最初のLD命令のデータがキャッシュに登録された時点で、後続の同一アドレスのLD命令が実行される。この場合に、当該データは、すでにキャッシュに登録されているので、全てキャッシュから読み出されることになる(キャッシュHITとなる)。これにより、「無意味なキャッシュ登録時間の発生によるデータ読み出しの遅れ」を回避することができる。
【0061】
(3) ここで、VST命令の実行に起因するフラッシュ処理・バウンダリ処理中におけるLD命令発行時の動作を、場合分けをしてさらに詳細に説明する(発行チェック回路11の動作については図4を参照する)。
【0062】
A.先行ミスリクエストがない場合
プロセッサコア部分から発行されたLD命令(LDリクエスト)は、発行チェック回路11に入る。また、このとき、キャッシュブロック13において、HIT/MISS判定要求に基づき、キャッシュHIT/MISS判定(当該LD命令がキャッシュHITとなるかキャッシュMISSとなるかの判定)が行われる。
【0063】
発行チェック回路11では、先行のミスリクエストが存在するか否かの判定(先行ミスリクエスト有無判定)が行われ、この場合には先行ミスリクエストがないため、当該LD命令(リクエスト)はそのまま発行抑止回路114を通り下位ブロックに発行される。
【0064】
次に、バウンダリチェック回路14において、当該LD命令のアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っているかどうかの判定(バウンダリ領域内外判定)が行われる。
【0065】
ここで、上記のキャッシュHIT/MISS判定,先行ミスリクエスト有無判定(ここでは、「先行ミスリクエストなし」という判定結果),およびバウンダリ領域内外判定の判定結果に基づき、以下のa〜cに示す場合分けがなされ、下記のような動作が実行される。
【0066】
a.「キャッシュHIT,先行ミスリクエストなし,バウンダリ領域範囲外」の場合には、キャッシュブロック13よりキャッシュデータが読み出され、プロセッサコア部分に対して、当該キャッシュデータが当該LD命令に対するデータとして返却される。
【0067】
b.「キャッシュHIT,先行ミスリクエストなし,バウンダリ領域範囲内」の場合には、判定回路15において、MISS変換(キャッシュHITをキャッシュMISSに変更する変換)が行われて、ミスリクエスト(データ取得要求)をメモリ30側に出すように発行制御回路16に対して指示(リクエスト発行指示)が出される。
【0068】
c.「キャッシュMISS,先行ミスリクエストなし,バウンダリ領域範囲内または範囲外」の場合には、当該LD命令は、発行制御回路16を通り、メモリ30に対して発行される(ミスリクエストが発行される)。この時、発行されたミスリクエストに関する情報(当該LD命令のアクセスアドレス等を示すミスリクエスト情報)が、発行チェック回路11内のREQバッファ群111(図4では、REQバッファ0またはREQバッファ1)に登録される。なお、当該LD命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作が行われる。
【0069】
B.先行ミスリクエストがある場合
プロセッサコア部分から発行されたLD命令は、発行チェック回路11に入る。また、このとき、キャッシュブロック13において、キャッシュHIT/MISS判定が行われる。
【0070】
発行チェック回路11では、先行ミスリクエスト有無判定が行われ、この場合には先行のミスリクエストがあるため、REQバッファ群111に入っているそのミスリクエストに対するミスリクエスト情報に基づき、比較器群112を用いて、当該LD命令のアクセスアドレスと当該ミスリクエスト情報中の先行LD命令のアクセスアドレスとが一致するか否かの判定(アドレス一致判定)が行われる。
【0071】
また、バウンダリチェック回路14において、当該LD命令のアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っているかどうかの判定(バウンダリ領域内外判定)が行われる。
【0072】
ここで、上記のキャッシュHIT/MISS判定,先行ミスリクエスト有無判定(ここでは「先行ミスリクエストあり」という判定結果),アドレス一致判定,およびバウンダリ領域内外判定の判定結果に基づき、以下のa〜eに示す場合分けがなされ、下記のような動作が実行される。
【0073】
a.「キャッシュHIT,先行ミスリクエストあり,アドレス一致なし,バウンダリ領域範囲外」の場合には、キャッシュブロック13よりキャッシュデータが読み出され、プロセッサコア部分に対して、当該キャッシュデータが当該LD命令に対するデータとして返却される。
【0074】
b.「キャッシュHIT,先行ミスリクエストあり,アドレス一致なし,バウンダリ領域範囲内」の場合には、判定回路15において、MISS変換(キャッシュHITをキャッシュMISSに変更する変換)が行われて、ミスリクエスト(データ取得要求)をメモリ30側に出すように発行制御回路16に対して指示(リクエスト発行指示)が出される。
【0075】
c.「キャッシュHIT,先行ミスリクエストあり,アドレス一致あり,バウンダリ領域範囲内または範囲外」の場合には、リトライ要求信号生成回路113によりリクエスト待ち要求信号が生成される。このリクエスト待ち要求信号により、プロセッサコア部分から発行されたLD命令は、キャッシュで受け付けられず、待ちバッファに登録される(当該LD命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作となる)。
【0076】
d.「キャッシュMISS,先行ミスリクエストあり,アドレス一致なし,バウンダリ領域範囲内または範囲外」の場合には、当該LD命令は、発行制御回路16を通り、メモリ30に対して発行される(ミスリクエストが発行される)。この時、発行されたミスリクエストに関する情報(当該LD命令のアクセスアドレス等を示すミスリクエスト情報)が、発行チェック回路11内のREQバッファ群111(REQバッファ0またはREQバッファ1の空いている側)に登録される(REQバッファ0およびREQバッファ1が共に空いていない場合には、リクエスト待ち要求信号が生成され、当該LD命令は待ちバッファに登録される)。なお、当該LD命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作が行われる。
【0077】
e.「キャッシュMISS,先行ミスリクエストあり,アドレス一致あり,バウンダリ領域範囲内または範囲外」の場合には、リトライ要求信号生成回路113によりリクエスト待ち要求信号が生成される。このリクエスト待ち要求信号により、プロセッサコア部分から発行されたLD命令は、キャッシュで受け付けられず、待ちバッファに登録される(当該LD命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作となる)。
【0078】
(4) 次に、図5を参照して、図1中のフラッシュ処理回路12およびキャッシュブロック13におけるフラッシュ処理要求時の動作を説明する。
【0079】
VST命令(リクエスト)の発行により、フラッシュ処理回路12において、スタートアドレス(S)とディスタンス(D)とがセットされる。
【0080】
その後、フラッシュ処理回路12では、加算器122により、フラッシュアドレスアレー121にアクセスするアドレスが生成される。このアドレスとしては、S,S+D,S+2D,…,S+(VL−1)×Dが生成される。
【0081】
上記のアドレスにより、キャッシュブロック13内のアドレスアレー131のコピーであるフラッシュアドレスアレー121がアクセスされ、VST命令で書き換えられる領域がキャッシュに登録されているかどうかの判定が比較器123を用いて行われる。
【0082】
この判定で「VST命令により変更される領域内のデータが登録されているエントリがキャッシュ上にある」と判断した場合には、フラッシュ処理回路12は、キャッシュブロック13に対してフラッシュ要求(無効化すべきエントリ番号を有する無効化信号による要求)を出す。
【0083】
キャッシュブロック13では、このフラッシュ要求により、対応するアドレスアレー131中のエントリに対応するVビットがリセットされる。
【0084】
これにより、フラッシュ処理の終了後にLD命令が実行されてそのアクセスアドレスがアドレスアレー131中の当該エントリのアドレスに一致したとしても、VビットがリセットされているためキャッシュMISSとなり、メモリ30からデータが読み出されることになる。
【0085】
(5) 最後に、図6を参照して、図1中のバウンダリチェック回路14および判定回路15の動作について説明する。なお、判定回路15は、従来技術にはないものであり、本発明で新たに追加されたものである。
【0086】
バウンダリチェック回路14では、VST命令の実行により、当該VST命令のスタートアドレス(S)とディスタンス(D)とベクトルレングス長(VL)とが取り込まれ、乗算器141および加算器142によって、バウンダリ領域の範囲が計算される。この計算は、「バウンダリ領域の下限=S」および「バウンダリ領域の上限=S+D×VL」の算出式に基づいて行われ、求められた値はバウンダリ下限レジスタ143およびバウンダリ上限レジスタ144に設定される。
【0087】
上記のVST命令に後続するLD命令が発行されると、大小比較器145により、そのアクセスアドレスが上記のバウンダリ領域の範囲内に入っているかどうかが判定され、その判定結果を示すバウンダリ内判定信号が出力される。
【0088】
判定回路15は、キャッシュブロック13によって生成されたHIT信号と、バウンダリチェック回路14によって生成されたバウンダリ内判定信号とに基づいて、以下のa〜dに示すような判定・処理を行う。
【0089】
a.「後続のLD命令のアクセスアドレスがバウンダリ領域の範囲外であり、当該LD命令がキャッシュHITとなる」と判定すれば、キャッシュからデータが読み出されるように制御する(リクエスト発行指示を出力しないようにする)。
【0090】
b.「後続のLD命令のアクセスアドレスがバウンダリ領域の範囲外であり、当該LD命令がキャッシュMISSとなる」と判定すれば、発行制御回路16からメモリ30に対してデータ取得要求(ミスリクエスト)を発行させるために、発行制御回路16に対してリクエスト発行指示を出力する。
【0091】
c.「後続のLD命令のアクセスアドレスがバウンダリ領域の範囲内であり、当該LD命令がキャッシュMISSとなる」と判定すれば、上記のbの場合と同様に、発行制御回路16に対してリクエスト発行指示を出力する。
【0092】
d.「後続のLD命令のアクセスアドレスがバウンダリ領域の範囲内であり、当該LD命令がキャッシュHITとなる」と判定すれば、「キャッシュHIT」にもかかわらず、キャッシュからデータを読み出さずにメモリ30に対してデータ取得要求を発行するために、発行制御回路16に対してリクエスト発行指示を出力する。これにより、後続のLD命令のアクセスアドレスがバウンダリ領域の範囲内であれば、当該LD命令がキャッシュにHITしても、キャッシュHITからキャッシュMISSへのMISS変換が実現され、メモリ30に対するデータ取得要求が発行制御回路16から発行される。
【0093】
このようにして、本発明では、バウンダリ領域の範囲内に入っている場合には、キャッシュHIT/キャッシュMISSにかかわらず、メモリ30に対してデータ取得要求が出されることになる。
【0094】
なお、本実施の形態では、上記の判定・処理が、キャッシュブロック13によって生成されたHIT信号を入力してその論理否定信号を出力するNOTゲート151と、NOTゲート151の出力信号とバウンダリチェック回路14によって生成されたバウンダリ内判定信号とを入力してそれらの論理和信号を出力するORゲート152とによって実現される。
【0095】
【発明の効果】
以上説明したように、本発明では、先行するVST命令のバウンダリ領域の範囲内に入っていても後続のLD命令の発行を抑止する必要がなくなることにより、スカラプロセッサとベクトルプロセッサとを有するコンピュータシステムにおけるプロセッサの命令処理(実行)速度の高速化(プロセッサの性能向上)を図ることができるという効果が生じる。特に、ベクトル命令を多用するプログラムを実行する際には、その効果は顕著なものとなる。
【0096】
ここで、図7は、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式における効果を具体的に説明するための図である。
【0097】
図7に示す具体例は、VST命令,LD命令,およびその他の命令(後続命令1,後続命令2,および後続命令3)が入っている命令列がループなっているものである(図7では、2回ループまで示している)。なお、LD命令は、VST命令の書き込み領域をアクセスするものとする。
【0098】
図7中の(a)に示す従来技術による方式の場合には、フラッシュ処理が終了するまでVST命令に後続するLD命令を発行することができないため、さらに後続する命令(後続命令1,後続命令2,および後続命令3)の実行も全て遅くなってしまう。
【0099】
一方、図7中の(b)に示す本発明適用の場合には、VST命令を発行した直後にLD命令の発行が可能となる。
【0100】
上記の両者を比較すると、2回目のループ終了まででかなりの実行時間の差(命令実行速度差)が現れていることが明確に分かる。この性能差は、ループ回数が増えるとさらに広がってくる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の構成を示すブロック図である。
【図2】図1に示すベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の各構成要素と本発明が適用されるコンピュータシステムのスカラプロセッサ,ベクトルプロセッサ,およびメモリとの関係を示すブロック図である。
【図3】スカラプロセッサ,ベクトルプロセッサ,およびメモリの間の命令およびデータの入出力の態様を示すブロック図である。
【図4】図1中の発行チェック回路の詳細な構成を示す図である。
【図5】図1中のフラッシュ処理回路およびキャッシュブロックの詳細な構成を示す図である。
【図6】図1中のバウンダリチェック回路および判定回路の詳細な構成を示す図である。
【図7】本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式における効果を具体的に説明するための図である。
【符号の説明】
10 スカラプロセッサ
11 発行チェック回路
12 フラッシュ処理回路
13 キャッシュブロック
14 バウンダリチェック回路
15 判定回路
16 発行制御回路
20 ベクトルプロセッサ
30 メモリ
111 REQバッファ群
112 比較器群
113 リトライ要求信号生成回路
114 発行抑止回路
121 フラッシュアドレスアレー
122 加算器
123 比較器
131 アドレスアレー
132 データアレー
133 比較器
134 セレクタ
141 乗算器
142 加算器
143 バウンダリ下限レジスタ
144 バウンダリ上限レジスタ
145 大小比較器
151 NOTゲート
152 ORゲート
[0001]
BACKGROUND OF THE INVENTION
In a computer system including a scalar processor and a vector processor, the present invention performs a flush (invalidation) process for a VST instruction after execution of the VST instruction (vector type store instruction from the vector processor). When a subsequent LD instruction (scalar memory load instruction) is executed, a scalar memory access instruction is issued at the time of vector memory access to guarantee synchronization (coincidence) between the cache (CACHE) and the memory (main memory) It relates to the control method.
[0002]
[Prior art]
Conventionally, when two or more different processors access one memory (for example, shared memory), a method such as snooping is used to maintain cache coherency within the processor. . As a result, when the memory-side data corresponding to the cache registration data has been changed by another processor, the cache in that portion has been invalidated.
[0003]
The same applies to the relationship between the scalar processor and the vector processor. When data is written from the vector processor to the memory, the data area on the memory side corresponding to the data registered in the cache in the scalar processor may be rewritten. The corresponding part of the cache in the scalar processor needs to be invalidated (flushed).
[0004]
At this time, what is problematic in terms of performance is calculation of an invalidated area and invalidation processing time (flash processing time). If the area is calculated accurately, the extra portion is not flushed, the cache entry is not wasted, and the performance is not degraded. However, if the region is to be calculated accurately, the flash processing time increases accordingly.
[0005]
The present invention relates to control of a cache existing in a scalar processor in a computer system (see FIGS. 2 and 3) having a scalar processor and a vector processor. Here, first, instructions (LD instruction and VST instruction) appearing in the present invention will be described below.
[0006]
a. The LD instruction is an instruction issued by the scalar processor to read the contents of the memory. When the LD instruction is issued, it is determined whether or not the data to be accessed by the LD instruction is registered in the cache in the cache block (see FIG. 1 and the like). If registered, data corresponding to the LD instruction is read from the cache as “cache HIT”. On the other hand, if it is not registered, a data acquisition request (miss request) is issued to the memory as “cache MISS” via the issue control circuit (see FIG. 1) for the LD instruction. Therefore, in this case, the LD instruction reads data from the memory.
[0007]
b. The VST instruction is an instruction for writing the contents of a vector register existing in the vector processor into a memory in units of blocks. For this reason, the VST instruction includes information on the write start address (start address: S) on the memory, the write interval from the start address (distance: D), and the number of writes (vector length length: VL). The contents of the vector register are written into the memory from the address “S” on the memory and are written up to the address “S + D × (VL−1)”.
[0008]
Here, with reference to FIG. 3, operations of the LD instruction and the VST instruction in a computer system including a scalar processor, a vector processor, and a memory will be described.
[0009]
The cache existing in the scalar processor is a copy of a part of the memory contents. Here, if the VST instruction is executed after the data in the memory is registered in the cache, it is already registered in the cache indicated by the diagonal lines in FIG. 3 according to the contents of S, D, and VL. There is a case where the existing portion is written by the VST instruction.
[0010]
In this case, the VST instruction directly writes data from the vector processor to the memory, and no data is written to the cache in the scalar processor. For this reason, in the cache, it is necessary to perform invalidation (flush) processing of already registered data (in the shaded area in FIG. 3).
[0011]
When the LD instruction subsequent to the VST instruction reads an area written by the VST instruction, if the part not registered in the cache is read, the LD instruction becomes a cache MISS and retrieves data from the memory. . At this time, on the memory side, the LD instruction is executed after the writing to the memory by the VST instruction is completed. For this reason, the LD instruction can read data of the (correct) value after being rewritten by the VST instruction.
[0012]
On the other hand, when the LD instruction subsequent to the VST instruction reads the hatched portion in FIG. 3, that is, the area where the VST instruction rewrites the part already registered in the cache, this LD instruction becomes the cache HIT. Try to read data from the cache. However, on the memory side, the portion is rewritten by the VST instruction, so that if the data is read from the cache as it is, illegal data is read. For this reason, it is necessary to wait for the issuance of the LD instruction until the cache registration part of the part is invalidated by the flush process by the execution of the VST instruction.
[0013]
Incidentally, when the LD instruction is executed after invalidation, the cache is invalidated, so that the cache MISS is generated, a data acquisition request is issued to the memory, and the data after being rewritten by the VST instruction is read from the memory. be able to.
[0014]
As described above, in the conventional technique, the LD instruction (scalar LD instruction) for reading data from the cache cannot be executed during the flush process. Then, when the execution of the LD instruction is stopped in this way, the processor itself is stopped (HOLD).
[0015]
In other words, conventionally, when the access address of the LD instruction corresponds to “an area where the contents of the vector register are written to the memory in block units by the preceding VST instruction” (hereinafter referred to as “boundary area”), the VST The issuing of the LD instruction is suppressed until the flush process for the instruction is completed.
[0016]
Here, in the conventional technology, by improving with an emphasis on how to increase the flash processing speed, the technical improvement is performed so as to shorten the time that the LD instruction stops, that is, the time that the processor stops. It was.
[0017]
[Problems to be solved by the invention]
As described above, in the conventional scalar memory access instruction issuance control method at the time of vector memory access, the subsequent LD instruction cannot be executed while the flash process resulting from the execution of the VST instruction is being performed. There is a problem that the processor itself stops (HOLD) when the instruction stops.
[0018]
In addition, as described above, conventionally, by focusing on how to increase the flash processing speed and improving the above problems, the time during which the LD instruction is stopped, that is, the time during which the processor is stopped is reduced. Attempts have been made to improve the technology as much as possible.
[0019]
In the present invention, the viewpoint is changed, and during the flush processing by issuing the VST instruction, all subsequent LD instructions in which the address to be accessed is included in the boundary area of the VST instruction are issued as a cache MISS to the memory side. Therefore, it is possible to execute the subsequent instruction without stopping the LD instruction, and increase the instruction processing speed of the processor in the computer system including the scalar processor and the vector processor (improvement of the processor performance). Is possible.
[0020]
That is, in view of the above points, the object of the present invention is to issue an issuance as it is if the LD instruction is MISS to the cache when the access address of the subsequent LD instruction is in the boundary area of the VST instruction. If the LD instruction is HIT for the cache, the data is not fetched from the cache, but is changed to the cache MISS, a miss request is issued, and the data can be retrieved from the memory. It is to provide a time scalar memory access instruction issue control system.
[0021]
The patent publications related to the prior art for the scalar memory access instruction issuance control method for vector memory access according to the present invention include "JP 61-296472 A", "JP 01-222375 A", and No. 03-053667 ”.
[0022]
However, the technology described in each of the above publications differs from the present invention in the basic configuration. That is, according to the present invention, the performance of the processor is improved by a simpler configuration (a configuration using a “determination circuit” as will be described later) than the techniques described in the above publications.
[0023]
Specifically, there are differences as shown in ac below.
[0024]
a. The technique (buffer storage device) described in Japanese Patent Application Laid-Open No. 61-296472 is “intra-region access signal output from region comparison circuit corresponding to main storage block address information stored in tag storage means”. It is necessary to use “intra-area access signal invalidating means for storing intra-area access signal invalidation information”. On the other hand, the present invention has a configuration that does not require the use of such means corresponding to the in-area access signal invalidation means.
[0025]
b. The technique (buffer storage device) described in Japanese Patent Application Laid-Open No. 01-222375 discloses that “a part of the main memory address information determined to be area coincidence by the area check means is part of the main memory address information during the invalidation processing period. Is stored together with a V bit that indicates the validity of the part, and is compared with a part of the main memory address of the scalar load request subsequent to the scalar load request. When a match is found, an address match signal is output. It is necessary to use "address check means for suppressing the area coincidence signal". On the other hand, the present invention has a configuration that does not require the use of means corresponding to such address check means.
[0026]
c. The technology (information processing apparatus) described in Japanese Patent Publication No. 03-053667 discloses that “when an in-region detection signal is output from the region detection circuit in response to a scalar data load command from the command circuit, a scalar data load command is issued. Is provided with a bypass circuit called “a cache control circuit that controls to bypass the buffer memory circuit and the tag storage circuit and send them directly to the main memory”. On the other hand, according to the present invention, it is possible to achieve performance equivalent to that of the above-described bypass circuit with a much simpler circuit (a low-cost circuit) called a determination circuit.
[0027]
In Japanese Patent Laid-Open No. 61-296472 and Japanese Patent Laid-Open No. 01-222375, the following “LD request of the same address comes in while the request that became MISS is issuing a data request to the memory. The disadvantage of the prior art over the invention described in the publication is that the request is also issued to the memory ”(because it is originally the same address, only one cache registration is required, (Excess) registration data will be overwritten on the already registered cache block, meaningless cache registration time will occur, and data reading will be delayed) ing.
[0028]
On the other hand, according to the present invention, when an LD instruction with a certain access address is sent as a request to the memory under the control of an “issue check circuit” to be described later, the LD that accesses the same address that follows. The system is such that no command is issued (waiting). That is, when the preceding LD request returns, the data block including the data is registered in the cache, and the subsequent LD instruction at the same address (more precisely, the address in the data block) is registered. Waiting for issue until. Therefore, since the data is re-executed after being registered in the cache, there is no need to issue a meaningless LD instruction (the wait can be read earlier because there is no extra cache registration). There is no performance degradation as mentioned in.
[0029]
[Means for Solving the Problems]
A scalar memory access instruction issuance control system for vector memory access according to the present invention includes a cache and a control circuit for a scalar processor of a computer system including a scalar processor, a vector processor, and a memory, and performs cache HIT / MISS determination. When an instruction from a block and a processor core part is received, and when an LD instruction is received, it is checked whether or not there is a preceding miss request with the same access address as the LD instruction, and there is a preceding miss request with the same access address Is based on an issuance check circuit that waits for the issuance of the LD instruction and the S, D, and VL of the VST instruction, and calculates the write range of the VST instruction, and whether or not the data within the range is already registered in the cache. Judgment A flash processing circuit for sending a flush request to the cache block so as to reset the V bit for the registered part on the cache block when it is determined as “registered”, and a VST instruction Information indicating the range of the boundary area of the VST instruction calculated based on S, D, and VL of the VST is stored, and a boundary check for determining whether or not a subsequent LD instruction is accessing within the boundary area is flashed. Boundary check circuit that is executed until flush processing for the VST instruction in the processing circuit is completed, and issuance that outputs a data acquisition request for issuing an instruction to issue the cache MISS LD instruction to the memory side A control circuit; the cache block; and If it is determined by the determination based on the signal from the boundary check circuit that “the LD instruction subsequent to the VST instruction becomes the cache HIT and the access address is within the boundary area of the VST instruction”, the subsequent A determination circuit that controls to change the LD instruction from the cache HIT to the cache MISS and issues an instruction for the control to the issue control circuit.
[0030]
Here, the above-described scalar memory access instruction issuance control system for vector memory access recognizes “whether it is a cache HIT or a cache MISS” based on the HIT signal generated by the cache block, and is generated by the boundary check circuit. Based on the determined determination signal within the boundary, it recognizes “whether it is within or outside the boundary area” and “the access address of the LD instruction following the VST instruction is within the boundary area of the VST instruction. If there is a cache MISS at the time of the control in order to realize “control to issue a data acquisition request to the memory without reading data from the cache even if the LD instruction hits the cache,” In the same way as the decision process for outputting a request issuance instruction to the issuance control circuit It is configured with are considered as one preferred aspect.
[0031]
It should be noted that the scalar memory access instruction issuance control system for vector memory access according to the present invention is more generally caused by execution of a VST instruction in a computer system having a scalar processor having a cache block, a vector processor, and a memory. Flash processing means for performing flash processing, boundary check means for checking whether the access address of the LD instruction subsequent to the VST instruction is within the boundary area of the VST instruction (boundary check), and the VST instruction When the LD instruction subsequent to the VST instruction is issued, the “following L” is determined based on the determination result of the boundary check by the boundary check means for the VST instruction and the determination result of the cache HIT / MISS determination by the cache block. And determining means for controlling to change from the cache HIT to the cache MISS when it is determined that the instruction becomes a cache HIT and its access address is within the boundary area of the VST instruction. It can be expressed as
[0032]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described in detail with reference to the drawings.
[0033]
FIG. 1 is a block diagram showing a configuration of a scalar memory access instruction issuance control system during vector memory access according to an embodiment of the present invention.
[0034]
Referring to FIG. 1, the vector memory access time scalar memory access instruction issuance control system according to the present embodiment includes an issuance check circuit 11 that accepts a request (instruction) from a processor core portion, and a flash resulting from execution of a VST instruction. Boundary check for checking whether the flash processing circuit 12 that performs processing, the cache block 13 including the cache and its control circuit, and the LD instruction subsequent to the VST instruction are within the boundary area of the VST instruction A determination circuit 15 that determines whether or not a request issuance instruction should be issued to the issuance control circuit 16 based on the HIT signal from the cache block 13 and the in-boundary determination signal from the boundary check circuit 14, and a cache MISS L became Instructions is configured to include a issue control circuit 16 for controlling the instruction issue control for outputting the data acquisition request issued to the memory 30 side (miss request).
[0035]
FIG. 2 is a block diagram showing the relationship between the constituent elements of the scalar memory access instruction issuance control system at the time of vector memory access shown in FIG. 1 and the scalar processor 10, vector processor 20, and memory 30 of the computer system to which the present invention is applied. FIG.
[0036]
As shown in FIG. 2, each component in FIG. 1 is realized on a scalar processor 10.
[0037]
FIG. 3 is a block diagram showing an input / output mode of instructions and data among the scalar processor 10, the vector processor 20, and the memory 30, as mentioned above.
[0038]
FIG. 4 is a diagram showing a detailed configuration of the issue check circuit 11 in FIG.
[0039]
The issue check circuit 11 includes a REQ buffer group 111, a comparator group 112, a retry request signal generation circuit 113, and an issue suppression circuit 114.
[0040]
FIG. 5 is a diagram showing a detailed configuration of the flash processing circuit 12 and the cache block 13 in FIG.
[0041]
The flash processing circuit 12 includes a flash address array (FAA) 121 that is a copy of the address array 131 in the cache block 13, an adder 122, and a comparator 123.
[0042]
The cache block 13 includes an address array (AA) 131 having entries (ENTRY0, ENTRY1,..., ENTRYn) to which V bits (V0, V1,..., Vn (n is a positive integer)) are added, and each data block. A data array (DA) 132 composed of (BLOCK0, BLOCK1,..., BLOCKn), a comparator 133, and a selector 134 are included.
[0043]
FIG. 6 is a diagram showing a detailed configuration of boundary check circuit 14 and determination circuit 15 in FIG.
[0044]
The boundary check circuit 14 includes a multiplier 141, an adder 142, a boundary lower limit register 143, a boundary upper limit register 144, and a magnitude comparator 145.
[0045]
The determination circuit 15 includes a NOT gate 151 and an OR gate 152.
[0046]
Next, the overall operation of the vector memory access scalar memory access instruction issuance control system according to the present embodiment configured as described above will be described in detail with reference to FIGS.
[0047]
(1) First, the operation when the VST instruction is executed will be described.
[0048]
When the VST instruction is executed, the VST instruction is issued to the vector processor 20 through the issue check circuit 11 and the issue control circuit 16.
[0049]
At the same time, the VST instruction passes through the issue check circuit 11 and enters the flash processing circuit 12 and the boundary check circuit 14.
[0050]
In this case, the flash processing circuit 12 and the boundary check circuit 14 operate as shown in a and b below.
[0051]
a. Operation in the flash processing circuit 12
Based on the start address (S), the distance (D), and the vector length length (VL) of the VST instruction, the flash processing circuit 12 calculates the writing range of the VST instruction (the range of the area to be rewritten on the memory 30), It is determined whether or not the data within the range is already registered in the cache by the VST instruction.
[0052]
If it is determined as “registered” in this determination, a flush request (cache invalidation) is issued to the cache block 13 so as to reset (flush) the V bit (see FIG. 5) on the cache for the registered portion. Send request).
[0053]
b. Operation in the boundary check circuit 14
The boundary check circuit 14 sets a writing range (boundary area range) of the VST instruction calculated based on S, D, and VL of the VST instruction, and checks whether or not a subsequent LD instruction is accessing the range. (Boundary check) is executed. This boundary check is performed until the flash processing in the flash processing circuit 12 (see a) is completed, and when the flash processing ends, the check operation in the boundary check circuit 14 ends.
[0054]
(2) Next, the operation when the LD instruction is issued following the VST instruction will be described.
[0055]
As described above, when the flash process is executed and the boundary is set by executing the VST instruction (when the boundary check is performed), the LD instruction subsequent to the VST instruction is issued. Think about the behavior.
[0056]
As described above, in the conventional vector memory access scalar memory access instruction issuance control method, the LD instruction subsequent to the VST instruction is written by the VST instruction if the boundary area of the VST instruction is accessed. Since there is a possibility of accessing an area on the cache to be replaced (when a subsequent LD instruction that accesses the boundary area hits the cache), issuance is suppressed (becomes waiting for issuance) until the flush process is completed. . However, if waiting for the issuance of all subsequent LD instructions until the end of the flash process, the performance is considerably degraded. For this reason, any LD instruction that reads an address that is not a boundary area of the VST instruction can be issued regardless of the flash process being performed.
[0057]
In order to realize such control, the conventional technique calculates the range of the boundary area (area rewritten by the VST instruction) from the S, D, and VL of the VST instruction in the boundary check circuit 14, and then the subsequent LD. When the instruction is issued, if the address of the LD instruction is not within the boundary area, the issuance of the LD instruction is permitted. If the address is within the boundary area, the issuance of the LD instruction is inhibited.
[0058]
In the present embodiment, and thus the present invention, the determination circuit 15 is used to control to issue the LD instruction, which is conventionally prevented from being issued when the access address is within the boundary area.
[0059]
That is, the determination circuit 15 is a boundary between the HIT signal from the cache block 13 (a signal indicating the determination result of the cache HIT / MISS determination of the LD instruction, and a signal indicating “1 (ON)” logic in the case of the cache HIT). An in-boundary determination signal (a signal indicating the determination result of the boundary check and a signal indicating “1 (ON)” logic when the signal is within the boundary area) from the check circuit 14 is input, and “HIT in the cache” is input. As for the “LD instruction within the boundary area of the VST instruction” (which becomes the cache HIT), by changing from the cache HIT to the cache MISS, data is not read from the cache, Issue a data acquisition request and fetch data from the memory 30 ”. It sends instructs (requests issuance instruction) to the control circuit 16. As a result, there is no possibility of the subsequent LD instruction accessing the area on the cache that is rewritten by the VST instruction, and it is possible to make it unnecessary to suppress the issue of the subsequent LD instruction.
[0060]
Note that when the LD instruction for the same address as the cache MISS is continuously accessed within the boundary area, only the first request is requested from the memory 30 by the control of the issue check circuit 11 ( ("Miss request") is sent out (the "same address" described here includes addresses that access the same data block in addition to the case where the addresses completely match). Here, the subsequent LD instruction for the same address is awaited in the scalar processor 10 until the data of the first LD instruction is registered in the cache. Then, when the data of the first LD instruction is registered in the cache, the subsequent LD instruction of the same address is executed. In this case, since the data is already registered in the cache, all the data is read from the cache (becomes a cache HIT). As a result, it is possible to avoid “delay of data reading due to occurrence of meaningless cache registration time”.
[0061]
(3) Here, the operation at the time of issuing the LD instruction during the flash process / boundary process resulting from the execution of the VST instruction will be described in more detail by dividing the case (see FIG. 4 for the operation of the issue check circuit 11). refer).
[0062]
A. When there is no preceding miss request
The LD instruction (LD request) issued from the processor core part enters the issue check circuit 11. At this time, the cache block 13 performs a cache HIT / MISS determination (determination of whether the LD instruction becomes a cache HIT or a cache MISS) based on the HIT / MISS determination request.
[0063]
The issue check circuit 11 determines whether or not there is a preceding miss request (determining whether or not there is a preceding miss request). In this case, since there is no preceding miss request, the LD instruction (request) is issued as is. It is issued to the lower block through the circuit 114.
[0064]
Next, the boundary check circuit 14 determines whether or not the access address of the LD instruction falls within the boundary area of the VST instruction (boundary area inside / outside determination).
[0065]
Here, the following cases a to c are made based on the determination result of the cache HIT / MISS determination, the presence / absence of preceding miss request (here, the determination result “no preceding miss request”), and the determination result of the boundary area inside / outside determination The following operations are executed.
[0066]
a. In the case of “cache HIT, no preceding miss request, out of boundary area range”, the cache data is read from the cache block 13 and the cache data is returned to the processor core as data for the LD instruction. .
[0067]
b. In the case of “cache HIT, no preceding miss request, within boundary area range”, the determination circuit 15 performs MISS conversion (conversion to change the cache HIT to the cache MISS), and issues a miss request (data acquisition request). An instruction (request issue instruction) is issued to the issuance control circuit 16 so as to be issued to the memory 30 side.
[0068]
c. In the case of “cache MISS, no preceding miss request, within or outside the boundary area range”, the LD instruction is issued to the memory 30 through the issue control circuit 16 (a miss request is issued). . At this time, information on the issued miss request (miss request information indicating the access address of the LD instruction) is stored in the REQ buffer group 111 (REQ buffer 0 or REQ buffer 1 in FIG. 4) in the issue check circuit 11. be registered. The above operation is performed regardless of whether the access address of the LD instruction is within the boundary area.
[0069]
B. When there is a preceding miss request
The LD instruction issued from the processor core part enters the issue check circuit 11. At this time, the cache HIT / MISS determination is performed in the cache block 13.
[0070]
In the issuance check circuit 11, the presence / absence determination of the preceding miss request is performed. In this case, since there is a preceding miss request, the comparator group 112 is controlled based on the miss request information for the miss request stored in the REQ buffer group 111. Using this, it is determined whether the access address of the LD instruction matches the access address of the preceding LD instruction in the miss request information (address match determination).
[0071]
The boundary check circuit 14 determines whether or not the access address of the LD instruction falls within the boundary area of the VST instruction (boundary area inside / outside determination).
[0072]
Here, based on the determination results of the cache HIT / MISS determination, the presence / absence of preceding miss request (in this case, the determination result that “there is a preceding miss request”), the address match determination, and the boundary area inside / outside determination, the following a to e And the following operations are executed.
[0073]
a. In the case of “cache HIT, previous miss request, no address match, out of boundary area range”, the cache data is read from the cache block 13, and the cache data is the data corresponding to the LD instruction for the processor core part. Will be returned as
[0074]
b. In the case of “cache HIT, prior miss request, no address match, within boundary area range”, the determination circuit 15 performs MISS conversion (conversion to change the cache HIT to cache MISS), and the miss request (data An instruction (request issuance instruction) is issued to the issuance control circuit 16 so as to issue an (acquisition request) to the memory 30 side.
[0075]
c. In the case of “cache HIT, preceding miss request, address coincidence, within boundary area range or out of range”, a retry request signal generation circuit 113 generates a request wait request signal. Due to this request wait request signal, the LD instruction issued from the processor core portion is not accepted by the cache and is registered in the wait buffer (the access address of the LD instruction may or may not fall within the boundary area range). Is also the above operation).
[0076]
d. In the case of “cache MISS, prior miss request, no address match, within boundary area range or out of range”, the LD instruction is issued to memory 30 through issue control circuit 16 (miss request is publish). At this time, information on the issued miss request (miss request information indicating the access address of the LD instruction) is the REQ buffer group 111 in the issuance check circuit 11 (the vacant side of the REQ buffer 0 or the REQ buffer 1). (When both REQ buffer 0 and REQ buffer 1 are not empty, a request wait request signal is generated and the LD instruction is registered in the wait buffer). The above operation is performed regardless of whether the access address of the LD instruction is within the boundary area.
[0077]
e. In the case of “cache MISS, preceding miss request, address coincidence, within boundary area range or out of range”, a retry request signal generation circuit 113 generates a request wait request signal. Due to this request wait request signal, the LD instruction issued from the processor core portion is not accepted by the cache and is registered in the wait buffer (the access address of the LD instruction may or may not fall within the boundary area range). Is also the above operation).
[0078]
(4) Next, with reference to FIG. 5, the operation at the time of the flash processing request in the flash processing circuit 12 and the cache block 13 in FIG. 1 will be described.
[0079]
When the VST instruction (request) is issued, the flash processing circuit 12 sets the start address (S) and the distance (D).
[0080]
Thereafter, in the flash processing circuit 12, an address for accessing the flash address array 121 is generated by the adder 122. As this address, S, S + D, S + 2D,..., S + (VL−1) × D are generated.
[0081]
The flash address array 121, which is a copy of the address array 131 in the cache block 13, is accessed by the above address, and the comparator 123 is used to determine whether or not the area to be rewritten by the VST instruction is registered in the cache. .
[0082]
If it is determined in this determination that “the entry in which data in the area changed by the VST instruction is registered is on the cache”, the flash processing circuit 12 requests the cache block 13 to make a flush request (invalidate it). A request with an invalidation signal having a power entry number).
[0083]
In the cache block 13, the V bit corresponding to the entry in the corresponding address array 131 is reset by this flush request.
[0084]
As a result, even if the LD instruction is executed after the end of the flash processing and the access address matches the address of the entry in the address array 131, the V bit is reset, so that the cache MISS is obtained and the data from the memory 30 is transferred. Will be read.
[0085]
(5) Finally, operations of the boundary check circuit 14 and the determination circuit 15 in FIG. 1 will be described with reference to FIG. The determination circuit 15 is not present in the prior art and is newly added in the present invention.
[0086]
The boundary check circuit 14 takes in the start address (S), the distance (D), and the vector length length (VL) of the VST instruction by executing the VST instruction, and the multiplier 141 and the adder 142 store the boundary area. A range is calculated. This calculation is performed based on the calculation formulas of “boundary region lower limit = S” and “boundary region upper limit = S + D × VL”, and the obtained values are set in the boundary lower limit register 143 and the boundary upper limit register 144. .
[0087]
When the LD instruction subsequent to the VST instruction is issued, the size comparator 145 determines whether or not the access address is within the boundary area, and an in-boundary determination signal indicating the determination result. Is output.
[0088]
Based on the HIT signal generated by the cache block 13 and the in-boundary determination signal generated by the boundary check circuit 14, the determination circuit 15 performs determination / processing as shown in the following a to d.
[0089]
a. If it is determined that “the access address of the subsequent LD instruction is out of the boundary area and the LD instruction becomes the cache HIT”, control is performed so that data is read from the cache (so that a request issue instruction is not output). To do).
[0090]
b. If it is determined that “the access address of the subsequent LD instruction is out of the boundary area and the LD instruction becomes the cache MISS”, the issue control circuit 16 issues a data acquisition request (miss request) to the memory 30. Therefore, a request issuance instruction is output to the issuance control circuit 16.
[0091]
c. If it is determined that “the access address of the subsequent LD instruction is within the boundary area and the LD instruction becomes the cache MISS”, the request issuing instruction is issued to the issue control circuit 16 as in the case of b above. Is output.
[0092]
d. If it is determined that “the access address of the subsequent LD instruction is within the boundary area and the LD instruction becomes the cache HIT”, the data is not read from the cache to the memory 30 in spite of the “cache HIT”. In order to issue a data acquisition request, a request issuance instruction is output to the issuance control circuit 16. As a result, if the access address of the subsequent LD instruction is within the boundary area, even if the LD instruction hits the cache, the MISS conversion from the cache HIT to the cache MISS is realized, and a data acquisition request to the memory 30 is obtained. Is issued from the issue control circuit 16.
[0093]
In this way, in the present invention, when the boundary is within the boundary area, a data acquisition request is issued to the memory 30 regardless of the cache HIT / cache MISS.
[0094]
In the present embodiment, the determination / processing described above includes a NOT gate 151 that inputs a HIT signal generated by the cache block 13 and outputs a logical negation signal, an output signal of the NOT gate 151, and a boundary check circuit. And an OR gate 152 that inputs the in-boundary determination signal generated by 14 and outputs a logical sum signal thereof.
[0095]
【The invention's effect】
As described above, in the present invention, there is no need to suppress the issue of the subsequent LD instruction even if it is within the boundary area of the preceding VST instruction, so that the computer system having the scalar processor and the vector processor is eliminated. As a result, it is possible to increase the instruction processing (execution) speed of the processor (improve the processor performance). In particular, the effect becomes remarkable when executing a program that frequently uses vector instructions.
[0096]
FIG. 7 is a diagram for specifically explaining the effect of the vector memory access time scalar memory access instruction issue control method of the present invention.
[0097]
In the specific example shown in FIG. 7, an instruction string including a VST instruction, an LD instruction, and other instructions (subsequent instruction 1, subsequent instruction 2, and subsequent instruction 3) is a loop (in FIG. 7, 2 loops are shown). It is assumed that the LD instruction accesses the VST instruction write area.
[0098]
In the case of the method according to the prior art shown in FIG. 7A, since the LD instruction subsequent to the VST instruction cannot be issued until the flush process is completed, further subsequent instructions (subsequent instruction 1, subsequent instruction) 2 and subsequent instructions 3) are all slowed down.
[0099]
On the other hand, in the case of application of the present invention shown in FIG. 7B, the LD instruction can be issued immediately after the VST instruction is issued.
[0100]
Comparing the above, it can be clearly seen that a considerable difference in execution time (instruction execution speed difference) appears until the end of the second loop. This performance difference is further widened as the number of loops increases.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a scalar memory access instruction issue control method during vector memory access according to an embodiment of the present invention;
2 is a block diagram showing the relationship between each component of the scalar memory access instruction issuance control method at the time of vector memory access shown in FIG. 1 and a scalar processor, vector processor, and memory of a computer system to which the present invention is applied; .
FIG. 3 is a block diagram showing an input / output mode of instructions and data between a scalar processor, a vector processor, and a memory.
4 is a diagram showing a detailed configuration of an issue check circuit in FIG. 1. FIG.
FIG. 5 is a diagram showing a detailed configuration of a flash processing circuit and a cache block in FIG. 1;
6 is a diagram illustrating a detailed configuration of a boundary check circuit and a determination circuit in FIG. 1. FIG.
FIG. 7 is a diagram for specifically explaining an effect in the scalar memory access instruction issue control method at the time of vector memory access according to the present invention;
[Explanation of symbols]
10 Scalar processor
11 Issue check circuit
12 Flash processing circuit
13 cash blocks
14 Boundary check circuit
15 Judgment circuit
16 Issuance control circuit
20 vector processor
30 memory
111 REQ buffers
112 comparators
113 Retry request signal generation circuit
114 Issuance suppression circuit
121 Flash address array
122 Adder
123 comparator
131 Address array
132 Data array
133 comparator
134 Selector
141 multiplier
142 Adder
143 Boundary lower limit register
144 Boundary upper limit register
145 large / small comparator
151 NOT gate
152 OR gate

Claims (7)

キャッシュブロックを有するスカラプロセッサ,ベクトルプロセッサ,および,メモリを備えるコンピュータシステムにおいて、
VST命令の実行に起因するフラッシュ処理を行うフラッシュ処理手段と、
VST命令に後続するLD命令のアクセスアドレスが当該VST命令についてのバウンダリ領域の範囲内に入っているか否かをチェックするバウンダリチェック手段と、
VST命令に後続するLD命令の発行時に、当該VST命令についての前記バウンダリチェック手段によるバウンダリチェックの判定結果と前記キャッシュブロックによるキャッシュHIT/MISS判定の判定結果とに基づき、「後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っている」と判定した場合に、キャッシュHITからキャッシュMISSに変更するように制御する判定手段と、
「後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っていない」と判定された場合に、前記判定手段のキャッシュHIT判定にしたがって後続LD命令に対するデータを読み出し返却する前記キャッシュブロックと、
を有することを特徴とするベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
In a computer system comprising a scalar processor having a cache block, a vector processor, and a memory,
Flash processing means for performing flash processing resulting from execution of a VST instruction;
Boundary check means for checking whether the access address of the LD instruction subsequent to the VST instruction is within the boundary area of the VST instruction;
At the time of issuing the LD instruction subsequent to the VST instruction, based on the determination result of the boundary check by the boundary check means for the VST instruction and the determination result of the cache HIT / MISS determination by the cache block, “the subsequent LD instruction is the cache HIT And when the access address is within the boundary area of the VST instruction ”, a determination unit that controls to change from the cache HIT to the cache MISS;
When it is determined that “the subsequent LD instruction becomes a cache HIT and its access address is not within the boundary area of the VST instruction”, the data for the subsequent LD instruction is read according to the cache HIT determination of the determination means. The cache block to be returned;
A scalar memory access instruction issuance control system at the time of vector memory access.
スカラプロセッサ,ベクトルプロセッサ,および,メモリを備えるコンピュータシステムのスカラプロセッサにおいて、
キャッシュおよびその制御回路からなり、キャッシュHIT/MISS判定を行うキャッシュブロックと、
プロセッサコア部分からの命令を受け付け、LD命令を受け付けた際に当該LD命令とアクセスアドレスを同一にする先行ミスリクエストの有無をチェックし、アクセスアドレスが同一の先行ミスリクエストが存在する場合には当該LD命令の発行を待機させる発行チェック回路と、
VST命令のS,D,VLに基づき、当該VST命令の書き込み範囲を算出し、その範囲内のデータがキャッシュにすでに登録されているか否かを判定し、当該判定で「登録されている」と判断した場合には前記キャッシュブロック上の当該登録部分に対するVビットをリセットするように前記キャッシュブロックに対してフラッシュ要求を送出するフラッシュ処理回路と、
VST命令のS,D,VLに基づき算出した当該VST命令のバウンダリ領域の範囲を示す情報を保持し、そのバウンダリ領域の範囲内を後続のLD命令がアクセスしているかどうかを判定するバウンダリチェックを前記フラッシュ処理回路における当該VST命令についてのフラッシュ処理が終わるまで実行するバウンダリチェック回路と、
命令を発行する制御を行い、キャッシュMISSとなったLD命令をメモリ側に発行するためのデータ取得要求を出力する発行制御回路と、前記キャッシュブロックおよび前記バウンダリチェック回路からの信号に基づく判定で「VST命令の後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスが当該VST命令のバウンダリ領域の範囲内に入っている」と判断した場合に、当該後続LD命令をキャッシュHITからキャッシュMISSに変更するように制御し、当該制御のための指示を前記発行制御回路に出す判定回路と、
「後続LD命令がキャッシュHITとなり、かつそのアクセスアドレスがVST命令のバウンダリ領域の範囲内に入っていない」と判定された場合に、前記判定手段のキャッシュHIT判定にしたがって後続LD命令に対するデータを読み出し返却する前記キャッシュブロックと、
を有することを特徴とするベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
In a scalar processor of a computer system including a scalar processor, a vector processor, and a memory,
A cache block comprising a cache and its control circuit and performing cache HIT / MISS determination;
When an instruction from the processor core part is received and an LD instruction is received, it is checked whether or not there is a preceding miss request with the same access address as that LD instruction. An issue check circuit that waits for the issuance of an LD instruction;
Based on the S, D, and VL of the VST instruction, the writing range of the VST instruction is calculated, it is determined whether or not the data within the range is already registered in the cache, and “is registered” in the determination. A flash processing circuit for sending a flush request to the cache block so as to reset a V bit for the registered portion on the cache block if determined;
Information indicating the range of the boundary area of the VST instruction calculated based on the S, D, and VL of the VST instruction is held, and a boundary check is performed to determine whether or not a subsequent LD instruction is accessing the boundary area. A boundary check circuit that executes until the flash processing for the VST instruction in the flash processing circuit is completed;
In the determination based on the signals from the issue control circuit that outputs a data acquisition request for issuing an instruction to issue an LD instruction that has become a cache MISS to the memory side, and the cache block and the boundary check circuit. When it is determined that the subsequent LD instruction of the VST instruction becomes the cache HIT and the access address is within the boundary area of the VST instruction, the subsequent LD instruction is changed from the cache HIT to the cache MISS. And a determination circuit that issues an instruction for the control to the issuance control circuit,
When it is determined that “the subsequent LD instruction becomes a cache HIT and its access address is not within the boundary area of the VST instruction”, the data for the subsequent LD instruction is read according to the cache HIT determination of the determination means. The cache block to be returned;
A scalar memory access instruction issuance control system at the time of vector memory access.
Vビットが付加されたアドレスアレーとデータアレーとを備え、LD命令のアクセスアドレスとアドレスアレー内の各エントリ中のアドレスとの一致判定によりキャッシュHIT/MISS判定を行い、その判定結果を示すHIT信号を出力するキャッシュブロックと、
前記キャッシュブロック内のアドレスアレーのコピーであるフラッシュアドレスアレーを利用して、VST命令のS,D,VLに基づいて当該VST命令の書き込領域を求めた上で前記キャッシュブロック内のアドレスアレーのVビットに対するフラッシュ処理を行うフラッシュ処理回路と
を有することを特徴とする請求項2記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
An address array to which a V bit is added and a data array are provided, and cache HIT / MISS determination is performed by determining whether the access address of the LD instruction matches the address in each entry in the address array, and an HIT signal indicating the determination result A cache block that outputs
Using the flash address array that is a copy of the address array in the cache block, the write area of the VST instruction is obtained based on the S, D, and VL of the VST instruction, and then the address array in the cache block is searched. 3. The scalar memory access instruction issuance control system for vector memory access according to claim 2, further comprising: a flash processing circuit for performing flash processing on V bits.
VST命令のS,D,VLに基づき「バウンダリ領域の下限=S」および「バウンダリ領域の上限=S+D×VL」という算出式によってバウンダリ領域の範囲を算出する乗算器および加算器と、
前記乗算器および加算器により算出されたバウンダリ領域の範囲の上限および下限を保持するバウンダリ下限レジスタおよびバウンダリ上限レジスタと、
前記バウンダリ下限レジスタおよびバウンダリ上限レジスタにセットされた値によって表されるバウンダリ領域の範囲とVST命令に後続するLD命令のアクセスアドレスとの大小比較を行ってその比較結果を示すバウンダリ内判定信号を出力する大小比較器と
を備えるバウンダリチェック回路を有することを特徴とする請求項3記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
A multiplier and an adder for calculating the range of the boundary area based on the calculation formulas of “boundary area lower limit = S” and “boundary area upper limit = S + D × VL” based on S, D, and VL of the VST instruction;
A boundary lower limit register and a boundary upper limit register for holding the upper limit and the lower limit of the range of the boundary area calculated by the multiplier and the adder;
Boundary area range represented by the values set in the boundary lower limit register and the boundary upper limit register is compared with the access address of the LD instruction subsequent to the VST instruction, and an in-boundary determination signal indicating the comparison result is output. 4. The scalar memory access instruction issue control system for vector memory access according to claim 3, further comprising a boundary check circuit including a large / small comparator.
キャッシュブロックによって生成されたHIT信号に基づいて「キャッシュHITであるかキャッシュMISSであるか」を認識し、バウンダリチェック回路によって生成されたバウンダリ内判定信号に基づいて「バウンダリ領域の範囲内であるか範囲外であるか」を認識し、「VST命令に後続するLD命令のアクセスアドレスが当該VST命令のバウンダリ領域の範囲内であれば、当該LD命令がキャッシュにHITしても、キャッシュからデータを読み出さずにメモリに対してデータ取得要求を発行するような制御」を実現するために、当該制御の際にキャッシュMISSの場合と同様にリクエスト発行指示を発行制御回路に対して出力する判定回路を有することを特徴とする請求項4記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。Based on the HIT signal generated by the cache block, it recognizes “whether it is a cache HIT or a cache MISS” and, based on the in-boundary determination signal generated by the boundary check circuit, “is it within the boundary area? "If the access address of the LD instruction following the VST instruction is within the boundary area of the VST instruction, even if the LD instruction hits the cache, the data is transferred from the cache. In order to realize “control that issues a data acquisition request to the memory without reading”, a determination circuit that outputs a request issuance instruction to the issuance control circuit as in the case of the cache MISS at the time of the control. 5. The scalar memory area at the time of vector memory access according to claim 4, further comprising: Seth instruction issue control method. 判定回路が、キャッシュブロックによって生成されたHIT信号を入力してその論理否定信号を出力するNOTゲートと、前記NOTゲートの出力信号とバウンダリチェック回路によって生成されたバウンダリ内判定信号とを入力してそれらの論理和信号を出力するORゲートとによって構成されることを特徴とする請求項5記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。The determination circuit inputs a NOT gate that inputs a HIT signal generated by the cache block and outputs a logical negation signal thereof, an output signal of the NOT gate, and an in-boundary determination signal generated by the boundary check circuit 6. The vector memory access time scalar memory access instruction issuance control system according to claim 5, comprising an OR gate that outputs a logical sum signal thereof. 先行ミスリクエストについてのミスリクエスト情報を保持するREQバッファ群と、比較器群と、リトライ要求信号生成回路と、発行抑止回路とを備え、バウンダリ領域の範囲内において同一アドレスに対するLD命令が連続してアクセスされた場合に、キャッシュHIT/キャッシュMISSに関係なく、最初のリクエストについてのみ、メモリに対してリクエストを送出するように制御する発行チェック回路を有することを特徴とする請求項2,請求項3,請求項4,請求項5,または請求項6記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。A REQ buffer group that holds miss request information for a preceding miss request, a comparator group, a retry request signal generation circuit, and an issuance suppression circuit are provided, and LD instructions for the same address are continuously performed within the boundary area. 3. An issue check circuit for controlling to send a request to the memory only for the first request regardless of the cache HIT / cache MISS when accessed. 8. A scalar memory access instruction issue control system for vector memory access according to claim 4, claim 5, or claim 6.
JP2000251732A 2000-08-23 2000-08-23 Issuing control system for scalar memory access instruction during vector memory access Expired - Fee Related JP3757768B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000251732A JP3757768B2 (en) 2000-08-23 2000-08-23 Issuing control system for scalar memory access instruction during vector memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000251732A JP3757768B2 (en) 2000-08-23 2000-08-23 Issuing control system for scalar memory access instruction during vector memory access

Publications (2)

Publication Number Publication Date
JP2002063154A JP2002063154A (en) 2002-02-28
JP3757768B2 true JP3757768B2 (en) 2006-03-22

Family

ID=18741091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000251732A Expired - Fee Related JP3757768B2 (en) 2000-08-23 2000-08-23 Issuing control system for scalar memory access instruction during vector memory access

Country Status (1)

Country Link
JP (1) JP3757768B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304917B2 (en) 2013-02-05 2016-04-05 Nec Corporation Flush control apparatus, flush control method and cache memory apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118012354B (en) * 2024-04-10 2024-07-02 芯来智融半导体科技(上海)有限公司 Data writing method, device, equipment and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304917B2 (en) 2013-02-05 2016-04-05 Nec Corporation Flush control apparatus, flush control method and cache memory apparatus

Also Published As

Publication number Publication date
JP2002063154A (en) 2002-02-28

Similar Documents

Publication Publication Date Title
US11803486B2 (en) Write merging on stores with different privilege levels
JPS6135584B2 (en)
JPH06222990A (en) Data processor
JPS59165144A (en) Order extractor
US7577791B2 (en) Virtualized load buffers
US8856478B2 (en) Arithmetic processing unit, information processing device, and cache memory control method
US6976130B2 (en) Cache controller unit architecture and applied method
JP3757768B2 (en) Issuing control system for scalar memory access instruction during vector memory access
JP3733604B2 (en) Cache memory
KR940005769B1 (en) Multi-process system with cache memory
US12141078B2 (en) Victim cache with dynamic allocation of entries
JP3729832B2 (en) Cache memory device
JP2001344152A (en) Cash memory device
KR20240089035A (en) Cache line consistency state upgrade
JPH02259945A (en) Storing processing system
JP3761890B2 (en) Cache memory device
US8230173B2 (en) Cache memory system, data processing apparatus, and storage apparatus
JPS6135583B2 (en)
JPS63189943A (en) Branch forecasting control system
JPH0926912A (en) Storage processing system for cache memory
JPS607302B2 (en) buffer memory device
JPH05189313A (en) Cache memory control system
JPH0740245B2 (en) Memory interference detector
JPH01280851A (en) Cache store control system
JPH05342099A (en) Buffer memory control system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051219

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110113

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110113

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120113

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130113

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130113

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees